カテゴリ 重要度 ステータス 解決状況 登録日時 最終更新
仮承認未処理2014-01-24 08:332014-01-25 03:43
 
テスターAlegend45担当者 ソースatari/atari400.cpp
バージョン0.152発生バージョン修正バージョン
修正コミットプルリク
フラグバグかもね
セット a800
セット詳細
 
概 要INC WSYNC指定をすると3ラインスキップされる。Acid800では本来1スキャンライン。
詳 細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.
再現手順1. Run Acid800 in the a800 driver.
2. Wait for the CPU timing test.
追加情報 
 
添付ファイルdiff fileantic.diff (2014-01-24 08:34)