In truth, it's actually very easy. You simply need to remember the names of a few programs and their syntax. And not be scared of a command line. Don't worry—you'll get over that fear eventually!
MSYS2 is a small system built on Cygwin and MinGW-w64 that you can install under Windows. Very simply, you get bash and a package manager. Easy stuff!
To download, head over to the MSYS2 website and follow the installation instructions. You don't have to view the "Detailed MSYS2 install guide", unless you're curious.
Start the 32-bit version or 64-bit version of MSYS2 depending on whether you want to compile 32-bit or 64-bit versions of the game. You can find the executables in the Start Menu.
Issue the following command into MSYS2, for 64-bit compiling, pacman -S
git mingw-w64-x86_64-make mingw-w64-x86_64-gcc
For 32-bit, replace
x86_64
with i686
and add
mingw-w64-i686-nasm
to the command line.
Yes, it's time! Issue the following command to clone the SRB2Kart Public git
repository. git clone
https://git.magicalgirl.moe/KartKrew/Kart-Public.git
For any other
repository, go to that project's webpage and look for its clone URL. The HTTPS
URL is easiest to work with.
git is a version control system—a fancy way of saying "keeping track of who did what".
Now issue cd Kart-Public/src
This puts you into the source code
directory of SRB2Kart. From here you can actually compile.
Now issue the following command to compile a 64-bit executable.
CC=x86_64-w64-mingw32-gcc CFLAGS="-Wno-error=format" mingw32-make.exe
MINGW64=1 SDL=1 NOUPX=1 NOOBJDUMP=1 WINDOWSHELL=1
You can also compile
faster by telling Make to run more "jobs" at once—simply add -j
followed by the number of jobs you wish to use. A good starting number is the
number of cores for your processor. To compile a 32-bit executable, replace
x86_64
with i686
and change MINGW64
to
MINGW
Setting CC
is required to tell Make which compiler to use. This is
most necessary when you have multiple compilers installed. E.g. 64 and 32 bit.
Setting CFLAGS
like so is not required. But I have put it in the
example because of a problem in the source code, which would result in a
warning. It's simply easier to suppress the warning rather than fix the
underlying problem, currently.
MINGW64=1
or MINGW=1
is required to tell Make that
you are compiling under Mingw. The "64" is not related to "-w64" in Mingw-64.
SDL=1
tells Make that you are compiling with SDL2. SDL2 is the
only supported interface anyway, however.
I have included NOUPX=1
and NOOBJDUMP=1
merely for
convinience, as it speeds up linking—the final stage of building the program.
You may need to install additional packages if you leave those out, too. I may
add details concerning compiling without those options in the future.
And WINDOWSHELL=1
tells Make that it's operating under cmd. This
Make does, another version operates under bash. But I won't go into that here.
If all goes well, you should be told that srb2win.exe was generated. You can find this executable under bin/Mingw/Release for 32-bit, and bin/Mingw64/Release both in the directory above. Simply place one in the appropriate Kart installation directory and it should work fine.
During the installation of MSYS2, you should have been asked to choose where
MSYS2 is installed. The default paths are C:\msys32 for 32-bit and
C:\msys64 for 64-bit. If you want to get the path to navigate to
under Windows while working in MSYS2, issue the following command
pwd
This command prints the full path offset from your MSYS2
installation directory.