Let me explain more of what I’ve been up to.
The reason why I started looking into using the share button to take screenshots was to try to avoid a lot of the issues that come with capturing off a monitor with a separate camera equipment and button presses. If the time from pushing share is consistent, you should be able to get information without any external capture equipment. However, a programmable stick of equivalent would be required, as the way the PS4 captures is it will take a screenshot after release of the button, not on pressing it (possibly waiting to see if it is held or not).
So, doing a trial with BlazBlue (fastest responding game accross multiple different testing methodologies, I always find it disappointing that everyone is so ready to heap criticism on SFV but nobody praises BB).
Using a programmable stick, connected to a PS360+ (old version, upgraded firmware). I had an input of Share for 1 frame on what I call frame zero for reference. On frame 13 the square button is pressed for one frame. On frame 14 the triangle button is pressed for one frame. On frame 15 the circle button is pressed for one frame. The reason to do it this way is so that the screen shot should occur on frame showing the square and triangle buttons pressed, but not the circle button (trial runs to determine the timing of this were performed.)`
Total of 40 runs. 21 times a screenshot was not taken. 4 times there were typos in the input (2 of which were also not captured). 17 times the correct input was performed and a screenshot was taken.
To address the obvious initial concern - why were there only 19 screen shots in 40 trials? My suspicion is that the window for screenshots is every second frame. Reason being, across multiple trials and different devices, there always seems to be a ~50% failure rate for screenshots. I could hold the share button for two frames instead, but I’m fairly sure this would result in uncertainty as to which frame is actually captured, which I would prefer to avoid. So I have left it like this for now.
The results were, other than the typo each time the screenshot showed square,triangle. Never showed square,triangle,circle. This was what I was hoping for, and suggested that this would be a reasonable testing modality.
Unfortunately, extending the same trial to SFV did not result in similarly good results. The setup was similar except that on frame 0 share was pushed, on frame 10 square was pushed, on frame 11 triangle was pushed and on frame 12 circle was pushed.
Of 20 screenshots (with a further 19 failed screenshots) 12 times square triangle appeared on the screen, 4 times only a appeared on the screen, 2 times abc appeared on the screen and there were two typos (i.e. a fault with the programmable stick inputs).
This makes it less reliable in terms of doing a single test and getting an answer for input lag. With multiple tests, we could be fairly reassured that SFV is slower than BBCPE.
One thing that is worth mentioning, it seems that in BBCPE the command history always appears on the same frame as the animation starts, whereas I believe in SFV sometimes they are not on the same frame. For example, in SFV even though square triangle was displayed on the screen 12/20 of the times, the first frame of animation appeared only 6/20 times, with the neutral stance still present 12/20 times.
I should also mention that I tried a similar test on the UFB (even though lag of controllers should have no bearing on this test). Compared with the PS360+ (which had 2-4 typos in 40 runs) the UFB had almost as many typos as successful inputs. This is something I’ve noticed before in interfacing between the programmable setup and the UFB, but I haven’t wanted to make too much comment on it, as I don’t think my setup is exactly designed to test this.
Now, one of the main issues with this style of testing, assuming it worked well, was that it requires some way of timing the share button press (or probably the release really) to be an exact number of frame prior to the button press in order to provide meaningful information. This isn’t a scenario available to most people, so I looked to see if there was another way to apply it.
I had hoped that by holding the home or share button, and then tying that input to the input of another button, it would allow people to test for themselves. I tested both with El Gato HD 60 Pro and also with my Canon 700D (60fps 720p capture). As you have pointed out, syncing issues with using a camera are a problem, however given that the variance was up to 5 frames, I feel that the utility of this method is not really worthwhile at the moment anyway. As I said, I will check it again when firmware 4.00 comes out, as there has been some mention of revamping the home and share screens, which may improve this.
So far as my counting method goes, I count from frame 0 being when the button is depressed. The newer Hori button seem to have a lot less resistance than previous versions, so hopefully half depressed buttons are less of a problem. One of the main issues I believe is happening is that it seems that the PS4 camera captures from top to bottom each frame, if your finger speed (coming down to push the button) exceed the speed at which the camera is capturing, then you get a weird merging of two images. I’ve tended to do the counting off the El Gato captured image, in the hope of removing the issues with counting off the screen (if even the best screens are 9-10msec of lag, then there will be inconsistencies in terms of when the frame is captured).
There are several other avenues of testing that I’ve explored without much success, such as using sound as a trigger for capture and potentially a way to sync to the PS4. Using a camera remote control to take photos at set times. Programming an LCD attached to an arduino to give milisecond level timing displays. All of these have their own problems.
In terms of synchronising with the display or capture, what I’m really waiting for is for the Razer Stargazer to come out. My hope is that if we can have two different 60fps cameras on the same display, we can get a bit further in terms of working out whether the PS4 camera is in sync with the HDMI output or not. It was meant to come out in Q2, has been pushed into Q3 and with a month to go there is no new news.
Let me know if there’s anything else you want me to clarify.
I’ll do a bit of a write up on my new method (from the most recent posts) once I’ve had more time to play with it.)