Commit Graph

2558 Commits

Author SHA1 Message Date
scawful
102cd76017 refactor(music): update include path for Hyrule Magic
- Changed the include path for Hyrule Magic from "app/zelda3/hyrule_magic.h" to "util/hyrule_magic.h" in tracker.cc.
- This adjustment improves the modularity of the codebase by aligning the include structure with the new organization of utility headers.
2025-10-12 01:56:43 -04:00
scawful
5dc54e5a73 chore(docs): update build presets and agent guide for clarity and new features
- Removed the DYAZE_USE_MODULAR_BUILD option from build presets documentation.
- Updated the agent guide to reflect the recent completion of version 0.2.2-alpha, highlighting new emulator debugging infrastructure and its benefits for AI agents.
- Enhanced the CLI help output to include a more structured command summary and improved descriptions for better user understanding.
2025-10-12 01:51:50 -04:00
scawful
2ccd49f9e6 refactor(cli): migrate command management to CommandRegistry
- Replaced direct command handling in ModernCLI with a centralized CommandRegistry singleton.
- Removed SetupCommands method and associated command handler logic, simplifying command execution and registration.
- Updated ShowHelp and ShowCommandSummary methods to utilize CommandRegistry for fetching command metadata and descriptions.

Benefits:
- Streamlined command management, enhancing maintainability and clarity in the CLI structure.
- Improved command registration and execution consistency through a unified registry approach.
2025-10-12 01:41:24 -04:00
scawful
55a28661af feat(editor): implement enhanced hierarchical WhichKey navigation
- Introduced a new hierarchical WhichKey feature that allows users to navigate commands using a Spacemacs-style interface.
- Added functionality for breadcrumb navigation and auto-close after a specified duration.
- Implemented keyboard input handling for prefix keys to enter submenus or execute commands.
- Updated the CommandManager header to include new methods and state variables for managing WhichKey navigation.

Benefits:
- Improved user experience by providing a more intuitive command navigation system.
- Enhanced accessibility of commands through visual grouping and structured navigation.
2025-10-12 01:41:12 -04:00
scawful
ecf797d633 feat(agent): implement advanced debugging features in EmulatorService
- Added methods for managing breakpoints, including adding, removing, listing, and enabling/disabling breakpoints.
- Introduced watchpoint management methods, although integration is pending.
- Implemented execution control features such as stepping through instructions and running to breakpoints.
- Enhanced disassembly capabilities to retrieve and display instruction details from memory.
- Updated header file to include new debugging functionalities, ensuring clarity and modularity.

Benefits:
- Improved debugging capabilities for the emulator, facilitating better development and testing workflows.
- Enhanced user experience by providing detailed control over execution and memory analysis.
2025-10-12 01:41:02 -04:00
scawful
b3005b8a2b refactor(gui): reorganize background rendering and layout helpers
- Moved background rendering functionality from the editor to a dedicated GUI module, enhancing modularity and separation of concerns.
- Introduced layout helpers for consistent theme-aware sizing across the GUI, improving UI consistency and maintainability.
- Updated CMake configuration to reflect the new structure, ensuring proper linkage of the background renderer and layout helpers.

Benefits:
- Improved organization of GUI components, facilitating easier updates and enhancements.
- Enhanced user interface consistency through theme-aware layout management.
2025-10-12 01:40:46 -04:00
scawful
f4d8ade66d feat(agent): integrate advanced features for enhanced conversational context
- Added support for advanced features in the ConversationalAgentService, including learned knowledge and TODO management, conditional on Z3ED_AI being enabled.
- Implemented methods for injecting learned context and pretraining prompts into user messages, enhancing the conversational experience.
- Updated header files to include necessary components for advanced features, ensuring modularity and clarity in the service's capabilities.

Benefits:
- Improved user interaction by providing contextually relevant responses.
- Enhanced maintainability and extensibility of the agent's functionality.
2025-10-12 01:23:15 -04:00
scawful
7063294c9d refactor(cmake): enhance test linking for editor with additional support libraries
- Updated CMake configuration to conditionally link the yaze_test_support library when tests are enabled, alongside the existing ImGuiTestEngine.
- Improved status messages to provide clearer feedback on linked libraries during the build process.

