|Re: [hatari-devel] New cycle exact bus sharing for blitter|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
On 08/11/2017 05:23 PM, Nicolas Pomarède wrote:
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 :
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
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 :)
I checked few blitter demos.
E.g. Agression's RGBeast worked fine, but startup overscan plasma
screen looks still partly broken in ICE's Jam-Cols: