|Re: [hatari-devel] Blitter emulation corner case|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
Le 20/05/2017 à 21:04, Christian Zietz a écrit :
Nicolas Pomarède schrieb:
I think it's properly emulated, it's just that the blitter copy in that
case takes less than 64 bus cycles, so there's no need to restart the
blitter a 2nd time in non hog mode
No, what I meant is that even when according to Atari docs I had to
restart the Blitter but didn't, the result on Hatari should match the
one real hardware. Which it currently doesn't as you know.
I agree your code doesn't restart the blitter, but in the case of those
tests, it would not be needed anyway, whether you're in hog mode or not
: from what I see in Hatari traces, the blitter in your test cases take
at most ~200 cpu cycles (ie 50 bus accesses).
So, Hatari seems correct : the blitter is started, it copies in 50 bus
accesses (or less depending on how many src words are read if prefetch
or not), then the cpu gets control of the bus and when it tests busy
bit, it's clear and you exit your while loop.
There's no need to restart the blitter a 2nd time, because everything
was copied on the 1st run.
We see Hatari doesn't match the sequence of word reads and this needs to
be improved, but the behaviour of the busy/hog bits seems correct to me