Thesis: unnecessary latency takes fun out of gaming.
I've spent hundreds of hours measuring and documenting the latency of controllers, joysticks, and adapters, searching for the lowest latency controllers for the gaming community. From popular, modern, OEM controllers to the more obscure and old products from the early days of USB, I've measured more than 200 discrete devices/modes. If you've seen these results there's a very good chance that it was me that tested it.
I care deeply about latency's impact on the "fun-ness" of games and believe there should be hardware worthy of the incredible games we enjoy. To be clear, it's not like you can't have fun when playing games with latency, but, you've probably experienced the excitement of replaying your favorite childhood games with a less-than ideal setup.
You may have been left wondering why the gameplay didn't feel as engaging, you weren't able to execute the same moves, or maybe you simply died more often and blamed it on aging motor skills. While aging does take its toll on reaction time, it's often the case that there's unnecessary latency somewhere in your setup.
It could be on the input/controller side, on the output/video side, or both. CRTs were designed to draw the video signal in real time. Modern displays use frame buffers to upscale lower resolution signals. We're fortunate to have very good low latency upscaling, such as MiSTer (<1ms), OSSC, and RetroTink which focus on low-latency upscaling, but I haven't found a controller manufacturer that consistently designs low-latency products. Some controllers have excellent latency only for the next product from the same manufacturer to have "mid" latency. I don't understand why the low-latency controller firmware isn't re-used between products but it seems to be the case.
In that spirit, I'm launching a new line of "PORKCHOP APPROVED LATENCY (TM)" gaming accessories, called "REFLEX".
The product line will focus on both modern and retro entries. Modern devices will work with PCs and MiSTer (along with a few modern-ish consoles). Retro accessories will include things like console controller adapters, A/V solutions, and power accessories. Power accessories and latency don't really have anything to do with each other but just humor me.
Control:
-
Reflex Encode Fighting board is already available, powered by GP2040-CE firmware and is fully open source. It has been a huge success. In fact, KidPanda (expert shooter player) replaced another joystick encoder device with the Reflex and instantly managed to get to level 2-5 on the Sharp X68000 classic: "Cho Ren Sha 68k" using the Reflex on the MiSTer core. According to him, Reflex Encode is "stunning" and "the best input board he's used." That's thanks to the 0.83ms average latency that the GP2040-CE developers have managed. The Encode Fighting Board is compatible with Direct Input, Xinput, Switch, and PS4 (with manually provided keys).
-
Reflex Adapt is a multi-console controller adapter. The firmware was created by Sonik-br. It supports many classic controllers, multi-tap, etc. It's due any week now, and has extremely low latency (0.8-3ms depending on number of players and modes). In addition to the popular controller support (NES, SNES, Genesis, Saturn, N64, Gamecube, Wii, etc.) it features special modes for PSX JogCon (Spinner, fake spinner, wheel, and paddle), PSX GunCon (lowest latency USB light gun solution for 240p/480i), NeGcon, and more obscure consoles like Jaguar and Virtual Boy (pending adapters). The OLED screen shows real time button inputs so the device can be used to test controllers as well. Best of all, the same adapters used for MiSTer SNAC/SNAX are used with the Adapt.
-
Stick 'n Spin is my vision of a modern stick combined with an arcade style spinner. Sonik-br is also the firmware developer here. Inspired by the classic 80's toy "Sit 'n Spin," this device helps unlock the fun of arcade spinner games. Special firmware and an OLED help the user set autofire rate, enable autofire per button, and more. The spinner can be used as a spinner or a mouse, and can emulate the x-axis or y-axis. The sensitivity of the spinner can also be adjusted with some limitations. I'm on the third prototype of this board but no case to show off yet. Output mode is currently direct input but other modes might be possible in the future. Once the PCB and firmware are done, a proper case will be needed. Action buttons will be either Cherry MX style keyboard switches or 30mm arcade snap-in buttons.
-
"CTRL" is the name of a series of drop-in PCB replacements for original console controllers. It is also powered by GP2040-CE and will be fully open source hardware. A short USB-C female cable will stick out of the controller shell allowing users to provide their favorite USB-C to USB-A cable. The SNES model is done and in production, and other consoles will follow. If there's enough interest I may transform this into a proper series of dedicated controllers.
Audio + Video:
But I'm not stopping with controllers and fightsticks - the next frontier is video cables, encoders and switchers.
-
"Vision" Video Switcher: I've owned most of the video switchers out there, from Extron to community driven solutions. While they do the job as advertised, I feel there's room for improvement and ways to minimize clutter. (I too have been guilty of velcro ties and cable bundles behind entertainment centers but I draw the line at installing a pegboard.) My automatic video switch uses mini din 10 (Saturn AV port) for inputs and outputs which results in a very tiny footprint without any compromises. Supported resolution is limited to 240p/480i only and has been tested with NES, NES, N64, Genesis, Saturn, and more. It generates YPbPr and S-Video from RGB, while passing composite video to the output. The inputs auto switch using 5V at the moment but possibly will switch to a more intelligent method in the future, allowing for consoles without 5V to be used in more than 1 port. The price will be much less than popular SCART auto switchers. There are 3 output ports which allow for combinations of:
-
1/2/3 x RGBs
-
1 x YPbPr
-
1 x S-Video
-
1 x Composite video.
- "Prism" Direct Video to Analog audio and video converter. Connect a CRT to modern devices - no upscaling, downscaling or anything, just converts native digital resolution to the same analog resolution :)
-
Audio + Video Cables: In order for the video switcher to work, I'm making custom video cables for multiple consoles. The cables feature double shielding on all audio and video conductors (red, green, blue, sync, luma, chroma, composite video, right audio, and left audio) while boasting minimal cable diameter. The mini din 10 end has a custom molded flat spot on top to help easily locate the cables in the connectors. The most common complaint I've heard about mini din is the difficulty in lining up the ports and the flat spot should make it a breeze.
Power:
Along the lines of minimizing cable bulk, I'm all but finished testing my USB-PD cables for original consoles. These will also carry the REFLEX branding, for that sweet "zero latency" power, haha. USB PD supports 5V, 9V, 12V, 15V, and 20V, which is useful for powering most classic consoles (most use 9V, or 12V, except for Wii U which uses 15V) without relying on bulky power supplies. The cables will have color coded labels and stickers to help match cables with consoles.
-
Red: Jaguar + CD, NEC (TurboGrafx-16, CD, PC Engine, CoreGrafx, Shuttle, and IFU), NES (Frontloader/Toploader), Famicom (Famicom, AV Famicom, FDS), Super Famicom + Jr (Japan), SMS, Genesis (Model 1), Game Gear (PAL + Japan), and Sega CD Models 1 and 2
-
Purple: SNES (USA), SNES Jr. (USA), Virtual Boy
-
Orange: Genesis (Models 2 + 3), Mega Drive Model 2, 32X, Game Gear (USA), Nomad, X'eye, PC Engine Duo-R/RX
-
Green: NES (PAL), Sharp Twin Famicom, SNES (PAL)
-
Blue: NEC TurboDuo, NEC PC Engine Duo, NEC Super CD-ROM 2
-
Wii
-
Wii U
-
GameCube
Bottom line, if you see the Reflex logo on a product you can rest assured it's designed for high quality and minimal latency. I've come a long way from hand soldering console mods, to hand soldering MiSTer boards, to full factory production, and I hope that I've earned your trust in the process :)
If you'd like to discuss these projects, I'm often lurking on Discord. Each project has its own channel.
http://discord.gg/3a5HqZF3bR