Benefits:
- Enhanced testing capabilities for the editor by integrating additional support libraries.
- Improved clarity in build output regarding linked test infrastructure.
2025-10-12 00:31:29 -04:00
scawful
0808c52788 refactor(audio): enhance audio buffering and interpolation methods
- Updated audio buffering strategy to ensure smooth playback by always queuing samples and implementing dynamic rate control.
- Introduced Hermite interpolation for audio resampling, providing better quality than linear interpolation.
- Adjusted audio debug logging for improved monitoring of audio states and buffer management.

Benefits:
- Improved audio playback quality and reduced glitches.
- Enhanced clarity in audio debugging and monitoring processes.
2025-10-11 23:47:17 -04:00
scawful
be4d30b208 refactor(editor): remove MenuManager class and its associated files
- Deleted the MenuManager class implementation and header files from the project.
- Updated CMake configuration to reflect the removal of MenuManager, simplifying the editor's UI management.

Benefits:
- Reduced code complexity by eliminating unused components.
- Improved maintainability of the editor's UI structure.
2025-10-11 23:34:02 -04:00
scawful
d91dddfbe0 refactor(cmake): simplify ImGui test engine integration and feature flags
- Updated CMake configuration to always include the ImGui Test Engine when tests are enabled, removing conditional checks for UI tests.
- Simplified feature flag management by enabling JSON and gRPC by default, with a minimal build option to disable only the most expensive features.
- Enhanced status messages to provide clearer feedback on build configurations and feature availability.

Benefits:
- Streamlined integration of the ImGui Test Engine for testing purposes.
- Improved clarity in feature flag settings, making it easier to manage build configurations.
2025-10-11 21:44:01 -04:00
scawful
cbbb480b08 refactor(agent): reorganize emulator command handling for gRPC support
- Removed direct inclusion of `emulator_commands.h` in non-gRPC contexts to streamline dependencies.
- Updated CMake configuration to conditionally include emulator command sources only when gRPC is enabled, enhancing modularity.
- Ensured consistent handling of emulator commands across different components.

Benefits:
- Improved code organization and maintainability by clarifying the inclusion of gRPC-related features.
- Enhanced flexibility in managing command handlers based on compilation flags.
2025-10-11 14:47:31 -04:00
scawful
ab73a09f47 refactor(editor): reorganize includes and enhance EditorManager initialization
- Moved the declaration of `AgentControlServer` to a forward declaration in the header file for better clarity and organization.
- Updated the `EditorManager` constructor to initialize the version string and popup manager context.
- Added conditional compilation for gRPC-related includes and commented out the agent control server initialization for future reference.
- Ensured consistent definition of `IMGUI_DEFINE_MATH_OPERATORS` across multiple files to prevent potential issues with ImGui usage.

Benefits:
- Improved code organization and readability.
- Enhanced maintainability by clarifying the initialization process and managing includes effectively.
2025-10-11 14:37:34 -04:00
scawful
5ba66b7898 feat(cmake): add feature flags for gRPC and JSON in CMake configuration
- Introduced preprocessor macros for feature flags in CMake, allowing conditional compilation based on the presence of gRPC and JSON features.
- Updated the agent source file list to include gRPC-dependent sources only when gRPC is enabled, enhancing modularity and maintainability.

Benefits:
- Improved flexibility in enabling/disabling features at compile time.
- Streamlined source management for better organization of gRPC-related components.
2025-10-11 14:14:37 -04:00
scawful
aacc7795c3 feat(emulator): implement gRPC control server and emulator commands
- Added `AgentControlServer` to manage gRPC connections for emulator control.
- Introduced `EmulatorServiceImpl` with methods for starting, stopping, and controlling the emulator, including button presses and memory operations.
- Created new command handlers for pressing, releasing, and holding emulator buttons.
- Updated CMake configuration to include new source files and proto definitions for the emulator service.

Benefits:
- Enhanced control over the emulator through gRPC, allowing for remote interactions.
- Improved modularity and maintainability of the emulator's command handling.
- Streamlined integration of new features for emulator control and state inspection.
2025-10-11 13:57:07 -04:00
scawful
9ffb7803f5 refactor(emulator): enhance input handling and audio resampling features
- Renamed `turbo_mode()` to `is_turbo_mode()` for clarity in the Emulator class.
- Improved input handling in the Snes class by adding button state management and ensuring proper initialization of input controllers.
- Implemented multiple audio resampling methods (linear, cosine, cubic) in the Dsp class, allowing for enhanced audio quality during playback.
- Updated the user interface to include options for selecting audio interpolation methods and added keyboard shortcuts for emulator controls.

