Skip to content
SRB2 Kart Public (Switch Port)
C C++ Shell Visual Basic .NET PHP Roff Other
Branch: switch-port
Clone or download
Pull request Compare This branch is 16 commits ahead, 32 commits behind STJr:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci CircleCI: use libpng-dev Mar 27, 2019
android SRB2 2.1 release Mar 15, 2014
bin Improve packaging Nov 30, 2019
cmake/Modules Make this be consistent with non-CMake builds Dec 3, 2018
debian-template Merge branch 'next' into music-credits Jan 9, 2019
deployer Kart Public Next merge Jan 8, 2019
extras SRB2 2.1 release Mar 15, 2014
libs Merge remote-tracking branch 'upstream/master' into upstream-merge Mar 1, 2019
objs Migrating from gitlab Mar 18, 2019
src Improve packaging Nov 30, 2019
tools Add example sql file Nov 15, 2018
.gitattributes Starting from scratch. SRB2 v2.1.15 Jul 6, 2016
CMakeLists.txt Merge branch 'version-prep' into 'master' May 7, 2019
Doxyfile SRB2 2.1 release Mar 15, 2014
LICENSE SRB2 2.1 release Mar 15, 2014 Update Nov 30, 2019
SRB2_Debug.props More work to cleanup the ARM builds Dec 23, 2018
SRB2_Release.props More work to cleanup the ARM builds Dec 23, 2018
SRB2_common.props More work to cleanup the ARM builds Dec 23, 2018
appveyor.yml Merge branch 'version-prep' into 'master' May 7, 2019
comptime.bat SRB2 2.1 release Mar 15, 2014
comptime.props MSVC: fixed up MSVC project May 22, 2016 Compile Win32 EXE with -gdwarf-2 Apr 7, 2014 Implement deployer scripts for Travis -- OSX and Linux package buildi… Dec 30, 2018
srb2-vc10.sln Added ARM/ARM64 to whole vc10 sln Dec 21, 2018
srb2-vc9.sln SRB2 2.1 release Mar 15, 2014


SRB2Kart is a kart racing mod based on the 3D Sonic the Hedgehog fangame Sonic Robo Blast 2, based on a modified version of Doom Legacy.

This fork aims to support the Nintendo Switch.

Installation Instructions

You can find downloads in releases.

  1. Make sure your Switch can run homebrew.
  2. Extract the contents of the zip to the root of your SD card.
  3. Start SRB2Kart via hbmenu (or whatever method you prefer).

NOTE: This game requires full RAM access. This means you can't launch hbmenu from the album applet when running this. With the latest Atmosphere build and its default config, you can hold R while starting any game to open hbmenu with full RAM access.

Update Instructions

Extract the contents of the update patch to the root of your SD card. Overwrite any files that might conflict.


  • Full online support
  • Full mouse/keyboard support
  • Full software keyboard support


  • I've included a kartconfig.cfg that sets the resolution to 800x450 by default. It doesn't really do anything else so you can leave it out if you'd like.
  • The game takes a bit to boot. A faster SD card may help with this.
  • Without a config file, the game's default resolution is 320x200. I recommend setting it to 800x450 for the best balance of performance and visuals.
  • The game continues to run while on the Switch's home screen when you are unable to pause to prevent lag-switching.
  • If you want to play the game with mouse/keyboard, you'll have to bind most of the buttons yourself.
  • All button bindings are set to match the Xbox controller layout (Xbox A -> Switch B, Xbox X -> Switch Y, etc.)



  • NASM (x86 builds only)
  • SDL2 (Linux/OS X only)
  • SDL2-Mixer (Linux/OS X only)
  • libupnp (Linux/OS X only)
  • libgme (Linux/OS X only)


See SRB2 Wiki/Source code compiling. The compiling process for SRB2Kart is largely identical to SRB2.


Follow the instructions here, using the following make command:

make -C src/ SWITCH=1

Or, if you want to enable network debugging:


If you plan on switching flags, make sure to run make clean first.

More complete build instructions coming soon(TM).


Kart Krew is in no way affiliated with SEGA or Sonic Team. We do not claim ownership of any of SEGA's intellectual property used in SRB2.

I (heyjoeway), STJr, Kart Krew, or the SRB2MB are in no way responsible if this port somehow manages to break your Switch.

You can’t perform that action at this time.