Sorgelig wrote:I've played many games recently on PCE, Genesis, SNES with full blown so-called lag producing chain: USB wireless gamepad with HDMI output and triple buffer scaler. And i had no problems with reactions.
The lag as it stands is very good and the overwhelming majority of things are playable without issue. The MiSTer does an impressive job at creating compatibility for these systems with such a huge range of timings and resolutions. Although people rarely say it, I'm sure many appreciate this fact.
That said, the difference between 16.7ms of latency and 50ms of latency is not a lot, but it absolutely IS perceptible. Activities like wall jumping in Super Metroid or rotating pieces in Dr. Mario have timings that we're used to and are trained into us. I think there is a happy medium here where we can optionally enable single buffering or Grabulosaure's low latency mode, and perhaps optimize or thread the main loop to deliver lower latency input without having to sacrifice anything at all other than the time to implement. Lower is better if you don't have to give up anything for it, right?
On the other side of the aisle, there's also caring too much. The ~4ms of latency from USB polling is not going to be perceptible, and what you gain from this sacrifice is enormous. The ability to remap buttons, use any gamepad with any system, create virtual keys on the buttons, etc. Other FPGA systems only take one kind of controller input, typically input that is native to the single core the systems represents, so it's very easy for them to have no ADDED latency. It's important to remember that MiSTer has to be a LOT more adaptable than just about anything else in circulation, so constantly saying "xxx does it this way, can we do it that way?" is not really constructive, especially if you don't understand the technical details of how these things work. The people involved with working on the scaler and input are aware of what's out there and how it operates for the most part.
As a last note, there's no need to measure the video latency of the MiSTer. The code is open and you can look at what it does. It's going to be two frames in triple buffering mode, and this can be easily confirmed using two crt's, an hdmi to vga converter, and the 240p test suite's latency test (the one that shows the dots). Spoiler: Bob did this and found two frames. The ADDED input latency is usb_delay + main_loop_delay. The usb_delay, as far as I can tell, should be an average of around 4ms. The main loop delay is less clear to me, but it can't be more than 16.7ms as far as I can tell, and might be much less.