Benefits:
- Improved code readability and maintainability through clearer method naming and structured input management.
- Enhanced audio playback quality with new resampling techniques.
- Streamlined user experience with added UI features for audio settings and keyboard shortcuts.
2025-10-11 13:56:49 -04:00
scawful
0a4b17fdd0 chore(cmake): refine test support linkage for yaze and yaze_emu
- Updated CMake configuration to conditionally link the yaze_test_support library for both yaze and yaze_emu targets, ensuring proper integration with TestManager.
- Enhanced status messages to provide clearer feedback on the linkage status and potential issues if the target is not found.

Benefits:
- Improved clarity and maintainability of the CMake configuration.
- Enhanced modularity by managing test dependencies more effectively.
2025-10-11 13:31:29 -04:00
scawful
e523ce94da chore(cmake): enhance test support linkage and file dialog functionality
- Improved the CMake configuration to conditionally link the yaze_test_support library for the yaze target when tests are enabled, providing clearer feedback on linkage status.
- Updated the file dialog implementation to include specific filters for ROM files and all files, enhancing user experience during file selection.
- Added status messages to inform users about the linkage of test support and potential issues if the target is not found.

Benefits:
- Enhanced clarity and maintainability of the CMake configuration.
- Improved user interaction with file dialogs through better filtering options.
2025-10-11 13:29:24 -04:00
scawful
88a4f29fe8 refactor(emulator): improve audio backend initialization and adaptive buffering
- Enhanced audio backend initialization by adding comments for clarity and ensuring a moderate buffer size for optimal latency and stability.
- Updated the emulator's run logic to start in a running state by default and refined the auto-pause mechanism to only trigger during window resizing, removing aggressive focus-based pausing.
- Implemented adaptive audio buffering to maintain smooth playback, adjusting the number of queued samples based on current buffer status.

Benefits:
- Improved user experience with more intuitive audio handling and reduced latency.
- Enhanced stability during window operations, preventing crashes on macOS.
- Streamlined audio processing for better performance and responsiveness.
2025-10-11 13:17:14 -04:00
scawful
e8ebf298c6 chore(cmake): link test support conditionally for yaze and yaze_emu
- Added conditional linkage of the yaze_test_support library for both yaze and yaze_emu targets when tests are enabled, ensuring proper integration with TestManager.
- This change enhances the modularity of the CMake configuration by managing test dependencies more effectively.

Benefits:
- Improved organization of test support linkage in the CMake configuration.
- Enhanced maintainability by ensuring that test dependencies are only included when necessary.
2025-10-11 12:52:09 -04:00
scawful
be7303ea5b refactor(include): update include paths for consistency across source files
- Modified include paths in multiple source files to reflect the new directory structure, ensuring all references are correctly aligned with the updated project organization.

Benefits:
- Enhanced maintainability and clarity of the codebase by standardizing include paths.
2025-10-11 12:28:10 -04:00
scawful
18986e3656 refactor(cmake): update include paths and defer test support linkage
- Updated include paths in several source files to reflect the new directory structure, ensuring consistency across the project.
- Deferred the linkage of the yaze_test_support library to the test.cmake file for better dependency management and ordering.

Benefits:
- Improved organization of include paths for better maintainability.
- Enhanced modularity by managing test dependencies separately.
2025-10-11 12:19:51 -04:00
scawful
44171d6972 chore(cmake): update test support linkage in CMake configuration
- Removed direct linkage of yaze_test_support in the yaze target when tests are enabled, as it is now included transitively through yaze_editor.
- Added linkage of yaze_editor to yaze_test_support to facilitate TestManager usage, ensuring test dependencies are managed privately.

Benefits:
- Simplified CMake configuration by reducing direct dependencies.
- Enhanced modularity and maintainability of test support in the editor.
2025-10-11 11:50:22 -04:00
scawful
fdcffde424 feat(cmake): add native file dialog support for Windows/Linux
- Introduced a new file dialog implementation using nativefiledialog-extended for better file handling on Windows and Linux platforms.
- Updated CMake configuration to link the new file dialog library and include necessary directories.
- Enhanced the editor library to conditionally link a test support library when testing is enabled.

Benefits:
- Improved user experience with native file dialogs for file operations.
- Streamlined testing support in the editor library, enhancing modularity and maintainability.
2025-10-11 11:22:32 -04:00
scawful
33987aff45 refactor(CMake): remove old CPU implementation from build configuration
- Removed the `old_cpu.cc` file from the CMake build configuration to streamline the project structure and eliminate unused code.
- This change enhances maintainability by focusing on the current CPU implementation.

