docs: Add APU Timing and Handshake Bug Analysis & Refactoring Plan

- Introduced a new document detailing the APU timing issue that prevents music playback due to handshake failures between the CPU and APU.
- Analyzed the CPU-APU handshake process, identifying points of failure and root causes related to cycle inaccuracies in SPC700 emulation.
- Proposed a comprehensive refactoring plan to implement cycle-accurate instruction execution, centralize the APU execution loop, and use integer-based cycle ratios to eliminate floating-point errors.
- This document serves as a critical resource for developers addressing audio emulation challenges.
This commit is contained in:
scawful
2025-10-09 20:50:24 -04:00
parent 0ba767d6fe
commit 51342b02e3
4 changed files with 185 additions and 3 deletions

View File

@@ -39,7 +39,7 @@ if(YAZE_BUILD_TESTS AND NOT YAZE_BUILD_TESTS STREQUAL "OFF")
unit/zelda3/dungeon_component_unit_test.cc
unit/zelda3/dungeon/room_object_encoding_test.cc
unit/zelda3/dungeon/room_manipulation_test.cc
unit/zelda3/dungeon_object_renderer_mock_test.cc
# dungeon_object_renderer_mock_test.cc - REMOVED (ObjectRenderer obsolete)
# CLI Services (for catalog serialization tests)
../src/cli/service/resources/resource_catalog.cc
@@ -65,7 +65,7 @@ if(YAZE_BUILD_TESTS AND NOT YAZE_BUILD_TESTS STREQUAL "OFF")
# Integration Tests (Zelda3)
integration/zelda3/overworld_integration_test.cc
integration/zelda3/dungeon_editor_system_integration_test.cc
integration/zelda3/dungeon_object_renderer_integration_test.cc
# dungeon_object_renderer_integration_test.cc - REMOVED (ObjectRenderer obsolete)
integration/zelda3/room_integration_test.cc
integration/zelda3/dungeon_object_rendering_tests.cc
integration/zelda3/dungeon_room_test.cc