Re: [hatari-devel] Blitter emulation corner case

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


Le 17/05/2017 à 00:00, Roger Burrows a écrit :
On 16 May 2017 at 21:14, Christian Zietz wrote:

Did you see that I posted the 68030-enabled version of BLITEMU yesterday?

Yeah, didn't get around to running it until you reminded me.  Attached are the
results (I ran it twice, the same results each time :-)).

Roger


thanks for you results ; merging this, we see there're a lot of differences for xcount=1 between falcon and ste.

When Inc is > 0, 2 out of 4 are different and when inc is < 0, this is even more, 3 out of 4 are different :

op=1

SRC_INC = DST_INC = +2, FXSR = 1, NFSR = 0
ste     1 3 5 7 9 11 13 15 17 19 -1 -1 -1 -1 -1 -1
falcon  0 1 2 3 4 5 6 7 8 9 -1 -1 -1 -1 -1 -1

SRC_INC = DST_INC = -2, FXSR = 0, NFSR = 0
ste     -1 -1 -1 -1 -1 -1 55 56 57 58 59 60 61 62 63 -1
falcon  -1 -1 -1 -1 -1 -1 54 55 56 57 58 59 60 61 62 63

SRC_INC = DST_INC = -2, FXSR = 1, NFSR = 0
ste     -1 -1 -1 -1 -1 -1 45 47 49 51 53 55 57 59 61 63
falcon  -1 -1 -1 -1 -1 -1 54 55 56 57 58 59 60 61 62 63

SRC_INC = DST_INC = -2, FXSR = 1, NFSR = 1
ste     -1 -1 -1 -1 -1 -1 44 46 48 50 52 54 56 58 60 62
falcon  -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1


op=3

SRC_INC = DST_INC = +2, FXSR = 1, NFSR = 0
ste     1 3 5 7 9 11 13 15 17 19 -1 -1 -1 -1 -1 -1
falcon  0 1 2 3 4 5 6 7 8 9 -1 -1 -1 -1 -1 -1

SRC_INC = DST_INC = +2, FXSR = 1, NFSR = 1
ste     1 3 5 7 9 11 13 15 17 19 -1 -1 -1 -1 -1 -1
falcon  0 1 2 3 4 5 6 7 8 9 -1 -1 -1 -1 -1 -1

SRC_INC = DST_INC = -2, FXSR = 0, NFSR = 0
ste     -1 -1 -1 -1 -1 -1 55 56 57 58 59 60 61 62 63 19
falcon  -1 -1 -1 -1 -1 -1 54 55 56 57 58 59 60 61 62 63

SRC_INC = DST_INC = -2, FXSR = 1, NFSR = 0
ste     -1 -1 -1 -1 -1 -1 45 47 49 51 53 55 57 59 61 63
falcon  -1 -1 -1 -1 -1 -1 54 55 56 57 58 59 60 61 62 63

SRC_INC = DST_INC = -2, FXSR = 1, NFSR = 1
ste     -1 -1 -1 -1 -1 -1 44 46 48 50 52 54 56 58 60 62
falcon  -1 -1 -1 -1 -1 -1 54 55 56 57 58 59 60 61 62 63


Although not 'random', it seems the xcount=1 case had no 'official' defined behaviour, which makes it quite dangerous to use, especially when using same code for STE and Falcon.

I wonder if TOS tries not to use xcount=1 when using OS functions ?

I don't know if a logic pattern can be seen from the STE blitter schematics, but if not it could be handled with a hardcoded table combining those 8 possible cases (and a 2nd table for falcon)



Nicolas





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