Because the rest of your message was already dealt with before. Don't get that much time to look-up references back in the same thread given size of thread. You may be confusing games polling analog joysticks during only VBIs or such but joystick ports are read any time without requiring any interrupts or VBIs. There are many programs on 8-bit (on Atari) that just have a main loop that reads the joystick and sets appropriate graphical elements or flags. From the BASIC source codes I have on Amiga, they also don't use any VBIs to read joystick ports.
I did not say they used a VBI interrupt to read the joystick port. I said they polled it once per main loop. And I also stated that this main loop will run once per frame.
Anyway, C64 games do it exactly as I describe and no one ever commented about C64 games being less accurate to control than Atari 8 bit ones. Ever. On top of that I seriously doubt that 8 bit Atari games have a main loop that runs faster than once a frame.
Furthermore.... Amiga basic programs!?
Sigh. Amiga basic is dead slow. You are not seriously telling me you think these games update their main loop more than once per frame?
>For a joystick port, the only 'problem' facing programmer is to read out the joystick fast enough a human can't notice you did so. The old 8 bit computers where slow, but the programmers of the time managed to fix this 'problem' by reading the state of the joystick at between 20-60Hz. This was more than plenty for people, it looked as if the ship/ninja-dude/thing-on-a-spring/whatever reacted directly instead of with a delay (exceptions here being due to slow animations, not slow joystick reading).
The argument given before was that you can sample audio at lower rate like 11Khz and it may appear the same as 22Khz but there is a difference of accuracy of some frequency components. And the other example given before was that of MP3 audio which distorts certain samples to get higher lossy compression ratios but sounds basically same as linear audio. You can't prove just by looks-- you have to take into account whether reading at those higher rates ACTUALLY improves accuracy of input.
This is not relevant, because the games don't actually do it. And no one seems to notice.
>This means that polling a joystick at a rate of 20ms or faster is quite ok. You don't actually need it to be any faster and I'm 100% certain that programmers (being I know how they think as I a) am one and b) observed the works of the 8-bit crowds) only do what is needed and no more: they poll the joystick state once every frame. Not two times, not ten times. And definitely not at 1 KHz, which would be an utter waste of resources.
The question is not what you can get away with but what is more accurate. It's not a waste if you have that time available; if processor is idle-- mine as well let the main loop run as fast as possible.
8 Bit CPU's did not have the time available. They ran their game loops once a frame.
Humans cannot react much faster than 200 or so ms. This means any input polling above twice that rate (100 ms) is not needed because this will
perfectly reproduce the original input (per
http://en.wikipedia.org/wiki/Sampling_theorem). Polling at 50Hz is polling at 20ms, which is
ten times the desired frequency, meaning you beat the Nyquist–Shannon sampling theorem by a factor of
five allready.
So, 50Hz polling will get you a
perfect reproduction of what a human can input*. Which means sampling joystick input at 1Khz is an utter waste of resources.
*) Note that this is only true for digital joysticks. Analog input devices are another matter.
>Now, had you written this about mice you actually may have had a point. But then, we do have PC mice that track at 1KHz. Notice that these mice are USB based and no one seems to have lag issues with them.
If you examine technical description of 8-bit machines, you will find that even C64/Ataris had a FAST polling mode for their potentiometer readings-- fast pot scan which scanned in the potentiometers within 2 TV scanlines which translates to 15.75Khz/2 polling capability. So whatever the purpose, it was there in the hardware.
And how many 8 bit machines had enough CPU power and memory to both read at that rate and actually do something with the results?
What really happened is that they read the results at a set frequency and interpolate the result based on the prior reading. Now, I did not do much with paddles and the like, but I'm willing to bet I already know at what frequency games such as breakout/arkanoid are sampling the analog input.