When we load any game on ZX Spectrum from cassette player...
Should red stripes move smoothly for better result or they should be static for perfect result?
What is the theory?
Retrocomputing Stack Exchange is a question and answer site for vintage-computer hobbyists interested in restoring, preserving, and using the classic computer and gaming systems of yesteryear. It only takes a minute to sign up.Sign up to join this community
It doesn't make any difference. The border colour changes between red and cyan whenever the tape loading routine detects a change in level between low and high, and this happens many times over the period that a video frame is being sent to the display (from top to bottom), producing the stripes.
Static stripes would just mean that the level changes are happening at a frequency that's an exact multiple of the 50Hz screen refresh rate. As far as the tape loading routine is concerned, there's nothing significant about 50Hz, and there's enough tolerance built in to the timings that it doesn't matter whether the actual frequency is (say) 1500Hz, or 1499 or 1501.
A "perfect" result would be obtained if the stripes move at the same pace you can observe when SAVEing a program, that is, a signal with a period of exactly 2168*2 T-states, which means 807.2 Hz. (T-state information taken from https://faqwiki.zxnet.co.uk/wiki/Spectrum_tape_interface )
As the screen you see is the sampled version of what the TV is interpreting after the actual TV signal is received, your perception of how fast the stripes move may vary, using a CRT monitor, without little or no postprocessing, or a smartTV with a composite to HDMI adapter. FYR, the SAVE routine produces red/cyan stripes moving upwards at a rate of, aproximately, 6.5 stripes per second when viewed in a CRT screen (also tried in Spectaculator, and in a ZX-UNO using 48K ULA timings, with the same results). You can use this result to fine tune your tape playing speed if you see that the stripes move too much quickly in one direction or the other.
Nevertheless, the cassette loading routines have a great tolerance, and will allow variations in the speed of up to +/-15% . I've used that tolerance to push the loading routine to its limits by playing a TAP file with slighly higher frequencies for all their parameters (leader tone, sync pulse, 0 and 1 bit) so it loads a bit faster than usual.