Benefits:
- Improved clarity and organization of the build system.
- Reduced potential confusion from legacy code.
2025-10-11 03:27:38 -04:00
scawful
9da7daec55 feat(cli): enhance TUI functionality and update CI test configurations
- Added support for a new `--tui` flag in the CLI to launch a chat-based TUI for ROM interaction.
- Integrated a fallback mechanism for loading ROM files from specified directories.
- Updated the ChatTUI to provide a more informative initial message and added a new option to display ROM info.
- Refined the CI workflow to differentiate between stable and experimental test runs, improving test result organization.

Benefits:
- Improved user experience with the new TUI feature for ROM hacking.
- Enhanced clarity in CI test results, facilitating better debugging and reporting.
2025-10-11 02:59:15 -04:00
scawful
f54949bdd8 feat(build-system): enhance CMake configuration and introduce new utility files
- Refactored CMakeLists.txt to streamline project configuration and improve readability.
- Introduced new utility functions in `utils.cmake` for setting compiler flags and managing dependencies.
- Added `dependencies.cmake` to centralize third-party dependency management, enhancing modularity.
- Updated CI workflows to include new build options and improved logging for better feedback during configuration.
- Implemented precompiled headers in various libraries to speed up compilation times.

Benefits:
- Improved maintainability and clarity of the build system.
- Enhanced build performance through precompiled headers.
- Streamlined dependency management for easier integration of third-party libraries.
2025-10-11 02:44:17 -04:00
scawful
31d0337b11 feat(command-abstraction): refactor CLI command architecture and introduce new documentation
- Implemented a Command Abstraction Layer to eliminate ~1300 lines of duplicated code across tool commands, enhancing maintainability and consistency.
- Established a unified structure for argument parsing, ROM loading, and output formatting across all commands.
- Added comprehensive documentation, including a Command Abstraction Guide with migration checklists and testing strategies.
- Introduced better testing capabilities for command components, making them AI-friendly and easier to validate.
- Removed legacy command classes and integrated new command handlers for improved functionality.

Benefits:
- Streamlined command handling and improved code quality.
- Enhanced developer experience with clear documentation and testing strategies.
- Maintained backward compatibility with no breaking changes to existing command interfaces.
2025-10-10 22:24:20 -04:00
scawful
c77ca503ca feat(dungeon): add z3ed dungeon emulator commands and unified layout
- Introduced new commands for dungeon editing, including exporting room data, listing objects, and setting room properties.
- Implemented a hex viewer component for inspecting ROM data in a hexadecimal format.
- Updated the tool dispatcher to handle new dungeon commands and integrated them into the CLI.
- Enhanced the main menu and unified layout to include the hex viewer and improved navigation.
- Refactored existing components for better state management and event handling.

Benefits:
- Expanded functionality for dungeon editing and ROM inspection.
- Improved user experience with new tools and streamlined navigation.
2025-10-10 20:34:12 -04:00
scawful
1435c15400 fix(z3ed): copy agent assets to build directory for CLI access 2025-10-10 19:21:27 -04:00
scawful
f91aff0b00 feat(asset): implement asset path resolution and streamline file loading
- Introduced a new utility function `FindAsset` in `PlatformPaths` to locate asset files across multiple standard directories, enhancing flexibility in asset management.
- Updated various components to utilize `FindAsset` for loading configuration and prompt files, replacing hardcoded search paths with a more robust solution.
- Improved error handling and logging for asset loading failures, ensuring clearer feedback during runtime.
- Refactored existing code in `gemini_ai_service`, `prompt_builder`, and `platform_paths` to leverage the new asset resolution mechanism, promoting code consistency and maintainability.
2025-10-10 19:12:16 -04:00
scawful
ede4c2ab1f feat(apu): finalize APU timing implementation and introduce headless emulator test harness
- Updated APU timing analysis to reflect implementation completion, addressing core timing issues with the SPC700.
- Added a headless emulator test harness for testing APU functionality without GUI overhead.
- Enhanced cycle accuracy and instruction execution, with known audio glitches noted for future refinement.
- Updated success criteria to reflect completed tasks and ongoing work for unit tests and audio quality improvements.

