
Gaming routers are often purchased to ensure the most stable, low-ping internet so you can run online multiplayer games without any lag. The router isn’t designed for gaming, but that doesn’t stop us. Hardware modder Manawyrm from kittenlabs.de showed off a recent project that involved using an eGPU to play games on his TP-Link router.
Play GTA Vice City on TP-Link Router
This hardware tinkering feat utilizes a TP-Link TL-WDR4900 V1 with a Linux build and an externally connected Radeon HD 7470 GPU. This router was chosen because it uses NXP’s PowerPC-based CPU instead of the more common MIP or ARM CPUs that most routers use, which provides a surprising amount of performance for a 2013 router. On top of that, the modder claims it has a better PCIe controller. . Nevertheless, the router didn’t come with an external PCIe connection, so I had to connect it using a custom mini-PCIe breakout PCB and enamelled copper wire. One of the existing PCIe traces leading from the CPU to one of the Atheros chipsets was disconnected and redirected to this mini-PCIe slot.
The modder installed Debian Linux on the router and initially tested it on a more modern RX 570, but ran into problems with the drivers. These issues are not unique to this router and appear to extend to other 32-bit platforms as well. I then chose an older Radeon HD 7470, which performs much better.

With the hardware sorted, it was time for some testing. The game chosen was a reverse engineered version of his GTA Vice City (reVC). Unfortunately, this didn’t work right away because the game and rendering engine weren’t big endian aware. “Loading game assets” Loads a structure (containing offsets, sizes, numbers, coordinates, etc.) directly into memory. These structures contain little endian data on big endian platforms. This causes the game to try to access memory at an unreasonable offset and immediately crash. ”
So how did they fix this? For starters, they found another port of reVC for the Wii U that also uses a PowerPC-based processor and runs in big-endian mode. Ta. They contacted the author of this port, reviewed and borrowed the patched source code, but the problem was still there. They spent a long time looking for a way to fix this and eventually tried a new kernel with new Radeon drivers, along with a few other changes to the kernel. All of this ended up slowing things down by 1 frame per 20 seconds, but almost eliminated the graphical corruption. I had to install a new update Mesa on my router to fix the frame rate. After installing the new libglvnd, drm, and mesa, the game started working fine on real hardware. However, modders were a little frustrated that they couldn’t find the exact problem.
The results of all this are shown below. It’s really great to see routers being used like this.