Skip to content

[Plus] Check whether DMA/PRI interrupts should be cleared when receiving an IM1 interrupt. #285

Description

@ColinPitrat

In arnold, when the Z80 CPU acknowledges any interrupt (independent of its mode), it triggers ASIC_AcknowledgeInterrupt. This automatically clears the raster/PRI interrupt (ASIC_ClearRasterInterrupt) or the highest-priority DMA interrupt.

In caprice, asic_get_interrupt_vector is only called under IM 2. In IM 1, the Z80 simply jumps to 0x38 but never acknowledges or clears the pending state in the ASIC.

Find out which behavior is the correct one and fix caprice's behavior if needed. Then check if it fixes any game.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions