Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Agnus sequencer accuracy #713

Closed
dirkwhoffmann opened this issue Jun 25, 2022 · 1 comment
Closed

Improve Agnus sequencer accuracy #713

dirkwhoffmann opened this issue Jun 25, 2022 · 1 comment
Labels
Done Enhancement New feature or request

Comments

@dirkwhoffmann
Copy link
Owner

The current sequencer cannot handle the case that bitplane DMA is switched off in the middle of a scanline (i.e., while bitplane DMA is active). To address this scenario, the sequencer should be improved as follows:

sequencer

  1. Emulate the bpstopreq and the stop flipflop accurately.
  2. Emulate the T-flipflop counter accurately.
    Right now, when BPRUN equals 0, the counter equals 0 in my emulation. This is inaccurate because the LSB (cnt0) is represented by the HI line. Hence, if BPRUN equals 0, the counter still toggles between 0 and 1 in the real machine. This affects timing of line last which in turn affects timing of the stop flipflop.

Furthermore, there is a bug in the real OCS Agnus (ECS is even worse). If DMA is switched off after stopreq has been asserted, the flipflop doesn't seem to get cleared any more. Hence, if DMA is switched on again in the next scanline, DMA terminates early because stopreq is still asserted. I can't see this behaviour in the available schematics.

@dirkwhoffmann dirkwhoffmann added the Enhancement New feature or request label Jun 25, 2022
@dirkwhoffmann
Copy link
Owner Author

Part of v2.1b3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Done Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant