CDTV with netplay desyncs on every boot regardless of CD presence, before any game loads.
Root cause is the CDTV CD controller thread writing to emulated hardware registers asynchronously during initialization.
These register values are read by the Amiga ROM during boot and written to chip RAM at different emulation frame counts on each client.
Fix requires deferring CDTV controller register writes to frame boundaries in deterministic mode, similar to the existing hard drive desync fix.
Looking at the log, the exact sequence is:
uae_start_tread "cdtv" function at 0000000000fa5830 arg 0000000000000000
CDTV: CD thread started
CDTV: reset
↓ thread starts and runs asynchronously
Card 1: Z2 0x00e90000 64K IO CDTV DMAC/CD Controller
↓ Amiga ROM autoconfig probes the CDTV controller
CDTV: command register read while empty
CDTV: command register read while empty
WARNING: ERROR 8 from netplay server
CDTV with netplay desyncs on every boot regardless of CD presence, before any game loads.
Root cause is the CDTV CD controller thread writing to emulated hardware registers asynchronously during initialization.
These register values are read by the Amiga ROM during boot and written to chip RAM at different emulation frame counts on each client.
Fix requires deferring CDTV controller register writes to frame boundaries in deterministic mode, similar to the existing hard drive desync fix.
Looking at the log, the exact sequence is:
↓ thread starts and runs asynchronously
↓ Amiga ROM autoconfig probes the CDTV controller