Commit Graph

67 Commits

Author SHA1 Message Date
scawful
660c3fd46f Enhance CMake configuration and improve string safety in source files
- Updated CMakeLists.txt to silence C++23 deprecation warnings and added definitions for intrinsic int128 support.
- Modified GitHub Actions workflow to handle missing asset directories gracefully and ensure correct versioning in Info.plist.
- Refactored string handling in multiple source files to use std::memcpy for safer string copying, preventing potential buffer overflows.
- Improved font loading logic and ensured consistent handling of theme properties in the editor.
2025-09-27 22:03:03 -04:00
scawful
faca7cfafe Enhance CMake and file dialog functionality
- Updated CMakeLists.txt to include additional MSVC compiler options for better compatibility and performance, such as support for large object files and UTF-8 encoding.
- Modified absl.cmake to add support for absl::int128.
- Refactored file dialog implementation in file_dialog.cc to utilize a feature flag for native file dialog support, improving cross-platform compatibility and maintainability. Added placeholder implementations for CI/CD environments.
2025-09-27 21:47:01 -04:00
scawful
5e45c94e59 Integrate vcpkg support for Windows builds and enhance documentation
- Added vcpkg integration in CMake for Windows, enabling automatic dependency management.
- Updated CMakePresets.json to include presets for debug and release builds with vcpkg.
- Created setup scripts for easy vcpkg installation on Windows.
- Enhanced documentation to guide users on vcpkg setup and usage with YAZE.
- Improved logging in Overworld class to track expanded tile flags during map assembly.
2025-09-27 20:05:00 -04:00
scawful
920e5002ee Update changelog for version 0.3.1 with minor bug fixes related to color themes, ZSCustomOverworld v3 item loading, and Tile16 selection. 2025-09-27 11:40:12 -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
997092390a Add theme management and background rendering features
- Introduced a comprehensive theme management system, allowing users to load, save, and switch between multiple themes.
- Added support for various built-in themes, enhancing the visual customization of the application.
- Implemented a background renderer for improved visual effects in docking windows, including grid backgrounds and subtle animations.
- Enhanced the EditorManager UI with themed elements, providing a more cohesive and engaging user experience.
- Updated CMake configuration to include new theme and background renderer source files, ensuring proper integration into the build system.
2025-09-26 19:32:19 -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
22c960eaf3 Add code quality checks and formatting configuration
- Introduced a .clang-format file to enforce Google C++ style guidelines across the codebase.
- Updated CMakeLists.txt to include custom targets for formatting and format-checking using clang-format.
- Added a quality_check.sh script to automate code quality checks, including formatting and static analysis with cppcheck.
- Enhanced CMakePresets.json with new macOS-specific configurations for ARM64 and universal binaries, improving build flexibility and support.
2025-09-26 12:57:20 -04:00
scawful
41a5b952e4 Refactor CMake configuration for ImGuiTestEngine and feature flags
- Updated the CMake configuration to use target_compile_definitions for ImGuiTestEngine, improving clarity and maintainability.
- Introduced IMGUI_TEST_ENGINE_DEFINITIONS to streamline the definition process for targets linking to ImGuiTestEngine.
- Modified feature flags in features.h to conditionally enable the native file dialog based on the YAZE_ENABLE_NFD flag, enhancing flexibility in feature management.
2025-09-26 12:26:01 -04:00
scawful
f0fa93fa2b Refactor CMake configuration and improve emulation timing calculations
- Updated CMakeLists.txt to disable additional optional components (EMU and Z3ED) in minimal builds for better build management.
- Refactored emulation timing calculations in emu.cc to use consistent method naming conventions, enhancing code readability and maintainability.
2025-09-26 11:33:15 -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
8ab30dd5ad Enhance testing framework and CMake integration for YAZE
- Conditionally include Google Test support in the build configuration, allowing for integrated testing when enabled.
- Refactor ImGui Test Engine setup to be conditional based on the YAZE_ENABLE_UI_TESTS flag, improving modularity.
- Update EditorManager to register new test suites, including integrated and performance tests, enhancing test coverage.
- Improve the test dashboard UI with additional options for filtering and viewing test results, providing a better user experience.
- Introduce a new integrated test suite for comprehensive testing of core functionalities, ensuring robustness and reliability.
2025-09-25 13:29:39 -04:00
scawful
41adb1b70e Enhance testing framework and UI integration for YAZE
- Added a comprehensive testing framework with support for unit, integration, and UI tests, improving overall test coverage and reliability.
- Integrated ImGui Test Engine for UI testing, allowing for real-time feedback and visualization of test results.
- Updated CMake configuration to conditionally include testing components based on build options, enhancing flexibility for developers.
- Introduced a new command in the CLI for running asset loading tests on ROMs, providing a straightforward way to validate functionality.
- Enhanced error handling and resource management during testing, ensuring stability and clarity in test execution.
- Improved user interface with a dedicated test dashboard for monitoring test progress and results, enhancing developer experience.
2025-09-25 13:26:56 -04:00
scawful
77ceb0256b Refactor CMake and enhance API documentation for YAZE
- Updated CMakeLists.txt to set a minimum required version of 3.5 and removed older policy settings for improved compatibility.
- Enhanced yaze.h and zelda.h with detailed documentation, including versioning information and API descriptions, to improve clarity for developers.
- Added new functions for version compatibility checks and improved error handling in the YAZE API.
- Refactored existing structures and enums for better readability and maintainability, ensuring a more consistent coding style.
2025-09-25 12:00:03 -04:00
scawful
189587d51e Enhance CMake configuration and update dependencies
- Updated CMakeLists.txt to set policies for older submodules, improving compatibility with various CMake versions.
- Modified vcpkg.json to change the SDL2 dependency to a core variant and updated the builtin baseline to the latest version, ensuring better package management.
- Improved file dialog functionality in file_dialog.cc by adding conditional compilation for NFD support, providing fallback behavior when NFD is unavailable.
2025-09-25 10:21:57 -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
e4cc3b977a Move test dir to root 2025-01-19 19:09:39 -05:00
Justin Scofield
5e0f1a072f Set standard to C++23 2024-12-31 20:25:05 -05:00
scawful
91d4a740d0 Bump project version to 0.2.2 in CMakeLists.txt 2024-12-31 15:03:21 -05:00
scawful
5ff7eaa526 Add yaze_config.h for version management and update version check logic 2024-12-31 12:50:14 -05:00
Justin Scofield
bad10fff2b Add vcpkg.cmake for Windows
- Add definition `-DMICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS=0`.
- Set target architecture to `x64`.
- Configure CRT and library linkage to `dynamic`.
2024-12-30 09:52:46 -05:00
scawful
0337483f85 Refactor CMakeLists.txt for improved code organization and readability 2024-08-31 21:55:56 -04:00
scawful
d7849c2098 chore: Enable building tests in CMakeLists.txt 2024-08-30 20:17:41 -04:00
scawful
12ce96e533 chore: Refactor CMakeLists.txt and app.cmake files for better organization 2024-08-30 02:57:14 -04:00
scawful
d85530b14b extensions cleanup 2024-08-20 22:40:14 -04:00
scawful
e2168cc939 add yaze_emu target and YAZE_BUILD_EMU flag 2024-08-13 20:07:16 -04:00
scawful
feaee62462 add png_internal, YAZE_LIB_PNG definition 2024-08-13 00:30:14 -04:00
scawful
36c1d55cda update asar build 2024-08-12 12:00:56 -04:00
scawful
2140d8ee3f housekeeping 2024-08-09 17:28:25 -04:00
scawful
7379a8535c cmakelists build cleanup 2024-08-08 13:42:32 -04:00
scawful
5b8541d28d add yaze cmake build flags 2024-08-08 12:31:44 -04:00
scawful
60569572ca set project version 0.2.0 2024-08-08 12:20:32 -04:00
scawful
fdd83bd0f8 update asar.cmake, add CXX flags for compilation 2024-08-07 13:55:57 -04:00
scawful
096b10ff77 move test directory into src 2024-07-24 01:55:13 -04:00
scawful
800d01c175 remove opengl from cmakelists 2024-05-28 19:29:31 -04:00
scawful
9755358a1b cleanup CMakeLists, upgrade version and C++ std 2024-05-11 13:53:03 -04:00
scawful
983e5959a5 restore asar library include 2024-04-29 09:16:44 -04:00
scawful
25872db593 remove opensll (why was this even here lol) 2024-04-29 09:15:00 -04:00
scawful
7e59354d02 Remove snes_spc gitsubmodule 2024-04-29 08:53:43 -04:00
scawful
1305e9de19 Update CMakeLists, add sdl2.cmake 2023-08-25 19:03:13 -04:00
scawful
3af0aee750 Remove GLEW, not needed 2023-08-24 22:06:17 -04:00
scawful
09df21a439 Update Room, Add RoomObject, RoomNames 2023-08-18 17:20:11 -04:00
scawful
7d1dad3975 Import SDL2 for Unix 2023-05-22 09:21:06 -05:00
scawful
5ac7002c88 Popout PaletteEditor, general housekeeping 2023-05-22 09:16:20 -05:00
scawful
b0338f588a add SDL_mixer 2023-01-01 17:48:51 -06:00
scawful
2d3937e791 added snes_spc library 2023-01-01 16:11:44 -06:00