Le 05/02/2017 à 11:48, Christian Zietz a écrit :
Laurent Sallafranque schrieb:
The problem is in the 5 last lines : the code test for a min and max
value for register DO.
if D0 is not between $4100 and $4200, the code goes to $4eb1c and this
quit the demo immediatly.
To me this simply looks like a CPU speed test, counting the number of
loop iterations between two VBLs. I'd assume that the demo requires a
certain CPU speed to run correctly and so it wants to quit on (for
example) over-clocked CPUs.
I think the 68030 cycle accuracy of Hatari is not good enough here for
this test to pass.
You're right, this compute cpu speed.
At the moment with my dev version I get D0=$3e65, which is ~5% too 
slow compared to real HW $4100-$4200 for this code loop :
$0001cd1e : 4a78 0468                          tst.w     $0468.w
$0001cd22 : 6600 0006                          bne       $1cd2a
$0001cd26 : 5240                               addq.w    #1,d0
$0001cd28 : 60f4                               bra.s     $1cd1e
Unfortunately, 100 % accuracy will not be reached immediately in 
Hatari, some complex parts of the 68020/68030 pipeline and bus 
sequencer are not known yet to ensure exact similar behaviour 
regarding how the cpu order the memory accesses to be optimum.
Nicolas