Homebrew coder ports Sonic R to Switch with LAN multiplayer
A GBAtemp developer has ported Sonic R to the Nintendo Switch, adding LAN and cross-play multiplayer to an open-source reimplementation of Sega's 1998 racer.
AI-drafted from 1 source. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.
A Nintendo Switch homebrew developer going by besk has ported Sonic R, Sega's 1998 racer, to Nintendo's console, and thrown in local network multiplayer between Switch and PC for good measure. The port, laid out in a GBAtemp thread, runs natively under the Switch's own operating system rather than through an emulator.
It's built on someone else's foundation. According to the thread, the port is based on jnmartin84's open-source Sonic R reimplementation, which recreates the PC version of the game in portable C. A reimplementation rebuilds a game's logic from scratch in readable source code rather than running the original binary, which is why porting it to a new platform is a matter of recompiling rather than emulating. Because the underlying code is already portable C, besk was able to build it for the Switch using SDL2, the cross-platform library many homebrew projects lean on for input and audio, paired with a GLES compatibility layer to translate graphics calls the console doesn't natively speak in that form.
What the port actually does
Per the thread, the result runs at a stable 30 frames per second in 16:9, with native Joy-Con controls, a Switch-specific network lobby, and support for the console's on-screen keyboard for typing in server details. Save and ghost data folders are created automatically, saving players the usual homebrew ritual of making folders by hand.
Why the LAN support matters
The headline feature is multiplayer. LAN play between Switch and PC has been tested in both directions: host on the Switch and join from a PC, or the other way round. The Switch build can also make a direct connection to a PC host over the internet, described in the thread as experimental cross-play, provided that PC is reachable on UDP port 7847. There's a catch, and it's a fairly ordinary one for homebrew: the Switch doesn't yet support the project's own matchmaking service, so anyone hoping to jump into a game without knowing someone's IP address is stuck for now.
For a console with no official version of Sonic R and a fairly niche PC and Linux community built around jnmartin84's original reimplementation, this puts a portable, controller-native version of the game in people's pockets, one that can still talk to a desktop over a home network. It's also a useful data point on how far community reimplementations of classic Sega titles have come: rather than staying a curiosity that runs on the platform it was written for, Sonic R has picked up a plausible second home on modern handheld hardware nearly three decades after it first shipped.
What's still unclear
Installation, as described in the thread, means dropping the compiled sonicr.nro file, homebrew's equivalent of an executable, into a folder on the Switch's SD card, then supplying your own legally owned copy of the original game's data files; the port itself ships no copyrighted assets. Full setup steps are said to live in the project's GitHub README, referenced from the GBAtemp post. What the thread doesn't cover is how the port copes on Switch Lite, whether docked play changes anything beyond the stated 16:9 presentation, or how reliably that internet cross-play mode holds up on a typical home connection without manual port forwarding. There's no word yet on native matchmaking arriving for the Switch either, so for now, LAN parties and manually typed IP addresses are the way to race.
Sources
- Sonic R - Switch Port (With LAN Support) (GBAtemp.net - The Independent Video Game Community)
Image: GBAtemp.net - The Independent Video Game Community