Commit Graph

185 Commits

Author SHA1 Message Date
scawful
c3eaace72c feat: Implement modular build system for Yaze
- Added option to enable modular build with `YAZE_USE_MODULAR_BUILD`.
- Updated CMake configuration to support modular libraries for core, editor, graphics, GUI, and emulator functionalities.
- Refactored existing libraries to separate concerns and improve build times.
- Introduced new utility library `yaze_util` for low-level utilities.
- Adjusted CI and release workflows to accommodate the new build system.
- Updated various source files to reflect new include paths and modular structure.
- Enhanced YAML configuration handling in the agent component.
2025-10-03 18:32:51 -04:00
scawful
60e9ea69ac Refactor CMake configuration by removing unused source files and adjusting target link libraries for core components 2025-10-03 17:00:52 -04:00
scawful
ba9f6533a4 Enhance AI Agent Integration and Tool Command Functionality
- Added support for JSON in CMake configuration for AI integrations.
- Implemented new tool commands: resource-list and dungeon-list-sprites.
- Created ToolDispatcher for managing tool command execution.
- Refactored CMake structure to include agent sources and improve build configuration.
- Updated agent roadmap and README documentation to reflect current status and next steps.
2025-10-03 13:34:54 -04:00
scawful
90ddc3d50c Refactor CLI Service Structure and Enhance AI Integration
- Restructured CLI service source files to improve organization, moving files into dedicated directories for better maintainability.
- Introduced new AI service components, including `AIService`, `MockAIService`, and `GeminiAIService`, to facilitate natural language command generation.
- Implemented `PolicyEvaluator` and `ProposalRegistry` for enhanced proposal management and policy enforcement in AI workflows.
- Updated CMake configurations to reflect new file paths and ensure proper linking of the restructured components.
- Enhanced test suite with new test workflow generation capabilities, improving the robustness of automated testing.

