This Wi-Fi Router Can Run Grand Theft Auto: Vice City
KittenLabs managed to turn their decade-old TP-Link router into a gaming machine that runs Grand Theft Auto: Vice City.
It may be tempting to think of a Wi-Fi router as a glorified network switch, just with radio waves instead of cables. But they’re far more complex than that and have had a surprising level of capability for many years now. Some are essentially computers in their own right and active hacking communities use that to their advantage. The OpenWRT open source project, for example, can unlock the full potential of many different router models. But KittenLabs took things to a whole other level when they got Grand Theft Auto: Vice City running on a decade-old Wi-Fi router.
The router in question is a TP-LINK TL-WDR4900 v1, which hit the market in 2013. Most routers like this use ARM processors, similar to what we see across the embedded technology industry. But the TL-WDR4900 v1 is somewhat unique in that it has a PowerPC e500v2 processor. If you’ve heard of PowerPC at all, it was probably in the context of Apple computers. Before they transitioned to Intel beginning in 2006, Apple famously used PowerPC processors in their Macintosh computers. The PowerPC e500v2 is related to those, but distinct in that it is an SPE (Singal Processing Engine) model.
This unique processor introduces some challenges, but it was relatively powerful for its time and offers PCIe compatibility. That meant that, in theory, KittenLabs could connect a PCIe graphics card and gain the power to run a video game. Grand Theft Auto: Vice City was the perfect choice of game to test that idea.
The first step was to connect a graphics card. The processor can interface with a PCIe card, but the router’s PCB didn’t have the necessary slot. So KittenLabs added a miniPCIe slot wired into contacts and traces on the board. That let them attach a graphics card. First they tried a modern AMD Radeon RX570, but that wouldn’t work on any 32-bit system. So they resorted to an AMD Radeon HD 7470, which did work with a port of Debian Linux built for PowerPCSPE processors.
The biggest challenge was getting a port of Vice City to run on the hardware and that took months. KittenLabs started with reVC, which is a reverse-engineered open source port of Vice City that can be compiled for many different systems. They did a massive amount of work to patching that to work with this hardware, but still experienced glitches related to character model rendering that seemed unsolvable. They even tried modifying a Wii U port, with similar results.
KittenLabs never found the problem, but it disappeared after they updated the entire software stack and all of its dependencies. After that, they were able to play Vice City on the router and it seems to run pretty well.