Commit Graph

46 Commits

Author SHA1 Message Date
scawful
3125ff4b76 feat: Implement audio backend and APU debugging features
- Introduced a new audio backend system with SDL2 support, allowing for flexible audio management and improved performance.
- Added APU handshake tracking capabilities to monitor CPU-APU communication during audio program uploads, enhancing debugging and transfer diagnostics.
- Updated the Emulator class to integrate the new audio backend, ensuring compatibility with existing audio handling.
- Implemented an APU Debugger UI for real-time monitoring of handshake status, port activity, and transfer progress, improving user experience for debugging audio issues.
- Refactored audio-related code to streamline audio sample queuing and management, enhancing overall emulator performance.
2025-10-08 20:57:43 -04:00
scawful
84726dad98 feat: Enhance Emulator with State Management and Command-Line Options
- Added command-line flags for ROM loading, GUI toggling, state loading, and dumping, improving emulator flexibility.
- Implemented state management in the Snes class with loadState and saveState methods for saving and restoring emulator state.
- Updated the main emulator loop to handle frame counting and logging, providing better insights during execution.
- Refactored CMake configuration to streamline build options for the emulator application.
2025-10-06 13:07:49 -04:00
scawful
3734884ba3 Refactor Snes class and enhance Apu functionality
- Updated Snes constructor to initialize CPU callbacks directly, improving readability and maintainability.
- Removed unnecessary CpuCallbacks parameter from Cpu constructor, streamlining the class design.
- Added new methods in Apu for retrieving cycles, status, control, and handling DMA transfers, enhancing audio processing capabilities.
- Introduced unit tests for Apu to validate initialization, sample generation, and handshake timing, ensuring robust audio functionality.
2025-09-24 12:51:29 -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
1c53ba24c5 Refactor PPU and CPU classes by removing Clock dependency and updating constructors 2025-01-18 00:12:12 -05:00
scawful
d2a6169914 Refactor SNES class: rename to Snes for consistency, update method names, and clean up includes 2024-12-30 07:50:30 -05:00
scawful
e05e7c35db remove app namespace 2024-12-28 21:28:51 -05:00
scawful
039d64c539 Add platform-specific source for Apple and clean up includes in SNES header 2024-11-27 16:39:20 -05:00
scawful
3340066415 Refactor CPU and memory components: remove logging dependencies and restructure DMA channel definitions 2024-11-08 21:09:04 -05:00
scawful
89edcaa2a3 remove clock from apu, use std::array 2024-04-25 23:51:37 -04:00
scawful
c3379d8adc cleanup SNES 2024-04-24 23:34:43 -04:00
scawful
96fbe066ab update cycle mgmt for vblank hblank, access time for routines 2024-04-24 15:41:00 -04:00
scawful
aaf9724531 Move Apu cycling from SNES to Apu class 2024-04-24 12:32:09 -04:00
scawful
bd6fc2e8f1 Play audio in emulator class, update class references from the SNES 2024-04-24 10:08:05 -04:00
scawful
de49d59070 Change callbacks from using this to & for lambda 2024-04-23 14:01:07 -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
541e045c46 Call Dsp::GetSamples from SNES SetSamples 2024-04-20 08:10:18 -04:00
scawful
2de3b283cd Add SNES::SetSamples and accessors for snes object 2024-04-20 07:40:27 -04:00
scawful
c906da46a0 Consolidate SNES::Init 2024-04-19 17:54:26 -04:00
scawful
5fecbc6939 Remove SNES::StartApuDataTransfer 2024-04-19 16:52:56 -04:00
scawful
7e46cf1c64 Rename ROM class to Rom 2024-04-14 14:47:17 -05:00
scawful
f653517026 add memory namespace, update comments 2024-04-13 23:56:41 -05:00
scawful
2809acd809 Add video namespace to emu 2024-04-13 23:39:23 -05:00
scawful
ca076164ce Rename CPU to Cpu 2024-04-13 23:33:35 -05:00
scawful
ad08d998b5 Add audio namespace inside of emu 2024-04-13 23:32:30 -05:00
scawful
3effd03f1f Rename APU to Apu 2024-04-13 23:25:41 -05:00
scawful
d0c9229093 Reorganize emu cpu directory 2023-12-05 21:16:16 -05:00
scawful
dad4a38f59 Add step mode to snes emulator 2023-12-05 03:47:06 -05:00
scawful
a0019ab7fb Add all 65816 instruction tests
Separate CPU class into instructions and addressing files
2023-12-03 05:13:25 -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
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
3711ff688a Add header guards to SNES 2023-11-12 10:25:46 -05:00
scawful
5a4ecc5b20 PPU upgrades, move Memory to own dir 2023-08-27 15:24:27 -04:00
scawful
559c2e4830 Add SignalReady to APU init 2023-08-26 04:51:50 -04:00
scawful
a2de3c2ffe SPC700 to get notified when ports are written 2023-08-26 02:33:19 -04:00
scawful
3d793c452d Reorganize emu folder, update S-SMP system infra 2023-08-26 01:59:57 -04:00
scawful
453a2575f4 Inject SPC700 to APU, add APU and PPU observers 2023-08-24 22:54:52 -04:00
scawful
d538317629 Add VirtualClock, MockClock, dependency injection 2023-08-20 23:45:56 -04:00
scawful
2ec43cfb3f Update Clock class for cycle accurate components 2023-08-20 22:30:06 -04:00
scawful
7448f80119 Add CMP, COP, DEC, EOR, update SNES and Memory 2023-08-20 15:39:22 -04:00
scawful
bc7accfe9e Add DMA and SNES Init, VBlank, NMI, etc 2023-08-20 11:48:51 -04:00
scawful
536136d8c9 DirectPage and DirectPageIndirect 2023-08-19 20:12:56 -04:00
scawful
f0d0d9abc6 Create SNES skeleton 2023-08-19 14:12:45 -04:00