Welcome to the building instructions for the project! Please make sure to prepeare the required files and install the necessary dependencies for your current OS.
- A Super Mario World rom (Make sure to rename it to
smw.sfc
) libsdl2-dev
(The installation for this will be different for each compiler.)- Super Mario World repo
git clone --recursive https://github.com/snesrev/smw
- Python (During installation, make sure to check the "Add to PATH")
For Linux/MacOS you must install these for your desired OS:
- Ubuntu/Debian:
sudo apt install libsdl2-dev
- Fedora Linux:
sudo dnf in sdl2-devel
- Arch Linux:
sudo pacman -S sdl2
- macOS:
brew install sdl2
Dependencies and requirements:
- Rename your obtaind Super Mario World rom to
smw.sfc
and place it in the root folder. - Unzip both TCC and SDL2 and place them in
third_party
folder. - Double click
run_with_tcc.bat
- Wait for it to compile and the game will automatically boot-up.
Dependencies and requirements:
- The
libsdl2-dev
library - MSYS2
Note: Make sure you're using MINGW64 and you're in smw
folder in the terminal.
- Install MSYS2 on your machine.
- Place the copy of your rom in the main directory.
- Install the necessary dependencies and SDL2 by inputting this command in MSYS2 terminal:
pacman -S mingw-w64-x86_64-SDL2 && pacman -S make && pacman -S mingw-w64-x86_64-gcc
- Type
sdl2-config --cflags
, it should output:
-IC:/msys64/mingw64/include/SDL2 -Dmain=SDL_main
- After that type
sdl2-config --libs
, should output:
-LC:/msys64/mingw64/lib -lmingw32 -mwindows -lSDL2main -lSDL2
After you've done installing everything, in the terminal, type make
In order to speed up the compilation, type make -j16
Dependencies and requirements:
- The
libsdl2-dev
library, which is automatically installed with NuGet. - Visual Studio Community 2022
Download VS installer. On installer prompt, make sure you're on "Workloads" and check Desktop Development with C++
this will install the necessary deps for compilation.
- Open
smw.sln
solution. - Change the build target from
Debug
toRelease
- Build the solution.
Dependencies and requirements:
- Super Mario All-Stars rom (US version and not + Mario World)
zstandard
- Rename your obtained rom to
smas.sfc
and place it inside theother
folder. - To install
zstandard
make sure you've installed Python and added to PATH. Open up CMD and typepip install zstandard
to install the required dep. - In the
other
folder drag and drop your renamed rom intoextract.py
or by typingextract.py
in the command line to extract the necessary files. - Move
smb1.sfc
andsmbll.sfc
to root folder. - Before running the games, make sure to recompile or else they won't boot up.
- Drag your desired game to
smw.exe
in order to run.
Open the terminal and CD to your SM root folder:
make
For more advanced usage:
make -j$(nproc) # run on all core
make clean all # clear gen+obj and rebuild
CC=clang make # specify compiler
Dependencies and requirements:
- The
switch-sdl2
library - DevKitPro
- Atmosphere
pkg-config
- Make sure you've installed Atmosphere on your Switch.
- Please download the DevKitPro version of MSYS2 through their installer, as the default MSYS2 causes issues with windows compiling.
- Now that you've installed DevKitPro, open up the location you've installed DevKitPro to, then find
mingw64.exe
insidemsys2
located indevkitPro
folder. - Type
pacman -S git switch-dev switch-sdl2 switch-tools pkg-config
in the terminal to install theswitch-sdl2
library. - CD to
switch
folder by typingcd src/platform/switch
in the terminal on thesmw
root folder. - type
make
to compile the Switch Port. - Transfer the
.ini
,nro
,ncap
and your rom file to the Switch.
OPTIONAL STEP
make -j$(nproc) # To build using all cores