Commit Graph

388 Commits

Author SHA1 Message Date
scawful
132823701b Enhance NFD support in file dialog implementation for Linux and macOS
- Updated preprocessor directives to ensure NFD functionality is only included when YAZE_ENABLE_NFD is defined and enabled.
- Corrected the usage of NFD functions to improve resource management by replacing deprecated calls with the appropriate alternatives.
- Ensured consistent handling of file and folder dialog operations across platforms, enhancing overall user experience.
2025-09-26 11:12:41 -04:00
scawful
7e08601970 Add NFD support for file and folder dialogs on macOS
- Implemented NFD (Native File Dialog) functionality for opening files and folders when YAZE_ENABLE_NFD is defined.
- Enhanced ShowOpenFileDialogNFD and ShowOpenFolderDialogNFD methods to utilize NFD for improved user experience.
- Added necessary initialization and cleanup for NFD to ensure proper resource management.
2025-09-26 10:53:16 -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
e63bcf3202 Remove deprecated macOS file type handling from FileDialogWrapper for cleaner code and improved compatibility. This change simplifies the file dialog implementation by eliminating legacy checks for older macOS versions. 2025-09-25 20:15:13 -04:00
scawful
aaa7af9f07 Add Native File Dialog support and enhance file dialog management
- Introduced a feature flag to toggle between Native File Dialog (NFD) and bespoke file dialog implementations.
- Updated FileDialogWrapper to utilize the feature flag for opening files and folders, improving cross-platform compatibility.
- Enhanced the UI to allow users to configure the file dialog mode, providing better user control over file handling.
- Added new methods for testing both NFD and bespoke implementations directly from the UI, improving testing capabilities.
- Updated test management to include options for enabling/disabling individual tests, enhancing flexibility in test execution.
2025-09-25 17:07:44 -04:00
scawful
dcb98f6a45 Add ZSCustomOverworld ASM patch application feature
- Introduced a new feature flag to enable the application of ZSCustomOverworld ASM patches when upgrading ROM versions.
- Updated the OverworldEditor to include a dialog for upgrading ROM versions, with options to apply ASM patches based on the feature flag.
- Enhanced the DrawOverworldMapSettings method to dynamically adjust UI elements based on the ROM version and provide upgrade options.
- Implemented the ApplyZSCustomOverworldASM method to handle the patch application process, including error handling and logging.
- Updated feature flags display in the UI to reflect the new ASM patch application option, improving user experience and functionality.
2025-09-25 15:28: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
d0ff581412 Add PNG support handling in GraphicsEditor and include <cstring> in file_dialog
- Introduced conditional compilation for PNG clipboard operations in graphics_editor.cc, providing user feedback when PNG support is disabled.
- Added <cstring> header in file_dialog.cc to support string manipulation functions, enhancing functionality.
2025-09-25 10:57:47 -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
350d26ceb8 Add PNG support for clipboard operations
- Implemented conditional compilation for image copy and retrieval functions in clipboard.cc, clipboard.h, and clipboard.mm, enabling PNG support when YAZE_LIB_PNG is defined.
- Updated graphics_editor.cc and overworld_editor.cc to handle PNG data copying to the clipboard, including error handling for cases when PNG support is disabled.
- Enhanced user feedback by providing alternative actions when PNG export is unavailable, improving overall user experience.
2025-09-25 10:03:54 -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
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
b530d4a58b Refactor window creation and enhance file dialog functionality
- Removed unnecessary ImGui frame initialization calls in CreateWindow function to streamline window setup.
- Updated FileDialogWrapper to restrict file types in the open file dialog, allowing only specific extensions (sfc, smc, yaze) for improved user experience.
2025-09-13 11:46:17 -04:00
scawful
b8542cf50c Refactor yaze.h and project.h to remove unused project structure and update ROM size type for improved memory handling 2025-08-17 11:43:37 -04:00
scawful
fdda77c172 Refactor ROM handling and remove SharedRom singleton for improved architecture
- Eliminated the SharedRom class to enhance modularity and reduce global state management.
- Updated various classes to directly manage ROM instances, improving clarity and encapsulation.
- Added new functions for loading messages and colors from ROM, enhancing functionality.
- Refactored Canvas and Editor classes to utilize direct ROM references, streamlining interactions.
- Improved documentation and comments for better code understanding and maintainability.
2025-08-03 17:52:02 -04:00
scawful
a9a9cc888b Refactor event handling and controller initialization for improved clarity
- Moved event handling logic from the Controller class to a new HandleEvents function in the Window class, enhancing separation of concerns.
- Simplified the OnEntry method by removing the Initialize function call and directly initializing the editor manager.
- Updated the OnLoad method to check for window activity, improving the logic for managing the controller's active state.
- Cleaned up the controller header by removing the obsolete Initialize method, streamlining the interface.
2025-08-03 16:42:06 -04:00
scawful
b5f6930d38 Refactor window management and renderer integration for improved structure
- Replaced platform backend references with a dedicated Window class for better encapsulation of window and audio device management.
- Updated various files to include the new window header, enhancing clarity and reducing dependencies on the platform backend.
- Removed obsolete platform backend code to streamline the codebase and improve maintainability.
- Refactored controller and editor classes to utilize the new window management system, ensuring consistent handling of window creation and rendering.
2025-08-03 16:09:51 -04:00
scawful
11504ca4c1 Refactor Renderer access and enhance graphics loading functionality
- Replaced instances of Renderer::GetInstance() with Renderer::Get() for consistency across the codebase.
- Updated various rendering methods to streamline bitmap updates and enhance performance.
- Removed unused includes and comments to improve code clarity and maintainability.
2025-05-08 19:37:48 -04:00
scawful
0e39c2b201 Remove kDrawDungeonRoomGraphics feature and related code from FeatureFlags and DungeonEditor for improved clarity and performance. Update room loading and rendering methods to streamline graphics management using gfx::Arena. 2025-05-05 12:28:25 -04:00
scawful
3bd05f6beb Enhance Renderer class with Clear and Present methods for improved rendering control; remove unnecessary comments and streamline SDL_Surface and SDL_Texture deleters by eliminating memory tracking logic. Additionally, remove unused TexturePool class to simplify the codebase. 2025-04-30 00:44:12 -04:00
scawful
c0c6374539 Refactor event handling in Controller::OnInput to use SDL_WaitEvent instead of polling; improves efficiency by reducing CPU usage during event processing. 2025-04-20 17:37:05 -04:00
scawful
97bb0a8bc6 Remove vsync from Renderer 2025-04-20 17:36:14 -04:00
scawful
44e13cf4bb Refactor bitmap palette management across various components to streamline palette setting and improve error handling; remove unnecessary status checks and enhance consistency in palette application methods. 2025-04-17 21:49:47 -04:00
scawful
935b0b5863 Add MemoryTracker class for memory allocation tracking; integrate with SDL deleters for improved memory management 2025-04-12 11:30:28 -04:00
scawful
14bd313a7e Refactor Controller::OnLoad: adjust ImGui style variables for improved dock space appearance 2025-03-30 14:42:02 -04:00
scawful
61e35f2819 Implement docking support in the main editor window; enhance editor activation management 2025-03-11 21:05:04 -04:00
scawful
2a6683db82 Refactor audio handling in Controller; replace LoadAudioDevice with backend audio initialization and shutdown methods 2025-03-11 21:03:38 -04:00
scawful
358520fcae Remove test editor integration from Controller and update integration test logic 2025-03-11 20:11:47 -04:00
scawful
33de8d2c77 Add "Load Last ROM" shortcut and streamline ROM asset loading in EditorManager 2025-03-11 14:04:13 -04:00
scawful
684959634c Refactor CreateAndRenderBitmap in Renderer class: change return type to void, improve error handling for palette setting 2025-03-08 00:31:39 -05:00
scawful
4c42dcc5dd refactor controller 2025-03-03 17:33:46 -05:00
scawful
c99a4b0bc4 rename ApplyPalette with SetPalette 2025-03-02 17:06:46 -05:00
scawful
790f105013 Refactor font loading: enhance font management by passing FontConfig to AddIconFont and AddJapaneseFont functions, and streamline font initialization in LoadPackageFonts 2025-02-27 19:16:37 -05:00
scawful
c7608a8c0f Refactor font loading: remove redundant icon and Japanese font configurations, and introduce FontState structure for better font management 2025-02-10 11:47:23 -05:00
scawful
e8659e9fde Refactor audio buffer allocation: replace raw pointer with shared pointer for better memory management 2025-02-10 11:47:03 -05:00
scawful
646db9607a Refactor Controller and File Dialog: streamline platform handling, remove redundant parameters, and enhance initialization logic 2025-01-26 19:28:40 -05:00
scawful
1bc0f07a7e Refactor FlagsMenu to core namespace; remove redundant flags.h file and update references in editor files 2025-01-26 13:20:29 -05:00
scawful
9a11c970ae Change yaze_run_cocoa_app_delegate to return an int for better error handling; update main to reflect this change 2025-01-26 13:19:58 -05:00
scawful
26cda69d44 Refactor common functionality into zelda3 namespace; remove references to core::common 2025-01-22 13:53:01 -05:00
scawful
43fc52dec7 Refactor SnesToPc and PcToSnes functions for improved readability and consistency; remove redundant core:: namespace usage 2025-01-22 13:45:58 -05:00
scawful
de53ccae21 Refactor ExperimentFlags to FeatureFlags for consistency across the codebase 2025-01-22 13:41:28 -05:00
scawful
b245b10963 Refactor logging to use util::logf and add log utility header 2025-01-22 13:36:37 -05:00
scawful
a5b94ab173 Refactor folder item management and move NotifyValue to a new utility header 2025-01-22 13:32:45 -05:00
scawful
50c9223a53 Add hex utility functions and refactor usage in editors 2025-01-22 13:28:21 -05:00
scawful
809282edad remove nonstandard type aliases 2025-01-19 20:16:40 -05:00
scawful
38d34fd40c Add BPS patch utility functions and integrate into CLI handlers 2025-01-19 18:46:56 -05:00
scawful
c8883a1e54 Remove unused includes and clean up header files 2025-01-16 03:44:37 -05:00
scawful
2d15833b0d Implement folder dialog, subdirs, files with nfd 2025-01-06 13:25:49 -05:00
scawful
65be2d0bd2 move sdl_delete.h to platform 2025-01-06 13:23:07 -05:00
scawful
b3bc05e620 consolidate file related functions, add nativefiledialog-extended to build 2025-01-06 13:21:28 -05:00