News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_eto

Display lag of LCDs and scaler/converters - easily tested

Started by eto, 21:44, 15 August 22

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

eto

If you get the impression that in some games, you just won't be as quick as you have been in the 80s, it's not necessarily a result of you getting old. It might also be, that your fancy LCD display just has a too big lag and your reactions are inaccurate, as you are watching a slightly time-delayed version of your own game.

CRTs by design have no lag. Whatever happens at the monitor port of your CPC will instantly have an effect on your monitor. Not so for modern LCDs. There are chips inside the displays which work on the data they are receiving and by this add a bit (or a bit too much) lag to the output of your CPC. This lag can be so low, that you will hardly notice. But it can easily be as high as 5 frames. Imagine that, you are looking at a bullet on your screen that's still far away, but for  your CPC you have already been hit and are dead already. You might make the game responsible for being too inaccurate - or think you are getting old - but in reality, it's just a crappy display lag.

There are options to test input lag, but I wanted to have something, that works on the CPC and is so easy, that it can be replicated with minimum effort.

The only hardware required to test your display is a LED, a resistor, a printer port connector, a short piece of ribbon cable and a phone that can make movies at 120 or 240fps.

To get a baseline of what you can expect, I have tested these displays and screen convertes, which I had access to:

  • LCD TV 15", Scart Input
  • LCD TV 15", Scart and VGA Input (15kHz compatible)
  • LCD TV 19", Scart
  • Benq 17" LCD (15kHz compatible)
  • Scart2HDMI converter (RGB compatible) (with 2 different TVs of the above)
  • GBS8200 Upscaler (with GBS Control mod installed)

What I would have loved to test, but couldn't, due to lack of hardware:

- Modern TV sets (my LCDs are at least 10 years old)
- RGB2HDMI

The tests were performed with the above mentioned, very simple set-up. The LED is connected to the printer port. The LED is switched on, then the screen is turned into bright yellow (ink switch) and after a few seconds back to dark blue. This gets repeated 5 times. The activity is filmed with an Iphone at 240fps and the videos then are analysed on a PC to identify the lag between the LED turning on and the change on screen being visible.

To "calibrate" the test and get an idea of the impact of the set-up and test program (BASIC) the first test was done using a CRT (CTM 644) which, by design, should not have any input lag.

I am aware this is not a perfect set-up and will most likely have a variation, but it's extremely simple to build and repeat, so anyone who is interested can easily repeat the test with his own equipment.

Results:

The CRT test revealed, that the set-up chosen has a quite constant baseline of 8ms between the LED turning on and the result being visible on the CRT.

Screens with direct input:

1) The Benq was closest to the CRT with 8-15ms of lag and an average of 12ms.
2) Both 15" LCD TVs followed closely with 13ms each (on SCART input)
3) The 15" LCD TV reached 15ms on its VGA input
4) The 19" LCD TV was last with over 100ms of lag

Converters:

1) GBS 8200 plus GBS Control had a lag between 25 and 50ms, depending on the screen (Benq 17": 25ms, Dell 20": 33ms, 19" LCD TV: 50ms)
2) Scart2HDMI is at least 90ms and up to 130ms, depending on the scaling resolution and the display (with the 19" LCD TV again being slowest)

I also tested the GBS on a Laptop screen, which had a 60ms lag for dark->bright switches and 25ms for bright->dark switches.

First Conclusions:

  • If you want to be sure your display set-up performs well, you should test it.
  • Avoid Scart2HDMI solutions. Yes, they are easy to get, cheap and simple, but they will crush your gameplay. A 100ms lag is equivalent to a 5 frames delay.
  • GBS8200 with GBSControl mod was pretty good for a cheap sub 50€ solution and was adding less than a frame of lag. It requires some work though as you need to solder the GBS Control mod to it and need to put it inot a case.



WacKEDmaN

nice work eto! im going to have to try to measure mine...

..i wonder if it would be possible to use the lightpen pin on the expansion connector with a photodiode to have the cpc itself measure it, like count how many ticks between the photodiode triggering the pin...

XeNoMoRPH

your amstrad news source in spanish language : https://auamstrad.es

eto

Quote from: WacKEDmaN on 04:39, 19 August 22nice work eto! im going to have to try to measure mine...

..i wonder if it would be possible to use the lightpen pin on the expansion connector with a photodiode to have the cpc itself measure it, like count how many ticks between the photodiode triggering the pin...
That's a really interesting idea to make it almost perfectly accurate. I will look into that. 

Equally interesting is the drive LED idea, as it would give anyone, even without any soldering skills, a way to measure the set-up. If it is fast enough, all you need would be a mobile phone and a way to watch the movie frame by frame. 

However I won't be able to dive into that over the next one or two weeks. 

eto



Awesome! This is really fantastic to watch. 

The thing is: I hoped I can come up with an idea, that allows to easily test the lag of a screen at home, so people don't have to rely on others, they just can test it themselves. 

Fantastic proof that the simple set-up can help to measure if your own set-up is good or not good.

eto

Quote from: WacKEDmaN on 04:39, 19 August 22i wonder if it would be possible to use the lightpen pin on the expansion connector with a photodiode to have the cpc itself measure it, like count how many ticks between the photodiode triggering the pin...
So I thought about it, and I would like to give it a try:. When the pin is triggered, some CRTC registers will be updated. Of course the values won't make much sense on an LCD but we can basically do a loop in assembler and wait until the register values change. Then calculate based on the number of iterations, how much time has passed. 

However, I am struggling with the electronics as I don't really understand how photodiodes work or how to create a circuit that triggers the LPEN when the photodiodes sees some light. If someone could help here, that would be great. 

WacKEDmaN

yup i looked into how the LPEN worked.. should be easy to watch the registers for changes..

photodiode works opposide to a LED... instead of puting power in and getting light out, the photodiode takes light and creates a voltage..sort of like a tiny solar cell in a LED package..  (you can actually use a led as a photodiode to some extent!..the voltage out isnt as high)

you might be able to use it directly to change the register.. or use it to drive a transistor that can trigger the pin between high and low states..

heres it done with a pi and photodiode... we just need the cpc to replace the pi..
https://alantechreview.blogspot.com/2020/08/pilagtester-pro-order-page.html

heres how to use one with a tranny...

Powered by SMFPacks Menu Editor Mod