By the way, I'm interested on your high speed camera method. May I ask you which model are you using? Price?
The camera isn't any high-end video camera. I just happened to stumble upon an interesting option in my photo camera, a Nikon Coolpix S9100. It has some basic video recording capabilities, and I noticed that it has a 240fps mode. When trying to run the camera this fast, the resolution is very low and the picture quality is pretty poor, BUT the timing is actually 240fps and it's very steady and accurate.
You can confirm this by recording video of a CRT running at 60Hz. When you play the video back, advancing frame by frame, you can see that the CRT takes 4 frames of the camera's video to finish scanning a frame. This makes sense, as the camera should be running exactly four times as fast as the CRT, and the observable effect is steady and consistent.
Here's an example of a test I did using this, where I wanted to compare the lag of various video processing equipment that I was considering for my cabinet:
I recorded the TV with a camera in 240 fps. I got the TV screen and a closeup of an arcade stick in the same shot. I recorded pushing the light punch button in Third Strike, and counted the number of frames between the button being depressed and Ken beginning his punch animation. That number of frames in the video, divided by four, equals the number of frames taken in the game (240 / 4 = 60). I can confirm that the camera is running at 240 fps and the game is running at 60 fps because I can see the TV's vertical scanning in the video, and I can see it completes a frame every four frames, if you know what I mean. The results were consistent with repeated trials.
PS3 (480i) -> TC1600 -> TV = 3 frames until punch animation starts, defined here as 0 frames of lag
PS3 (480p) -> Super Emotia -> TC1600 -> TV = 3 frames to punch, 0 frames lag
PS3 (480p) -> RGB 202xi w/ADSP -> Super Emotia -> TC1600 -> TV = 4 frames to punch, 1 frame lag
PS3 (480i) -> Andora -> Super Emotia -> TC1600 -> TV = 4 frames to punch, 1 frame lag
PS3 (480i) -> Andora -> RGB 202xi w/ADSP -> TC1600 -> TV = 5 frames to punch, 2 frames lag
As you can see, it seems that the Super Emotia does not add any lag, but the Andora 202 actually add a frame of lag each. I'm guessing the 202 needs to use some video memory to do that position shifting, I'm not entirely sure why the Andora would add lag if the Super Emotia doesn't.
The conclusion of the Super Emotia adding no lag technically depends on the assumption that the PS3 itself doesn't add any lag when interlacing. I can check this by adding some NAND gates to my LM1881 circuit, which will allow me to get H and V sync from the LM1881's C and V sync. This will allow me to connect the PS3 directly to a CRT computer monitor in 480p for comparison.
The results of the 202 and Andora wouldn't be affected by this.
A TC1600 is an RGB to component transcoder that I use (a transcoder converts colorspace only, no scaling). That and the CRT TV are theoretically considered to be lagless, so the benchmark of 3 frames lag is considered to be the minimum time taken between the controller and the system and the way the game is programmed.
An Extron Super Emotia is a scan converter that I use to force 480p to 240p. An Extron RGB 202 is an interface mainly used here for picture shift. An Extron Andora is a rudimentary line doubler than can be used to convert 240p/480i to 480p. Sorry if anyone already knows all this, just want to clarify for context.
The end results of the test were that I will use the Super Emotia to force 240p in certain modern console games (like Third Strike Online or Mega Man 9, the latter scales cleanly only on the Wii), but I don't think I'll be using the RGB 202 or Andora anywhere in the cab.
You can test lag from just about anything with this method, provided that you can provide a reasonable benchmark to compare it to.
I tested an LCD TV I have against the CRT TV with this same setup, and found the TV lagging by about 2 frames. However, the TV is supposed to be a 1 frame TV. The discrepancy could be due to the fact that I had to run a PS3 in 480i to measure the CRT, whereas it was running in 1080p to measure the LCD. This certainly could introduce at least a frame of difference within the PS3, and this difference among resolutions could even vary among games (was using MVC2 online for that one). So, providing a universal benchmark is important, and it isn't always simple.
If I continue testing things this way, I plan to wire an LED to the button being pressed, which would give a better indication of the start of a button press, instead of visually judging at which frame the button has been depressed.