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

Sprite test disarm1 fails #810

Closed
dirkwhoffmann opened this issue Jan 8, 2024 · 2 comments
Closed

Sprite test disarm1 fails #810

dirkwhoffmann opened this issue Jan 8, 2024 · 2 comments
Labels
Bug Something isn't working v2.5

Comments

@dirkwhoffmann
Copy link
Owner

dirkwhoffmann commented Jan 8, 2024

Likely related to #715.

The test draws all seven sprites and utilizes the Copper to write into SPRxCTL around the same time the register is written by DMA.

A500 ECS:

disarm1_A500_ECS

Latest vAmiga:

Bildschirmfoto 2024-01-08 um 15 46 46

The error might be due to dropped register writes on the real machine.

Next step:

The sprdrop test folder already contains tests for verifying the correct write-dropping behaviour for SPRxPTL and SPRxPTH. Write similar tests for SPRxPOS and SPRxCTL.

@dirkwhoffmann dirkwhoffmann added the Bug Something isn't working label Jan 8, 2024
@dirkwhoffmann
Copy link
Owner Author

The tests have been replaced by better ones: interfere1 to interfere6 and interfere1b to interfere6b in folder Denise/Sprites/sprma (vAmigaTS repo).

Together, the tests suggest the following:

  • Writes to SPRxPOS and SPRxCTL are delayed by 2 DMA cycles.
  • A DMA write to SPRxPOS and SPRxCTL is dropped when SPRxCTL was written one cycle earlier.

The latest version on the dev branch passes all 12 interfere tests.

@dirkwhoffmann
Copy link
Owner Author

Fixed in v2.5b1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working v2.5
Projects
None yet
Development

No branches or pull requests

1 participant