Benefits:
- Improved APU execution accuracy and synchronization.
- Streamlined testing process for APU functionality.
- Clear documentation of current implementation status and future work.
2025-10-10 18:58:17 -04:00
scawful
5778a470f7 feat(spc700): enhance cycle accuracy and instruction execution
- Introduced a new cycle lookup table for SPC700 instructions, improving timing precision.
- Refactored instruction execution to be fully atomic, eliminating the bstep mechanism.
- Added detailed comments for clarity on cycle counts and instruction behavior.
- Implemented additional logging for CPU audio initialization to aid debugging.

Benefits:
- Enhanced synchronization between CPU and APU.
- Improved testability and accuracy of instruction timing.
- Streamlined code for better maintainability and understanding.
2025-10-10 18:56:39 -04:00
scawful
5676d934f3 feat(apu): implement cycle budget model with fixed-point ratio
- Replace floating-point ratio with integer numerator/denominator
- Convert RunCycles() to use new Step() function
- Implement explicit cycle budget loop
- Add detailed comments explaining the conversion

Benefits:
- Perfect precision (no floating-point drift over long sessions)
- Explicit cycle counting for better debugging
- Faster integer arithmetic
- Testable cycle accuracy per instruction
2025-10-10 17:30:50 -04:00
scawful
f8c6536f40 feat(apu): add atomic Step() function for cycle-accurate SPC700 execution
- Add Step() method that executes one complete instruction atomically
- Returns exact cycle count consumed by the instruction
- Handles reset and stopped states explicitly
- Uses cycle lookup table from spc700_cycles.h
- Maintains compatibility with existing RunOpcode() for gradual migration

