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.
This commit is contained in:
scawful
2025-10-08 20:57:43 -04:00
parent 7f4a0f546c
commit 3125ff4b76
14 changed files with 1057 additions and 122 deletions

View File

@@ -1,12 +1,14 @@
set(
YAZE_APP_EMU_SRC
app/emu/audio/apu.cc
app/emu/audio/audio_backend.cc
app/emu/audio/spc700.cc
app/emu/audio/dsp.cc
app/emu/audio/internal/addressing.cc
app/emu/audio/internal/instructions.cc
app/emu/cpu/internal/addressing.cc
app/emu/cpu/internal/instructions.cc
app/emu/debug/apu_debugger.cc
app/emu/debug/disassembly_viewer.cc
app/emu/debug/breakpoint_manager.cc
app/emu/debug/watchpoint_manager.cc
@@ -884,6 +886,8 @@ source_group("Application\\Emulator" FILES
source_group("Application\\Emulator\\Audio" FILES
app/emu/audio/apu.cc
app/emu/audio/apu.h
app/emu/audio/audio_backend.cc
app/emu/audio/audio_backend.h
app/emu/audio/spc700.cc
app/emu/audio/spc700.h
app/emu/audio/dsp.cc
@@ -920,6 +924,18 @@ source_group("Application\\Emulator\\Video" FILES
app/emu/video/ppu_registers.h
)
# Debug System
source_group("Application\\Emulator\\Debug" FILES
app/emu/debug/apu_debugger.cc
app/emu/debug/apu_debugger.h
app/emu/debug/breakpoint_manager.cc
app/emu/debug/breakpoint_manager.h
app/emu/debug/disassembly_viewer.cc
app/emu/debug/disassembly_viewer.h
app/emu/debug/watchpoint_manager.cc
app/emu/debug/watchpoint_manager.h
)
# Graphics System
source_group("Application\\Graphics" FILES
app/gfx/arena.cc