Commit Graph

383 Commits

Author SHA1 Message Date
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
Justin Scofield
839449e85d Improve logging and reformat CreateWindow call
Updated common.h to include <chrono> and absl/strings/str_cat.h.
Modified logf to include a timestamp in log messages.
Replaced log_to_console with ExperimentFlags::get().kLogToConsole.
Removed newline character from logf output.
Reformatted SDL_CreateWindow call in controller.cc for readability.
2025-01-05 20:56:53 -05:00
Justin Scofield
5e0fb9e36e Add ReloadPackageFonts 2025-01-05 20:54:56 -05:00
Justin Scofield
31217e1c5c Refactor flags and add Font Manager to settings editor
Simplified `ExperimentFlags` by removing unused flags and updated
`Controller` to no longer inherit from it. Refactored `FlagsMenu`
to separate flag categories into individual methods for better
organization. Enhanced settings editor with a new "Font Manager"
tab and updated `DrawGeneralSettings` to use the new flag category
methods. Added `DrawFontManager` function for font management.
2025-01-05 11:58:45 -05:00
Justin Scofield
66dc72148d Add helper functions SetFontPath, LoadFont, AddIconFont, and AddJapaneseFont 2025-01-05 06:38:14 -05:00
Justin Scofield
f1f6df829f controller and canvas houskeeping 2025-01-05 06:17:09 -05:00