Retro handhelds are all the rage these days with impressive portable consoles like the Retroid Pocket and Anbernic RG35XX lineups selling extremely well. The main draw for many buyers is that these devices can emulate a wide variety of their favorite retro (and in some cases not so retro) consoles and games in a handheld form factor. Not only that, but many come with sleek or nostalgic designs and for the most part don’t break the bank when compared to more mainstream handhelds like the Nintendo Switch or Valve Steamdeck.
But besides emulation, a somewhat lesser discussed feature is their ability to play direct ports of computer games like Quake and Half-Life. After all, many of these devices are running a version of Linux under the hood, and this makes it possible to run a Linux version of these games natively without running the game through an emulation layer. This comes with a number of advantages in terms of performance. These games can often run at a high frame rate with virtually no stuttering. They typically have no graphical artifacts and look and feel very smooth. It's also a ton of fun to play them on a handheld.
In this tutorial we’ll be installing Quake on one of my favorite Linux-based retro handhelds, the Anbernic RG353PS, and demonstrating that you can engage in crossplay where one player is playing Quake on the RG353PS while the other plays on a conventional PC/computer.
Playing Quake on PC against Quake running on a handheld is nothing new. Years ago I used to do this with a homebrew port of Quake running on the Nintendo DS (QuakeDS) against a PC running Windows XP (Video: Quake Nintendo DS vs PC Crossplay). We'll create a similar setup between the Anbernic RG353PS and a Macbook Air running vkQuake. Note that this will likely also work for other Linux-based retro handhelds and on computers running Windows or Linux rather than MacOS. You can install vkQuake from source as I've done using the instructions from the vkQuake GitHub repo. Other versions of Quake like WinQuake, GLQuake or Quakespasm should also work but I haven't verified this. If you don't already have the game data for Quake, you can grab the shareware version here:
I’ve found that the most well rounded OS for running a mix of both ports and emulators on the RG353PS is UnofficialOS, which is what we’ll be using for this tutorial. To install it see their instructions on the GitHub releases page.
Caution: If you are currently using stock firmware, I highly recommend you back up your stock firmware before overwriting the SD card with UnofficialOS. Alternatively you could use a seperate SD card for UnofficialOS. The stock firmware is well optimized for emulation even though overall I personally prefer UnofficialOS because of it's flexibility.
I'm using the RG353P image which will work for the RG353PS. The RG353P and images for other retro handhelds are available on the UnofficialOS releases page under 'Assets'. For the RG353PS, UnofficialOS should be installed to the Micro SD from slot TF1 on the device. TF2 is used for ROMs.
UnofficialOS comes with a preinstalled Quake section in Emulation Station which is what we'll be using. Once you have UnofficialOS on your RG353PS working and booting up correctly, installing Quake on your RG353PS is very straightforward:
Once you have Quake running on both your PC and RG353PS you can follow these steps to play a multiplayer game between them: