| カテゴリ | 重要度 | ステータス | 解決状況 | 登録日時 | 最終更新 |
|---|---|---|---|---|---|
| 低 | 仮承認 | 未処理 | 2014-01-24 08:33 | 2014-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. | ||||
| 追加情報 | |||||
| 添付ファイル | |||||