Commit Graph

36 Commits

Author SHA1 Message Date
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
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
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
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
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
d45917fcab Update executable source file and improve keybinding naming conventions for clarity 2024-11-18 16:57:10 -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
7c708519ac standardize imgui headers as user instead of system 2024-07-30 23:33:12 -04:00
scawful
65d97bbab5 housekeeping, imgui, emulator, input 2024-07-24 10:43:39 -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
5ce7ca9148 Add spc registers to emulator ui 2024-04-24 12:32:26 -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
2de3b283cd Add SNES::SetSamples and accessors for snes object 2024-04-20 07:40:27 -04:00
scawful
ecf9c7c415 Add opcode_to_cycle_count map, update emu layout 2024-04-19 19:04:41 -04:00
scawful
2b11e61aac Update emulator zeml layout 2024-04-19 18:06:13 -04:00
scawful
b9212732a3 Add flags to collapsing headers in zeml 2024-04-19 16:40:53 -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
dfbe0014d9 Fix references to Rom class in comments 2024-04-14 15:20:56 -05:00
scawful
5953e58bd4 Rename SharedROM to SharedRom 2024-04-14 14:51:53 -05:00
scawful
5aae3bb1ef specify namespace scope for doxygen 2024-04-14 10:08:33 -05:00
scawful
ca076164ce Rename CPU to Cpu 2024-04-13 23:33:35 -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
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