This commit significantly advances the architecture of the z3ed system, laying the groundwork for more sophisticated AI-driven features and streamlined development processes.
2025-10-03 09:54:27 -04:00
scawful
784c867acf Refactor ImGuiTestHarnessService for Asynchronous RPC Handling
- Removed blocking wait logic in Click, Type, Wait, and Assert RPC methods to allow asynchronous execution.
- Introduced a generic RPCState template structure for managing shared state across different RPCs.
- Updated Click and Type methods to utilize the new RPCState for result handling and messaging.
- Simplified Wait method to queue tests without blocking, returning immediate success messages.
- Enhanced Assert method to use the new RPCState structure for result management and messaging.
- Adjusted CMakeLists.txt to conditionally include GUI automation client based on gRPC configuration.
2025-10-02 12:35:48 -04:00
scawful
0465d07a55 feat: Add GUI automation client and test workflow generator
- Implemented GuiAutomationClient for gRPC communication with the test harness.
- Added methods for various GUI actions: Click, Type, Wait, Assert, and Screenshot.
- Created TestWorkflowGenerator to convert natural language prompts into structured test workflows.
- Enhanced HandleTestCommand to support new command-line arguments for GUI automation.
- Updated CMakeLists.txt to include new source files for GUI automation and workflow generation.
2025-10-02 01:01:19 -04:00
scawful
0b62bcbda0 feat: Implement ProposalDrawer for managing agent proposals with UI controls 2025-10-01 19:38:08 -04:00
scawful
ce31906c93 Enhance performance profiling and tile caching mechanisms
- Introduced a new PerformanceProfiler class for detailed timing and performance measurement across graphics operations.
- Implemented a smart tile cache with LRU eviction in the TileCache structure to optimize memory usage and improve tile rendering efficiency.
- Updated various graphics components to utilize the new caching system, reducing redundant texture updates and enhancing overall performance.
- Added dirty region tracking in Bitmap for efficient texture updates, minimizing the area that needs to be refreshed during rendering.
- Enhanced existing methods to leverage performance monitoring, providing insights into operation durations and potential bottlenecks.
2025-09-28 23:13:12 -04:00
scawful
89d0938e89 Enhance CMake configuration for asset management across platforms
- Updated `CMakeLists.txt` to configure asset deployment for macOS, Windows, and Linux, ensuring proper handling of resource files based on the target platform.
- Added custom build steps in `app.cmake` to copy asset files (fonts, themes, layouts, libraries) to the output directory for Windows and Linux builds, improving the build process and asset accessibility.
- Organized asset files into source groups for better project structure and clarity.
2025-09-28 20:02:36 -04:00
scawful
c8cafe30e1 Remove Visual Studio project files and filters for YAZE
- Deleted `YAZE.sln`, `YAZE.vcxproj`, and `YAZE.vcxproj.filters` to streamline the project structure and transition to a CMake-based build system.
- This change enhances maintainability and simplifies the build process by relying solely on CMake for project configuration and management.
2025-09-28 19:34:55 -04:00
scawful
cbe6c92da7 Enhance CMake configuration for yaze_config.h integration
- Updated `CMakeLists.txt` to improve the generation and inclusion of `yaze_config.h` by specifying source and binary directories.
- Added include directories in various CMake files to ensure proper access to generated headers, enhancing build reliability and maintainability.
- Set properties for the generated header to improve IDE integration and organization within the project structure.
2025-09-28 19:18:36 -04:00
scawful
d50dc25677 Enhance CMake configuration for Windows x64 builds
- Added a custom command to generate the Windows resource file `yaze.res` from `yaze.rc` and `yaze.ico`, ensuring proper resource management for x64 builds.
- Introduced a custom target to ensure the resource file is built before linking, improving the build process for Windows targets.
2025-09-28 18:18:02 -04:00
scawful
831a8dcb82 Enhance CMake configuration for Windows builds
- Added conditional linking of the Windows resource file for x64 architecture in `CMakeLists.txt`, improving build specificity for Windows targets.
- This change ensures that the resource file is only linked when building for 64-bit Windows, enhancing the project's compatibility and build process.
2025-09-28 18:10:36 -04:00
scawful
7355294f49 Refactor Overworld Editor and enhance settings management for v3 features
- Removed the outdated ZEML layout file and associated references to streamline the OverworldEditor.
- Introduced the OverworldEditorManager class to encapsulate v3 settings management, improving code organization and maintainability.
- Updated the OverworldEditor to utilize ImGui for layout, enhancing user interaction and flexibility.
- Enhanced the changelog with detailed descriptions of new features and improvements, including a comprehensive undo/redo system and advanced palette management.
- Removed deprecated diagnostic patterns from the clangd configuration to improve code quality checks.
2025-09-27 15:47:22 -04:00
scawful
c5e8e04f65 Enhance theme management with dynamic discovery and macOS bundle support
- Updated CMake configuration to ensure theme files are included in macOS bundles and added explicit file handling for theme resources.
- Refactored ThemeManager to replace hardcoded theme lists with dynamic discovery of available themes, improving flexibility across development and deployment scenarios.
- Introduced methods for refreshing and loading themes at runtime, enhancing user experience and customization options.
- Improved logging for theme loading processes, providing better feedback on successes and failures.
2025-09-26 19:55:40 -04:00
scawful
a868b32a48 Enhance ImGui library integration and CMake configuration
- Added backend source files for ImGui, improving functionality with SDL2.
- Updated CMakeLists.txt to conditionally create the yaze_c library as static or shared based on the YAZE_MINIMAL_BUILD flag.
- Streamlined test linking by ensuring yaze_test links against yaze_core instead of yaze_c, enhancing modularity.
2025-09-26 16:47:47 -04:00
scawful
857e75e7fe Refactor CMake configuration for core library and testing
- Updated CMakeLists.txt to create a separate core library (yaze_core) for testing, enhancing modularity.
- Adjusted source file organization for yaze_c and yaze_core, ensuring proper inclusion of essential components.
- Modified test CMakeLists.txt to link against yaze_core instead of yaze_c, streamlining dependencies for test targets.
- Disabled installation of the library in minimal builds while maintaining the ability to build for testing purposes.
2025-09-26 15:14:52 -04:00
scawful
cbce2730b6 Update CMake configuration and .clangd settings for improved build management
- Removed unnecessary compile flags from .clangd to streamline configuration.
- Added YAZE_BUILD_LIB option in CMakeLists.txt for conditional library building in minimal builds.
- Enhanced SDL2 CMake configuration to set include directories for bundled SDL, ensuring proper integration.
- Updated test CMakeLists.txt to conditionally link yaze_c and ImGuiTestEngine based on build options, improving modularity and flexibility.
- Refactored test_editor.cc and test_editor.h to conditionally include ImGuiTestEngine headers and manage engine initialization based on availability.
2025-09-26 13:51:02 -04:00
scawful
ec207cae06 Refactor CI workflow and CMake configuration for Windows builds
- Updated the CI workflow to conditionally set up vcpkg only for non-CI Windows builds, improving build efficiency.
- Simplified CMake configuration for Windows by consolidating build type checks and ensuring proper handling of resource files based on the YAZE_MINIMAL_BUILD flag.
- Enhanced modularity in file dialog implementation by introducing wrapper methods for better maintainability and clarity in the codebase.
2025-09-26 12:47:10 -04:00
scawful
edafa79dea Add macOS app icon and bundle properties; remove deprecated settings
- Introduced a new app icon file (yaze.icns) for the macOS bundle.
- Updated CMake configuration to set macOS bundle properties, including icon file, bundle name, executable name, and versioning information.
- Removed outdated macOS bundle settings to streamline the configuration process.
2025-09-26 10:04:29 -04:00
scawful
907e29a495 Update CMake configuration and CI workflows for improved compatibility and testing
- Updated minimum CMake version requirement from 3.5 to 3.16 to leverage new features and policies.
- Enhanced CI workflows to include additional build configurations for Ubuntu and macOS, improving cross-platform support.
- Added conditional linking for ImGui Test Engine in the CMakeLists, allowing for UI testing when enabled.
- Refactored CMake commands in CI to ensure consistent policy version handling and streamlined build processes.
- Introduced new constructors for MenuItem in the GUI to enhance menu item management and flexibility.
2025-09-26 09:23:53 -04:00
scawful
4f5250f5ca Enhance CI configuration and CMake support for native file dialog
- Updated CI workflow in ci.yml to include the -Wno-dev flag for improved CMake output during configuration.
- Modified CMakeLists.txt to conditionally add native file dialog support based on platform checks and GTK3 availability, enhancing compatibility and providing clearer status messages for NFD support.
2025-09-25 10:43:39 -04:00
scawful
d26f58be2f Enhance CMake configuration for PNG support and introduce vcpkg.json
- Updated CMakeLists.txt to conditionally enable PNG support based on the presence of the PNG library, improving compatibility for minimal builds.
- Added vcpkg.json to manage project dependencies, including zlib, libpng, sdl2, and abseil, streamlining package management.
- Modified CI workflow in ci.yml to simplify CMake configuration commands for better readability.
- Enhanced CMake scripts to ensure proper handling of dependencies in both minimal and regular builds, improving build reliability.
2025-09-25 09:56:32 -04:00
scawful
e930789f4b Enhance CMake configuration and CI/CD workflows for improved testing
- Updated CMakeLists.txt to introduce options for enabling experimental tests and minimal CI builds.
- Modified CMakePresets.json to refine test presets, including stable and experimental test configurations.
- Enhanced CI workflows in ci.yml to streamline testing processes, ensuring stable tests are prioritized and experimental tests are run separately.
- Added new documentation files outlining the CI/CD testing strategy and testing categories for better clarity on testing practices.
- Improved test discovery in CMakeLists.txt to simplify labeling and enhance CI efficiency.
2025-09-25 09:39:33 -04:00
scawful
6bdcfe95ec Update CMake configuration and CI/CD workflows
- Upgraded CMake minimum version requirement to 3.16 and updated project version to 0.3.0.
- Introduced new CMake presets for build configurations, including default, debug, and release options.
- Added CI/CD workflows for continuous integration and release management, enhancing automated testing and deployment processes.
- Integrated Asar assembler support with new wrapper classes and CLI commands for patching ROMs.
- Implemented comprehensive tests for Asar integration, ensuring robust functionality and error handling.
- Enhanced packaging configuration for cross-platform support, including Windows, macOS, and Linux.
- Updated documentation and added test assets for improved clarity and usability.
2025-09-25 08:59:59 -04:00
scawful
8b168864f3 Remove Python build option and update contributing documentation for clarity and structure 2025-08-21 18:58:56 -04:00
scawful
1d64846a37 initialize blank editor set in EditorManager; update overworld initialization to use Rom pointers; add Clear and CleanupUnusedTextures methods in OverworldEditor. 2025-04-12 11:33:03 -04:00
scawful
ad490cad71 Add YAZE_UTIL_SRC to CMakeLists and update flag definitions in z3ed and yaze 2025-04-05 13:46:56 -04:00
scawful
c8d4efda2e Refactor flag handling: move FlagParser implementation to flag.cc, remove ResourceManager, and update includes 2025-01-26 13:36:27 -05:00
scawful
50c9223a53 Add hex utility functions and refactor usage in editors 2025-01-22 13:28:21 -05:00
scawful
e4cc3b977a Move test dir to root 2025-01-19 19:09:39 -05:00
scawful
38d34fd40c Add BPS patch utility functions and integrate into CLI handlers 2025-01-19 18:46:56 -05:00
scawful
2cc15350aa Update CMakeLists.txt to include zelda.h and adjust yaze.h path 2025-01-18 15:09:59 -05:00
scawful
013edb3fae update yaze public header, remove sprite.h, add z3_dungeon_sprite 2025-01-06 16:21:37 -05:00
scawful
b3bc05e620 consolidate file related functions, add nativefiledialog-extended to build 2025-01-06 13:21:28 -05:00
scawful
cbec34dacf Add PROJECT_BINARY_DIR to include directories in CMake configuration 2024-12-31 15:59:03 -05:00
scawful
f7dd9622c9 move yaze_py target to the cli directory 2024-11-15 23:39:26 -05:00
scawful
d1c84e7b91 Update CMakeLists.txt to include snes_tile.h and dungeon.h; remove yaze_flags structure from yaze.h to simplify initialization 2024-11-13 09:18:12 -05:00
scawful
b4ffca2863 add macOS app bundle for yaze with resources 2024-09-07 09:56:29 -04:00
scawful
0337483f85 Refactor CMakeLists.txt for improved code organization and readability 2024-08-31 21:55:56 -04:00
scawful
b1f235cd41 Refactor CMakeLists.txt and app.cmake 2024-08-30 11:17:24 -04:00
scawful
9c6d74544c add emu.cmake for emulator 2024-08-30 11:09:58 -04:00
scawful
12ce96e533 chore: Refactor CMakeLists.txt and app.cmake files for better organization 2024-08-30 02:57:14 -04:00
scawful
8b9a4a867f add win32 dir for yaze.res, yaze.rc and yaze.ico 2024-08-30 02:28:11 -04:00
scawful
20f7f04520 yaze_build_clib flag for cmake 2024-08-26 12:05:19 -04:00
scawful
d85530b14b extensions cleanup 2024-08-20 22:40:14 -04:00
scawful
7af5209aeb include message passing system in build 2024-08-14 23:47:00 -04:00
scawful
e72ae83d48 Refactor CMakeLists.txt to include yaze_py.cmake for Python build 2024-08-13 22:09:01 -04:00
scawful
aae103d8f5 chore: Refactor CMakeLists.txt to improve code organization and readability 2024-08-13 21:09:24 -04:00
scawful
4a5270bea9 chore: Exclude unnecessary directories from version control 2024-08-13 20:52:36 -04:00