Lag tester core - diagnosing variable lag?
Posted: Fri Dec 31, 2021 9:05 am
I've been trying to use the lag tester core from https://github.com/misteraddons/inputlatency and I'm getting some unexpected results.
At first I thought I'd try testing a DaemonBite Arcade Encoder (lite? clone?) built as per https://github.com/MickGyver/DaemonBite-Arcade-Encoder as a baseline before trying anything interesting. But instead of the expected 0-2ms of lag, I'm measuring a variable 0-18ms of lag. Which still isn't terrible I guess, but it's high enough that I assume I'm doing something wrong...?
It keeps looping around like that, with slight variations, I've seen 0.36 and 17.20 with 1ms USB polling.
Have tried to follow the instructions at https://docs.google.com/spreadsheets/d/ ... =369482991 but found that if I just close the OSD I don't get any results. I have to load a NES ROM, and then it will work. Do the instructions assume a boot1.rom? Are there any particular ROMs that should be used?
One odd part of my setup is I don't have an IO board, so for the step connecting the lag tester Arduino pin 2 to MiSTer User IO TX line, I've used a breadboard mimicking parts of the IO board. Most notably the breadboard has a 100 ohm resistor between what would be P7 pin 2 and the User IO TX line, and also a 10k pull-up. (With a few level converters this setup works well enough for NES SNAC but I don't know if it's good enough for lag testing.)
So far, I've tried various combinations of
Using
At first I thought I'd try testing a DaemonBite Arcade Encoder (lite? clone?) built as per https://github.com/MickGyver/DaemonBite-Arcade-Encoder as a baseline before trying anything interesting. But instead of the expected 0-2ms of lag, I'm measuring a variable 0-18ms of lag. Which still isn't terrible I guess, but it's high enough that I assume I'm doing something wrong...?
Code: Select all
read, delay
1, 13.70
2, 14.45
3, 15.24
4, 15.28
5, 16.47
6, 1.91
7, 2.82
8, 3.37
9, 4.25
10, 4.57
11, 4.86
12, 5.16
13, 5.86
14, 6.73
15, 7.37
16, 7.76
17, 8.34
18, 9.01
19, 10.16
20, 10.51
21, 11.08
22, 12.03
23, 12.55
24, 13.46
25, 14.54
26, 15.08
27, 15.52
28, 16.86
29, 0.76
Have tried to follow the instructions at https://docs.google.com/spreadsheets/d/ ... =369482991 but found that if I just close the OSD I don't get any results. I have to load a NES ROM, and then it will work. Do the instructions assume a boot1.rom? Are there any particular ROMs that should be used?
One odd part of my setup is I don't have an IO board, so for the step connecting the lag tester Arduino pin 2 to MiSTer User IO TX line, I've used a breadboard mimicking parts of the IO board. Most notably the breadboard has a 100 ohm resistor between what would be P7 pin 2 and the User IO TX line, and also a 10k pull-up. (With a few level converters this setup works well enough for NES SNAC but I don't know if it's good enough for lag testing.)
So far, I've tried various combinations of
- u-boot.txt containing "v=loglevel=4 usbhid.jspoll=1 xpad.cpoll=1" for 1ms polling
- u-boot.txt containing "v=loglevel=4 usbhid.jspoll=0 xpad.cpoll=0" to try turning off 1ms polling
- u-boot.txt containing "v=loglevel=4 usbhid.jspoll=8 xpad.cpoll=8" to try 8ms polling (this changed the variable lag to 0-24ms, still looping around)
- unmapping mouse emu/sniper as per viewtopic.php?t=3775
- renaming the config directory (where all the mappings are stored) to be absolutely sure the mouse emu/sniper buttons are not mapped
- renaming my MiSTer.ini in case there's something in there that's causing trouble (like vsync_adjust?)
- DaemonBite debouncing enabled
- DaemonBite debouncing disabled
Using
- Main MiSTer_20211214,
- Linux/zimage/uboot from SD-Installer release_20211112,
- lag tester core + arduino code 2a7df6cbd6b9ab80d5c0358d0168edeb3b8e794e,
- DaemonBite cec29cdf09a91f889f50e65c15c69d66fb2edc06.