Building RetroArch: Difference between revisions

Building cores manually: I made small corrections.
mNo edit summary
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This page contains instructions of building [[RetroArch]] from source. Most average users should use prebuilt binaries instead.
This page contains instructions of building [[RetroArch]] from source. Most average users should use prebuilt binaries instead.
   
   
=Building on Windows=
==Building on Windows==
The recommended toolchain for building RetroArch on Windows is MinGW-w64 running inside the MSYS2 environment. Installers for MSYS2 can be found at [https://msys2.github.io/ msys2.github.io]. Other toolchains like TDM-GCC or Visual Studio can work, but this guide will only cover MSYS2.
The recommended toolchain for building RetroArch on Windows is MinGW-w64 running inside the MSYS2 environment. Installers for MSYS2 can be found at [https://msys2.github.io/ msys2.github.io]. Other toolchains like TDM-GCC or Visual Studio can work, but this guide will only cover MSYS2.


Line 24: Line 24:
The following commands will install everything you need to build RetroArch in your MSYS2 environment.
The following commands will install everything you need to build RetroArch in your MSYS2 environment.


*For 32 bit builds run:
*For 32-bit builds run:


  pacman -S --noconfirm --needed git make mingw-w64-i686-toolchain mingw-w64-i686-pkg-config mingw-w64-i686-SDL2 mingw-w64-i686-libxml2 mingw-w64-i686-freetype mingw-w64-i686 python3 mingw-w64-i686-ffmpeg
  pacman -S --noconfirm --needed git make mingw-w64-i686-toolchain mingw-w64-i686-pkg-config mingw-w64-i686-SDL2 mingw-w64-i686-libxml2 mingw-w64-i686-freetype mingw-w64-i686 python3 mingw-w64-i686-ffmpeg


*For 64 bit builds:
*For 64-bit builds:


  pacman -S --noconfirm --needed git make mingw-w64-x86_64-toolchain mingw-w64-x86_64-pkg-config mingw-w64-x86_64-SDL2 mingw-w64-x86_64-libxml2 mingw-w64-x86_64-freetype mingw-w64-x86_64-python3 mingw-w64-x86_64-ffmpeg
  pacman -S --noconfirm --needed git make mingw-w64-x86_64-toolchain mingw-w64-x86_64-pkg-config mingw-w64-x86_64-SDL2 mingw-w64-x86_64-libxml2 mingw-w64-x86_64-freetype mingw-w64-x86_64-python3 mingw-w64-x86_64-ffmpeg
Line 42: Line 42:
  pacman -U --noconfirm mingw-w64-x86_64-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz
  pacman -U --noconfirm mingw-w64-x86_64-nvidia-cg-toolkit-3.1-2-any.pkg.tar.xz


After installing the packages, close the MSYS2 shell and open either MinGW-w64 Win64 Shell for 64 bit builds or MinGW-w64 Win32 Shell if you want to build for 32 bit systems. Both should be available in your Start Menu.
After installing the packages, close the MSYS2 shell and open either MinGW-w64 Win64 Shell for 64-bit builds or MinGW-w64 Win32 Shell if you want to build for 32-bit systems. Both should be available in your Start Menu.


==Cloning RetroArch and libretro repositories==
==Cloning RetroArch and libretro repositories==
Line 134: Line 134:
The following need only <code>make</code>:
The following need only <code>make</code>:
* 4do-libretro
* 4do-libretro
* blastem-libretro
* any 'beetle' source
* any 'beetle' source
* cannonball
* daphne
* Dinothawr
* Dinothawr
* dolphin (inside <code>/Source/Core/DolphinLibretro</code>)
* FreeIntv
* freej2me (inside <code>/src/libretro</code>)
* Gearboy (inside <code>/platforms/ibretro</code>)
* libretro-atari800
* libretro-cap32
* libretro-cap32
* libretro-chailove
* libretro-crocods
* libretro-lutro
* libretro-lutro
* libretro-o2em
* libretro-o2em
* libretro-ppsspp (inside <code>/libretro</code>)
* libretro-uae
* libretro-uae
* mednfen-psx-libretro
* melonDS
* melonDS
* Mesen (inside <code>/Libretro</code>)
* mrboom-libretro
* mrboom-libretro
* mupen6plus-libretro
* mupen64plus-libretro
* nestopia (inside <code>/libretro</code>)
* nxengine-libretro
* parallel-n64
* parallel-n64
* ppsspp (inside <code>/libretro</code>)
* prosystem-libretro
* reicast-emulator
* reicast-emulator
* nestopia (inside <code>/libretro</code>)
* REminiscence
* prosystem-libretro
* SameBoy  (inside <code>/libretro</code>)
* scummvm (inside <code>/backends/platform/libretro/build</code>)
* scummvm (inside <code>/backends/platform/libretro/build</code>)
* stella
* snes9x (inside <code>/libretro</code>)
* stella-libretro
* tgbdual-libretro
* theodore
* virtualjaguar-libretro
* yabause (inside <code>/libretro</code>)
* yabause (inside <code>/libretro</code>)


Line 167: Line 182:
* gw-libretro
* gw-libretro
* Hatari
* Hatari
* libretro-JamVM
* libretro-meowPC98 (inside <code>/libretro</code>)
* libretro-meowPC98 (inside <code>/libretro</code>)
* libretro-vecx
* libretro-vecx
* mgba
* mgba
* NP2kai (inside <code>/sdl2</code>)
* picodrive
* picodrive
* px68k-libretro
* PokeMini
* PokeMini
* snes9x-next
* snes9x-next
Line 189: Line 207:


Replace %PROFILE% with accuracy, balanced, or performance.
Replace %PROFILE% with accuracy, balanced, or performance.
===Dolphin===
Dolphin requires Cmake now. Its information on the Libretro core is inside <code>/Source/Core/DolphinLibretro</code>.


===emux===
===emux===
Line 206: Line 228:


This core will take a while to build, depending on how fast your CPU is, how many jobs you specify, and how many cores your CPU has. You can save some time updating the core by adding PARTIAL=1 when doing a clean. You can specify a subtarget by adding e.g. <code>SUBTARGET=arcade</code> or <code>SUBTARGET=tiny</code> in the current version of MAME.
This core will take a while to build, depending on how fast your CPU is, how many jobs you specify, and how many cores your CPU has. You can save some time updating the core by adding PARTIAL=1 when doing a clean. You can specify a subtarget by adding e.g. <code>SUBTARGET=arcade</code> or <code>SUBTARGET=tiny</code> in the current version of MAME.
===Redream===
Redream requires Cmake.
===Rustation-libretro===
Rustation is written in Rust, not C or C++; neither make nor Cmake would work.


=Building on Linux=
=Building on Linux=