From time to time, the question of emulation response comes up - usually more specifically as the analog (paddle) response time in Stella vs a real console. I thought I would try to come up with a way to measure this. Warning: this is a bit long - in case of TLDR, skip down to 6)
Here is the test rig I came up with -
http://home.comcast....se test rig.jpg
A photo-cell is placed up against the screen to detect the presence of the paddle/player. I have a 2600-daptor with a resistor wired in place of the paddle controller, and a switch is placed across this resistor. Opening/closing this switch simulates the paddle controller being instaneously moved between two different positions. An oscilloscope monitors the switch and the photo-cell, and can measure the time between switch open/close and photo-cell change.. Here is a sample of such a measurement (yellow is switch and purple photo-cell) -
I used two diffent systems during testing -
desktop = single P4 2.4GHz, 512MB, basic APG2 video card no G/L support
laptop = Core 2 Duo 2GHz, 1GB, Intel 965 Express video basic G/L
Same LCD monitor was used for all tests (except those that specify TV).
Tests follow (range of numbers is measured time in milliseconds for repeated trys) -
1) 40-60ms - Stella, Breakout, desktop
The 2600 runs at 60 frame a second, or 16.7ms per frame, so this is a delay of 2.4-3.6 frames. Note that my pressing of the button is not sycronized to Stella's frame generation, so a one frame variation is expected as I could have pressed anywhere between right at frame start to right at frame end. CPU usage ~20%.
2) 28-38ms - Stella set to 300 frames/second, rest same as 1)
Turning up the frame rate could give some indication of delay within the emualtion version outside (USB, O/S, video, ...). I would not expect outside delays to be affected by the increased frame rate. Note I said emulation vs emulator, as there could be delays within the game logic (more on this later).
3) tried laptop, no change over 1)
3a) enabled G/L, no change over 1)
Hardware speed does not seem to affect the delay.
4) 70-80ms - MESS, Breakout, desktop
Curious how a different emulator would compare. Note the difference could come from the use of different OS routines as well as the emulator code itself.
5) 35-60ms - Stella, KABOOM!, desktop
Thought I should try KABOOM!, as it's a more popular game and wanted to see how an Activision game would compare. Prehaps slighty more responsive, but could be just some measurement variation. More on KABOOM! in the last test.
6) Here is the test we are really interested in - real console vs emulation. Display is same LCD TV for both.
100-120ms - real 7800, SuperBreakout
75-100ms - Stella, SuperBreakout, laptop
So... emulation beats real, apparently. I say apparently, as it is hard to get a direct comparision. Even though I used the same TV for both, the laptop used the TV's VGA input and the real console the coax input - so they used different video signal processing within the TV. A side note: this TV is slow compared to the monitor.
6a) again with a different game
120-170ms - real 7800, Warlords
100-150ms - Stella, Warlords, laptop
Warlords is slower that SuperBreakout. Not a suprise to me, as Warlords as a definite preceivable delay. My surprise was this was not higer, but more to follow. Would liked to have ran a real test with KABOOM!, but don't have the cart.
7) This is a measurement of "return" time. All prior measurements started with paddle/player under the photo-cell, and timed how long until it disappered. This starts with the paddle/player at the other side of the screen, and times how long until it reappears under the photo-cell.
150-200ms - Stella, Warlords, laptop - TV
Compare to 6a, its about 50ms longer.
7a) More average "return" times, 2nd number is difference compared to prior tests (note back to deskop and monitor)
60ms +10ms Stella, SuperBreakout, desktop
90ms +40ms Stella, Breakout, desktop
150ms +100ms! Stella, KABOOM!, desktop
SuperBreakout is only about 10ms slower on the return (1 frame). I have always found it be a bit jittery compared to other games, and this seems to comfirm that. I interperate slower return times to mean the game logic is preforming smoothing on the paddle input and damping the responsiveness. It has been confirmed that this exists in the Warloads game logic. Looks like KABOOM! has an even comparatively larger amout of this too - on the order of 6 frames.