Commit Graph

48 Commits

Author SHA1 Message Date
scawful
97c75e074d feat: Add Known Issues and Next Steps for G3 Renderer Migration
- Documented known issues specific to macOS, including crashes during window resizing and occasional loading indicators during texture processing.
- Outlined high, medium, and low priority stability improvements for future sessions, focusing on texture processing, event handling, and resource management.
- Updated the document version and added testing recommendations to ensure thorough validation before the next major change.
2025-10-07 18:35:14 -04:00
scawful
2edeb9f50d fix: Update Window Event Handling and Emulator Destructor Logic
- Added handling for SDL_WINDOWEVENT_RESIZED, SDL_WINDOWEVENT_MINIMIZED, SDL_WINDOWEVENT_HIDDEN, SDL_WINDOWEVENT_RESTORED, and SDL_WINDOWEVENT_SHOWN in the window event processing to improve rendering behavior during window state changes.
- Modified the Emulator destructor to stop emulation without calling Cleanup(), as the renderer is already destroyed, ensuring proper shutdown behavior.
2025-10-07 18:21:12 -04:00
scawful
defc99b571 feat: Enhance Emulator and Rendering Performance with New Features
- Implemented a Cleanup method in the Emulator class to manage resources effectively during shutdown.
- Added auto-pause functionality to the emulator when the window loses focus, optimizing CPU and battery usage.
- Updated the DoRender method in the Controller class to include frame timing management and a gentle frame rate cap.
- Enhanced texture processing in the Arena class to batch process up to 8 texture commands per frame, improving rendering efficiency.
2025-10-07 18:16:36 -04:00
scawful
0c3c8ebca7 feat: Implement lazy initialization for Emulator and Renderer
- Updated Emulator to support optional lazy initialization of the renderer, enhancing flexibility during runtime.
- Introduced a new method in IRenderer for creating textures with specific pixel formats, improving texture management for the emulator.
- Refactored texture command processing in Arena to handle empty queues more gracefully.
- Enhanced SDL2Renderer to support the new texture creation method, ensuring compatibility with emulator requirements.
2025-10-07 17:49:27 -04:00
scawful
6c331f1fd0 epic: refactor SDL2_Renderer usage to IRenderer and queued texture rendering
- Updated the testing guide to clarify the testing framework's organization and execution methods, improving user understanding.
- Refactored CMakeLists to include new platform-specific files, ensuring proper integration of the rendering backend.
- Modified main application files to utilize the new IRenderer interface, enhancing flexibility in rendering operations.
- Implemented deferred texture management in various components, allowing for more efficient graphics handling and improved performance.
- Introduced new methods for texture creation and updates, streamlining the rendering process across the application.
- Enhanced logging and error handling in the rendering pipeline to facilitate better debugging and diagnostics.
2025-10-07 17:15:11 -04:00
scawful
7f71fd9e80 feat: Enhance ROM Loading with Validation and Disassembly Viewer Integration
- Added validation checks for ROM file existence and size constraints (minimum 32KB, maximum 8MB) during loading.
- Integrated a new disassembly viewer to track and display executed instructions, enhancing debugging capabilities.
- Updated CPU class to manage disassembly viewer instances, allowing for real-time instruction logging.
- Improved emulator's CMake configuration to include new source files related to the disassembly viewer.
- Enhanced pixel handling in the PPU to support BGRX format for better compatibility with SDL.
2025-10-06 21:49:12 -04:00
scawful
14eba4a765 feat: Add Emulator Editor Type and UI Enhancements
- Introduced a new editor type for the emulator, allowing users to access emulator functionalities directly from the editor manager.
- Updated the editor selection dialog to include the emulator option with appropriate descriptions and shortcuts.
- Enhanced the emulator interface with modern theming and improved layout for better user experience.
- Implemented various UI components for performance monitoring, AI agent integration, and save state management, enriching the emulator's capabilities.
2025-10-06 21:18:56 -04:00
scawful
fdb817987f feat: Implement FPS Tracking and Audio Status Display in Emulator
- Added frame rate tracking to the emulator, calculating and displaying current FPS in the UI.
- Enhanced audio management by monitoring queued audio frames and ensuring the audio buffer is filled appropriately.
- Updated texture handling to align with the PPU output format, improving visual consistency.
- Refactored timing management to cap time accumulation, preventing performance issues during frame processing.
2025-10-06 20:01:10 -04:00
scawful
a881c0f8e1 feat: Refactor Emulator to Accept ROM Parameter and Enhance Logging
- Updated Emulator::Run method to accept a Rom* parameter, improving flexibility in ROM handling.
- Refactored texture creation and ROM data initialization to utilize the new parameter.
- Enhanced logging in Snes class to provide detailed information during initialization, reset, and frame processing, aiding in debugging and performance monitoring.
- Introduced cycle tracking in Apu and Spc700 classes for accurate synchronization and debugging.
- Added unit tests for APU DSP functionality and IPL ROM handshake to ensure reliability and correctness of audio processing.
2025-10-06 11:41:33 -04:00
scawful
bcc8f8e8f9 refactor: Restructure file dialog handling and introduce utility classes
- Updated file dialog references across the application to utilize a new `util::FileDialogWrapper` for consistent file handling.
- Refactored existing code to replace direct calls to `core::FileDialogWrapper` with the new utility class, enhancing modularity and maintainability.
- Introduced `util::PlatformPaths` for cross-platform directory management, ensuring consistent access to user directories and application data paths.
- Added new utility functions for file operations, improving the overall file handling capabilities within the application.
- Updated CMake configurations to include new utility source files, streamlining the build process.
2025-10-04 23:26:42 -04:00
scawful
9b51cd09f6 feat: Enhance AgentChatWidget with system prompt management and project settings
- Updated system prompt loading functionality to support both version 1 and version 2 prompts, allowing users to load built-in prompts directly.
- Implemented custom system prompt loading and saving capabilities, enabling users to manage their prompts more effectively.
- Added methods to load and save agent settings from/to project files, including AI provider configurations and custom prompts.
- Improved user feedback with toast notifications for successful and failed operations related to system prompts and settings.
2025-10-04 21:37:56 -04:00
scawful
62230fbe5c Remove Windows ARM64 build configuration and delete unused generate-vs-projects.py script
- Removed the Windows ARM64 configuration from the GitHub Actions release workflow to streamline the build process.
- Deleted the generate-vs-projects.py script as it was no longer needed for project setup, simplifying the codebase.
- Updated the OverworldEditor header to improve clarity by renaming a method parameter for better understanding.
- Refactored the Emulator class to enhance the rendering interface, improving the user experience in the emulator's GUI.
2025-09-29 20:23:17 -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
1031509e8a Refactor Emulator and Snes classes for improved memory access
- Updated Emulator class to remove inheritance from SharedRom and streamline ROM handling.
- Refactored memory access methods in Emulator and Snes classes to use consistent naming conventions.
- Enhanced DungeonObjectRenderer to utilize the updated Snes class for CPU and memory operations, improving clarity and maintainability.
- Cleaned up unnecessary comments and improved code formatting for better readability.
2025-05-15 22:53:37 -04:00
scawful
fcb6a46bb1 Refactor Renderer access and improve gesture handling in iOS and test files
- Replaced instances of Renderer::GetInstance() with Renderer::Get() for consistency across the codebase.
- Enhanced gesture handling in iOS by adding mouse position events for touch gestures.
- Streamlined test initialization for ImGui to align with recent renderer access changes.
2025-05-08 19:39:49 -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
c8883a1e54 Remove unused includes and clean up header files 2025-01-16 03:44:37 -05:00
scawful
c23a2458c4 Refactor emulator code: update SNES references to Snes for consistency, clean up includes, and remove commented-out code 2024-12-30 07:50:37 -05:00
scawful
e05e7c35db remove app namespace 2024-12-28 21:28:51 -05:00
scawful
36e5f7a150 Refactor input handling in Emulator and Controller for improved key event management 2024-11-18 14:34:08 -05:00
scawful
e8e6ab00bf Refactor ImTextureID casting for SDL_Texture rendering 2024-10-09 01:59:15 -04:00
scawful
9bbb6c6114 chore: Refactor file_dialog.cc and file_dialog.h to use namespace aliases 2024-08-13 23:56:17 -04:00
scawful
9a2c8ae17a replace old renderer access pattern 2024-08-09 18:58:07 -04:00
scawful
7c708519ac standardize imgui headers as user instead of system 2024-07-30 23:33:12 -04:00
scawful
85bd48eafa housekeeping 2024-05-24 21:34:36 -04:00
scawful
d76525201f match cpu registers on reset to hardware, cleanup 2024-04-25 00:50:39 -04:00
scawful
953c9a5c7f Add load rom file to emulator ui 2024-04-24 23:38:00 -04:00
scawful
f6e610814d Add register info to emu ui, table view for mem space 2024-04-24 15:41:20 -04:00
scawful
bd6fc2e8f1 Play audio in emulator class, update class references from the SNES 2024-04-24 10:08:05 -04:00
scawful
3eb7743dee emu and memory refactoring 2024-04-23 14:01:56 -04:00
scawful
917cd26a6e Add SNES BBus, registers, input, nmi/irq, joypad handling, frame timing, cpu callbacks, etc 2024-04-22 15:53:17 -04:00
scawful
ecf9c7c415 Add opcode_to_cycle_count map, update emu layout 2024-04-19 19:04:41 -04:00
scawful
a825ac36b2 Increase NotifyObservers data arg to uint16_t from uint8_t 2024-04-19 17:55:52 -04:00
scawful
07feeac7c2 Update emulator instruction log filtering 2024-04-19 16:02:55 -04:00
scawful
a18b6db285 Remove Emulator::RenderCpuState 2024-04-17 20:34:37 -04:00
scawful
d14b2beec8 Condense emulator zeml layout, include function in zeml 2024-04-17 20:26:46 -04:00
scawful
a01e963efb Use zeml for emulator cpu state layout and emulator menu bar 2024-04-17 20:12:51 -04:00
scawful
ca076164ce Rename CPU to Cpu 2024-04-13 23:33:35 -05:00
scawful
394f1646e6 housekeeping 2024-01-22 03:31:33 -05:00
scawful
dad4a38f59 Add step mode to snes emulator 2023-12-05 03:47:06 -05:00
scawful
446734321c SNES, CPU, Emulator + tests updated 2023-11-30 02:12:11 -05:00
scawful
1633955177 Emulator housekeeping 2023-11-26 16:48:49 -05:00
scawful
c462d749e2 Emulator housekeeping 2023-11-25 22:44:27 -05:00
scawful
041e365416 Dungeon object updates 2023-11-22 12:23:02 -05:00
scawful
59e7dcc7f0 GUI Updates
Add DisplaySettings, replace ImGui style editor
Update Debugger interface with memory viewer
Decompose SNES initialization routines
Update DungeonObjectRenderer plan
Add DrawObjectRenderer UI mockup fofr DungeonEditor
2023-11-21 11:07:04 -05:00
scawful
ed7204b127 Emulator debugger GUI updates 2023-11-18 00:03:49 -05:00
scawful
299770922c Add Debugger interface, RoomObject class
- Log instructions to debugger using experiment flag
- Use BitmapManager for more functionality
- Draw framebuffer and integrated debugger
2023-11-13 14:51:01 -05:00
scawful
6ae969d345 Move Emulator to emu namespace 2023-11-12 10:17:25 -05:00