Although I’ve been emulating for many years, I started getting more serious in the beginning of last year. It started with me wanting to really get a handle on input lag, which is something that has bothered me over the years and still did on RetroPie which I was using at the time. Not only did RetroArch prove to have really good features to lower input lag, I was also able to make contributions to several of the cores (NES/SNES) that lowered the input lag further.
Once I had a handle on the input lag, I decided to drop RaspberryPi/RetroPie and go x86, mostly to get rid of the performance issues I had on the Pi when using input lag reducing options. The Pi simply wasn’t fast enough. I ended up building a custom mini-ITX system based on the Pentium J4205 low-power CPU. That CPU is passively cooled and approximately four times faster than the one in the Pi, along with having a faster integrated GPU as well. Here’s a photo of the system with the lid off:
Pretty basic looking, using an all metal industrial type case from Logic Supply. I prefer the utilitarian look to the plastic, gaudy stuff that’s otherwise so common these days. I also liked the fact that there’s only a power button and two USB ports in the front. Since the system is passively cooled and powered by an SSD, there are no moving parts.
Anyway, I set the system up using Ubuntu Server and RetroArch in DRM/KMS mode. I wrote some scripts to log me in automatically, set the CPU governor to “performance” and start RetroArch. I also wrote a script to limit RetroArch to 1920x1080 if the resolution of the connected screen is higher than 1080p, but otherwise use the native resolution. This was done for performance reasons if I attach a 4K screen, since running in 4K requires extra performance even just for handling the much larger rendered frame.
The system was setup and ready by November last year. However, I had two kids this summer and it got me thinking of how I could get them into some of my favorite retro games some day. I realized that my retrobox wouldn’t do, since all settings were exposed. It would probably take less than a day for a couple of young kids to corrupt the setup.
So, I decided to look into making RetroArch’s UI more configurable and to add a “kiosk mode” that would protect all settings. I started looking into this last month and recently (last week) completed the work and got it pulled into the project. Last night I updated my mini-ITX box with the new RetroArch version and configured it to have a super-clean UI experience that I would say resembles something you would actually buy as a product. From the main menu, you pretty much only have access to the playlists and an option to quit. From the Quick Menu, I’ve chosen to go with the bare minimum, which is to have access to save/load state. No distractions and no options to tweak, just games. I think it’s awesome! Here’s a couple of screens that show what it looks like (although I’m using a different color theme now):
With all this said, I just want to extend a BIG thank you to everyone involved in RetroArch/Lakka that has made something like this possible! I’ve had plans of creating a really slick “fixed”, console-like setup with a nice interface and low input lag for years and RetroArch has finally enabled that for me. In the process, I got to contribute which was fun and will hopefully be of benefit to others as well.
Looking forward to future developments!