You Can Play GTA Vice City On… A WiFi Router!?
Jakob Aylesbury / 9 months ago
A gaming router is often bought to ensure that you can get the most stable low ping internet to keep your online multiplayer games running without any lag, they aren’t designed to be gamed on, but that doesn’t stop us. A Hardware modder Manawyrm at kittenlabs.de has showcased their recent project which involves playing games on a TP-Link Router through the use of an eGPU.
Playing GTA Vice City on a TP-Link Router
This feat of hardware tinkering makes use of the TP-Link TL-WDR4900 V1 with a Linux build and a Radeon HD 7470 GPU connected externally. This router was chosen because instead of the typical MIPs or ARM CPUs that most routers use, this one uses a PowerPC-based CPU by NXP which offers a surprising amount of performance for a 2013 router, plus the modder claims that they have excellent PCIe controllers. Despite that though the router didn’t come with any external PCIe connectivity so it was required to retrofit one using a custom mini PCIe breakout PCB and some enameled copper wire. One of the existing PCIe traces leading from the CPU to one of the Atheros chipsets was cut and redirected towards this mini PCIe slot.
The modder installed Debian Linux onto the router and then initially tested it with a more modern RX 570 but ran into issues with the drivers. These issues weren’t exclusive to this router and seemed to extend to any other 32-bit platform as well. They then chose the older Radeon HD 7470 which worked much better.
With the hardware sorted, now it was time to test, and the chosen game was a reverse-engineered version of GTA Vice City (reVC). Unfortunately, this didn’t work right away as the game and rendering engine weren’t big-endian aware. “Loading the game’s assets will load structs (containing offsets, sizes, numbers, coordinates, etc.) directly into memory. These structs then contain little-endian data on a big-endian platform. This causes the game to try to access memory at absurd offsets and crash pretty much immediately.”
So how did they fix this? Well for a start they found another port of reVC for the Wii U that uses a PowerPC-based processor as well and was running in big-endian mode. They contacted the author of this port, reviewed and borrowed their patched source code but still had issues. They spent a long time searching for methods of fixing this until eventually tried a new kernel with newer Radeon drivers alongside a few other changes to their kernel. All of this eventually led to a slow 1 frame per 20 seconds but the graphical corruption was all but gone. Fixing the frame rate required installing a new update mesa on the router and after installing the new libglvnd, drm and mesa, the game began to work fine on real hardware, Though the modder was a bit unhappy to not have discovered the exact issue.
The result of all this can be seen below and it’s pretty cool to see a router used this way.