RichardBrown384 / Eichhoernchen

Acorn Archimedes A3000 Emulator in C++23
https://github.com/RichardBrown384/archimedes
MIT License
14 stars 0 forks source link

[BUG] Mode 15 has visual glitches running under RISC OS 2 #13

Open RichardBrown384 opened 2 months ago

RichardBrown384 commented 2 months ago

Describe the bug When in Mode 15 there are visual glitches when running under RISC OS 2.

To Reproduce Steps to reproduce the behaviour:

  1. Start up the emulator
  2. Change to Mode 15
  3. Observe on scan lines visual glitches after the line changes colour

Expected behaviour The picture should be stable.

Please complete the following information

Additional context It's thought that the machine is taking too long to service video DMA requests.

The current thinking is that RISC OS 2 runs most of its code from ROM which at best has a 200ns documented access time. (RISC OS 3, designed to run on a faster ARM 3 which could access RAM at 42ns would benefit more from copying portions of the OS into RAM which is maybe why this issue doesn't appear to manifest under RISC OS 3).

However, when doing the initial exploration of this issue it was found that the MEMC had selected a 450ns access time, which was somewhat surprising. Forcing the MEMC to have an access time of 200ns also didn't resolve the issue.

RichardBrown384 commented 2 months ago

Update:

Tried an experiment with a stripped down VIDC/MEMC implementation with the 200ns ROM access time.

This appears to work okay but then that does open the question as to why there are visual glitches in the emulator even when we ignore the ROM speed settings and use a 200ns access time.