]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commit
Fix audio state machine stale intreq2 logic
authorhowprice <howprice@users.noreply.github.com>
Wed, 19 Nov 2025 16:15:43 +0000 (16:15 +0000)
committerhowprice <howprice@users.noreply.github.com>
Wed, 19 Nov 2025 16:15:43 +0000 (16:15 +0000)
commitea57e57282a1b350ba1684d0aced793f2d734ad3
tree4ab8d8d944675ad7a24df9734452785b3ba24011
parent4f28fc0695842df76b404233d0c28f329f894d10
Fix audio state machine stale intreq2 logic

As discussed in the "Undocumented Amiga hardware stuff" thread https://eab.abime.net/showpost.php?p=1679952&postcount=337
The audio state machine intreq2 signal should only be cleared when used to request an interrupt (AUDxIR).

Previously, intreq2 was cleared (and no interrupt requested) on the transition from state 5 to state 1.
Now, intreq2 is checked on transition from state 0 to state 1. If it is set, then an interrupt is requested and intreq2 is cleared.

Logically this is the same for the internal state machine, but the interrupts have been shown to be present on silicon using test case https://github.com/dirkwhoffmann/vAmigaTS/blob/master/Paula/Audio/timing/dmatim2/ and with this change, three missing interrupts are now generated in this test case (I'll add some images to the associated pull request).
audio.cpp