| 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