|Re: [hatari-devel] Bootup differences|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
Le 16/06/2013 22:46, Eero Tamminen a écrit :
So, you can consider that some components in a ST create some kind of
"fussyness", even if there's no real randomness in it.
Ok, so the starting state can be slightly "random" (unknown), but
anything happening after that is deterministic.
Yes, which is a good thing for digital components, else it would be much
harder to emulate :) (another famous case of this is the MMU/Shifter
wake up state that can affect overscan and other border removals technique)
What exactly Hatari does to emulate this "randomness"?
Depends on the case. For the IKBD, we don't really emulate the inner
work (because we don't emulate the hd6301). So there's a rand() call to
simulate the time it would take to execute the code in the hd6301
The goal is to add a small jitter that is also observed on real HW,
around 10 cycles usually.
And is there any way to disable this randomness if one wants 100% same
execution for successive boots?
No, that's not possible ; and some programs will even stop working
without it (see the V8 music demo, that can only start if the IKBD/ACIA
has the E clock jitter)
The MFP should also have a small randomness, but it's not implemented at
the moment ; without this "randomness" some programs will not correctly
self calibrate (game Lethal Xcess for example)
But in the end, there's very few randomness and on the average it should
compensate itself and should not change profiling in a significant way
(given the measurement time is long enough)