Re: [hatari-devel] Blitter emulation corner case

[ Thread Index | Date 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 at least.

Nicolas



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/