[hatari-devel] New cycle exact bus sharing for blitter

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi

I just committed some new blitter code that will handle bus sharing between blitter and CPU as a real STE (or STF with a blitter) would do.

This cycle accurate blitter mode will be enabled when using the 68000 in CE mode (as for emulating an STE)

This allows for example to run part of a cpu instruction during a blitter transfer if this instruction doesn't need to access the bus

For example, see this thread with a test program by C. Konador :

http://www.atari-forum.com/viewtopic.php?p=96197#p96197

As can be seen, it's possible to run costly instruction like MUL or DIV during the blitter transfer, thus saving a lot of CPU cycles (but the code is of course more complicated)

This new blitter code will also accurately count 64 or 63 bus accesses for the blitter in non-HOG mode (which seems to be a bug in the real blitter).

This also required to be able to suspend/resume the blitter at any time, not just after writing the current word as it was the case before.

Despite the rather small changes in Hatari sources to achieve this CE mode, those changes took in fact a lot of time to complete, due to doing lots of tests in different situations to really understand the timing of the blitter and to ensure nothing gets broken.

The case where blitter sometimes runs for 63 accesses instead of 64 was quite an headache to solve :)


Nicolas



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