Libretro-super is a series of scripts used to ease the compilation and installation of each and every libretro emulation core and RetroArch itself. You can also build MESS and UME by changing TARGET to "mess" and "ume" respectively.
You can save some time updating the core by adding PARTIAL=1 when doing a clean. 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. Make -f Makefile.libretro TARGET=mame PTR64=1 PYTHON="C:/Python27/pythonw.exe" -j4 Make -f Makefile.libretro TARGET=mame PTR64=1 PYTHON="C:/Python27/pythonw.exe" clean
To make a build with the dynarec available:ĭownload and install Python 2.7.5 to the default location.
Replace with psx for PlayStation, pce-fast for PC-Engine, wswan for WonderSwan, ngp for Neo-Geo Pocket, or vb for Virtual Boy.ĭo not bother with snes or gba, those cores do not function correctly on Windows and are based on old versions of bSNES and VBA-M. Make ui='target-libretro' profile='accuracy' -j4 Make ui='target-libretro' profile='accuracy' clean Make ui='target-libretro' profile='balanced' -j4 Make ui='target-libretro' profile='balanced' clean Make ui='target-libretro' profile='performance' -j4īSNES Balanced cd libretro-bsnes/balanced Make ui='target-libretro' profile='performance' clean Some cores need special commands for building: Refer to the libretro-build-common.sh for exact commands for each core. After the core is built, it will be in the same folder as the makefile used to compile it. If there isn't a Makefile.libretro in the top level, try to find a "libretro" folder within the repository and there should be a makefile in there. If you wish, you can build cores manually if you want more control over the build process, though it's not recommended for inexperienced users.
Be sure to run libretro-fetch.sh to update your local Git clones before building. The exact build_libretro calls can be found in the libretro-build.sh script.Ĭores that build successfully are put in /dist/win in your libretro-super folder.
This can take quite a while to complete, so you may wish to build cores individually: This will attempt to build almost every core available. You can use libretro-build.sh to build all cores at once: You can put any exports you want or need in this script and they will be set. To make this easier, create a shell script called exports.sh (check the link for a suggested script), then you can run it with ".": You will have to set them again when you start it up again. These will be in effect until you close the Git Bash shell. If you're using the prepackaged toolchain, you will need to do this for libretro-build.sh to work: For exampleĪfter they build, you can copy the filters to your RetroArch installation.Īfter running the fetch script, you should have a folder for each libretro core in your libretro-super folder.īefore you start building cores, you may need to set up your exports for some to build properly. SoftFilters and Audio DSP filters are compiled by going into gfx/filters and audio/filters, respectively, and running make on the Makefile. You can then copy the newly compiled retroarch.exe and \tools\retroarch-joyconfig.exe from libretro-super\retroarch to wherever you keep your RetroArch installation. You should see a list of files being compiled, ending with "LD RetroArch.exe". Then execute these commands from the Git Bash shell: A guide to setting this up as well as a guide for making a Unix-like build can be found here.ĭownload the headers and libs and extract them to the folder where the RetroArch repository was cloned (in \libretro-super\retroarch if you used the fetch script). You can use MSYS2 to set up a mingw-w64 environment instead of using the prepackaged toolchain, which has a package manager for easy updating and installation. Other basic UNIX shell commands like "ls" can be useful as well. If not, delete the whole repository and run libretro-fetch.sh again. If you change a file in one of the cloned repositories and git won't let you update, do: j sets the number of jobs to do simultaneously, if you have a quad-core CPU, use -j4. Just as a tip, always do a "git pull" to update the repository and "make clean" to clean up old build files before building anything. You can use libretro-fetch.sh again to update all repositories. You should now have all the libretro organization repositories cloned in the libretro-super folder within your MinGW folder. (Other versions of the mingw-w64 toolchain can be found here, but they may not have the Git Bash.vbs script)Įxtract it somewhere, for example C:\MinGW. 32-bit Windows will need to get 32-bit MinGW instead and use 32-bit headers and libs for RetroArch.ĭownload the prepackaged toolchain from here. Note - the following is for 64-bit Windows only.