Files
sm-vita/BUILDING.md
DaBanana64 a1521f9688 Create build instructions. (#7)
As the title says, I've created (hopefully) detailed enough instruction
for building the game.

Let me know if I've missed anything!
2023-03-10 23:45:33 +01:00

2.3 KiB

Requirements

  • A Super Metroid rom (Make sure to rename it to sm.smc)
  • libsdl2-dev

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

Windows

Building with MSYS2

Dependencies and requirements:

Note: Make sure you're using MINGW64, otherwise it won't work.

  • The libsdl2-dev library
  • MSYS2
  1. Install MSYS2 on your machine.
  2. Clone the SM repository. git clone https://github.com/snesrev/sm
  3. Place the copy of your rom in the main directory.
  4. Install libsdl2-dev with sdl2-config --cflags
  5. After that it outputs -IC:/msys64/mingw64/include/SDL2 -Dmain=SDL_main, type sdl2-config --libs, it should output -LC:/msys64/mingw64/lib -lmingw32 -mwindows -lSDL2main -lSDL2
  6. Now install Make and GCC, type pacman -S make && pacman -S mingw-w64-x86_64-gcc

NOTE: Make sure you're in the sm directory.

After you've done installing everything, cd to sm folder. Type make In order to speed up the compilation, type make -j16

Building with Visual Studio

Dependencies and requirements:

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.

  1. Open sm.sln solution.
  2. Change the build target from Debug to Release
  3. Build the solution.

Building with Tiny C Compiler

Dependencies and requirements:

  • You'll need TCC and SDL2 in order to compile using TCC.
  1. Unzip both TCC and SDL and place them in third_party folder.
  2. Double click run_with_tcc.bat
  3. Wait for it to compile and the game will automatically boot-up.

Linux/MacOS

Cd to your SM root folder and open the terminal and type:

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