Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
05434 Timing Minor Always Jan 23, 2014, 23:33 Jan 24, 2014, 18:43
Tester Alegend45 View Status Public Platform MESS (Self-compiled)
Assigned To Resolution Open OS Linux
Status [?] Acknowledged Driver
Version 0.152 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary MESS-specific 05434: a800: [possible] INC WSYNC skips 3 scanlines while Acid800 expects one scanline to be skipped.
Description This bug occurs in Acid800's CPU timing test, where it states "Incorrect DEX/BNE cycle count: 6." I investigated this, and the culprit, assuming the cycle counts in the 6502 core are correct, is an INC WSYNC instruction, which issues a read, and 2 writes to and from WSYNC, according to how the 6502 does it. This skips 3 scanlines in MESS when Acid800 only expects it to skip one.

I have a partial fix for this that makes reads from WSYNC do nothing, as the Altirra Hardware Reference Manual says they do (or at least it says the WSYNC is write-only).

Something that should fully fix this would be, according to the same document, making the 6502 core not respond to RDY during write cycles. However, this is beyond my ability.
Steps To Reproduce 1. Run Acid800 in the a800 driver.
2. Wait for the CPU timing test.
Additional Information
Github Commit
Flags Possible
Regression Version
Affected Sets / Systems a800
Attached Files
? file icon antic.diff (626 bytes) Jan 23, 2014, 23:34 Uploaded by Alegend45
Partial fix patch
[Show Content]
Relationships
There are no relationship linked to this issue.
Notes
0
There are no notes attached to this issue.