This implements the LakeSnes-inspired atomic execution model while
adding explicit cycle return for better testability.
2025-10-10 17:29:42 -04:00
scawful
6a49f7defa feat: Introduce mock ROM mode for testing without actual ROM files
- Added a new feature to the `z3ed` AI agent allowing testing in mock ROM mode, which creates a minimal valid ROM structure with embedded labels but no actual game data.
- Updated the `agent_test_suite.sh` script to default to mock ROM mode for easier testing.
- Introduced `--mock-rom` command line flag to enable mock ROM mode in various agent commands.
- Enhanced documentation to cover the usage and benefits of mock ROM mode for CI/CD and development testing.
- Implemented necessary changes in the codebase to support mock ROM initialization and label management.
2025-10-10 17:10:09 -04:00
scawful
735d9243fd refactor: Simplify entity dragging logic and enhance interaction handling
- Removed the `HandleEntityDragging` function to streamline entity dragging logic directly within the `OverworldEditor`.
- Implemented centralized drag-and-drop functionality for entities, improving user interaction during editing.
- Updated the `OverworldEntityRenderer` to manage hovered entities more effectively, enhancing the overall editing experience.
- Cleaned up unused code and improved readability across the entity handling components.
2025-10-10 16:39:31 -04:00
scawful
4c3cb2581d feat: Enhance object rendering and tile management in Zelda3
- Introduced a new method `set_dirty` in the `Rom` class to manage the dirty state of ROM data.
- Updated `DungeonCanvasViewer` to process texture queues before drawing, improving texture readiness and rendering performance.
- Refactored `ObjectDrawer` to utilize `TileInfo` instead of `Tile16`, enhancing tile data handling and consistency across the codebase.
- Improved the `ObjectParser` to read tile data as `TileInfo`, ensuring accurate parsing and memory management.
- Added performance optimizations in the `Room` class to track changes in properties and reduce unnecessary rendering.
- Enhanced logging for debugging purposes during tile drawing and object rendering processes.
2025-10-10 16:19:45 -04:00
scawful
8c26f17594 fix: Improve tile drawing logic and optimize texture processing
- Enhanced the DrawTileToBitmap function to correctly calculate tile positions within the graphics buffer, addressing potential out-of-bounds issues.
- Added detailed comments to clarify the organization of tile sheets and pixel indexing.
- Optimized the RenderRoomGraphics function by deferring texture processing to batch updates, significantly improving performance when multiple rooms are open.
2025-10-10 13:55:39 -04:00
scawful
fefd60da6e refactor: Rename SendMessage to SendChatMessage for clarity
- Updated method name from SendMessage to SendChatMessage in both the implementation and header files to better reflect its purpose in the network collaboration context.
- Ensured consistency in method signatures across the codebase.
2025-10-10 13:53:00 -04:00
scawful
5cc650053d fix: Correct canvas mouse position tracking and add regression tests 2025-10-10 13:37:08 -04:00
scawful
c96272296c refactor: Consolidate Canvas Documentation and Update Structure
- Streamlined the canvas documentation by consolidating multiple guides into a single comprehensive overview.
- Updated the canvas architecture section to reflect new features and interaction modes, enhancing clarity for users.
- Improved API patterns and integration steps for editors, ensuring consistency across documentation.
- Removed outdated content and added new sections on automation and debugging, aligning with recent code changes.
- Adjusted file paths in the documentation to match the current project structure, ensuring accurate references.
2025-10-10 13:03:43 -04:00
scawful
f538775954 refactor: Organize Canvas Utilities and BPP Format Management
- Moved canvas utility functions into a dedicated `canvas_utils` module for better structure and maintainability.
- Introduced a new `BppFormatUI` class for managing BPP format selection and conversion, enhancing the user interface for format management.
- Updated CMake configuration to include new source and header files for the canvas utilities and BPP format UI.
- Adjusted file paths in the project structure to reflect the new organization, ensuring proper integration across components.
2025-10-10 12:02:33 -04:00
scawful
b2701c8cec refactor: Update Test Status Enum and Compiler Options
- Changed the enum values in GetTestStatusResponse from STATUS_* to TEST_STATUS_* for consistency and clarity.
- Updated corresponding references in imgui_test_harness_service.cc and gui_automation_client.cc to reflect the new enum naming.
- Added /EHsc compiler option in CMakeLists.txt for MSVC to enable C++ exception handling.
2025-10-10 10:55:28 -04:00
scawful
b64ef74b10 feat: Introduce Layout Override Feature in DungeonCanvasViewer
- Added a new "Layout Override" section in the DungeonCanvasViewer, allowing users to enable or disable layout overrides for dungeon rooms.
- Implemented a checkbox to toggle the override and a slider to select the layout ID when enabled.
- Removed the previously disabled room layout drawing code to streamline the rendering process.
- Updated the layout management to ensure proper handling of layout IDs and visibility settings.
- Enhanced the overall user interface for better control over dungeon layout visualization.
2025-10-10 10:14:50 -04:00
scawful
db517abbb3 refactor: Update Performance File Paths and Cleanup Integration
- Refactored file paths for performance-related headers to reflect the new directory structure under `app/gfx/performance/`.
- Updated references in the `Canvas` class to align with the new paths, ensuring proper integration of performance monitoring components.
- Cleaned up unnecessary prefixes in performance integration checks to enhance code readability and maintainability.
2025-10-10 10:12:44 -04:00
scawful
cbcf1e40be refactor: Update Performance Header Includes and Add Emulator Test Suite
- Refactored header includes for Performance Profiler and Dashboard to reflect new directory structure under `app/gfx/performance/`.
- Introduced a new `EmulatorTestSuite` class to validate core emulator components, including APU, SPC700, and debugging features.
- Enhanced test suite with detailed test cases for APU handshake, SPC700 cycle accuracy, breakpoint management, and audio backend functionality.
- Removed outdated `test_dungeon_objects.cc` file from the test suite to streamline testing focus.
2025-10-10 10:07:35 -04:00
scawful
411f842b20 refactor: Restructure Performance Profiler and Dashboard Integration
- Updated file paths for performance-related headers to reflect new directory structure under `app/gfx/performance/`.
- Introduced new `PerformanceDashboard` and `PerformanceProfiler` classes for comprehensive performance monitoring and reporting.
- Enhanced performance metrics collection and visualization capabilities, including real-time updates and detailed reports.
- Improved memory usage tracking and optimization status analysis within the graphics system.
- Ensured compatibility with existing components by updating include directives across multiple files.
2025-10-10 10:05:21 -04:00
scawful
a2de6ba7d1 feat: Add Static Room Layout Pointers to Dungeon ROM Addresses
- Introduced a static array of pointers for the 8 predefined room layouts, enhancing the structure and accessibility of room layout data.
- Included the necessary header for std::array to support the new data structure.
2025-10-10 09:06:15 -04:00
scawful
6c6bb67a87 fix: Restore Windows macro definitions to prevent conflicts with protobuf generated code
- Added preprocessor directives to push and pop the DWORD and ERROR macros in widget_discovery_service.h, rom_service_impl.h, and gui_automation_client.h.
- This change ensures compatibility with protobuf generated code in a Windows environment, preventing potential compilation issues.
2025-10-10 08:44:01 -04:00