nixpkgs/pkgs/misc/emulators/retroarch/cores.nix

931 lines
28 KiB
Nix
Raw Normal View History

2019-11-02 11:16:10 +00:00
{ stdenv, fetchgit, fetchFromGitHub, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, python37, retroarch
, alsaLib, fluidsynth, curl, hidapi, libGLU_combined, gettext, glib, gtk2, portaudio, SDL
, ffmpeg, pcre, libevdev, libpng, libjpeg, udev, libvorbis
2019-11-02 11:16:10 +00:00
, miniupnpc, sfml, xorg, zlib, nasm, libpcap, boost }:
let
d2u = stdenv.lib.replaceChars ["-"] ["_"];
mkLibRetroCore = ({ core, src, description, license, broken ? false, ... }@a:
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
name = "libretro-${core}-${version}";
2019-11-02 11:16:10 +00:00
version = "2019-09-29";
inherit src;
buildInputs = [ makeWrapper retroarch zlib ] ++ a.extraBuildInputs or [];
2017-11-26 20:12:23 +00:00
makefile = "Makefile.libretro";
installPhase = ''
COREDIR="$out/lib/retroarch/cores"
mkdir -p $out/bin
mkdir -p $COREDIR
2018-05-21 23:11:44 +01:00
mv ${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $COREDIR/.
makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
2018-05-21 23:11:44 +01:00
--add-flags "-L $COREDIR/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
'';
2017-11-21 19:29:29 +00:00
enableParallelBuilding = true;
passthru = {
core = core;
libretroCore = "/lib/retroarch/cores";
};
meta = with stdenv.lib; {
inherit description;
homepage = https://www.libretro.com/;
2018-03-02 00:11:16 +00:00
inherit license;
2016-02-26 10:18:02 +00:00
maintainers = with maintainers; [ edwtjo hrdinka MP2E ];
2018-05-21 23:11:44 +01:00
platforms = platforms.unix;
};
} // a);
fetchRetro = { repo, rev, sha256 }:
fetchgit {
inherit rev sha256;
url = "https://github.com/libretro/${repo}.git";
fetchSubmodules = true;
};
2018-03-02 00:11:16 +00:00
in with stdenv.lib.licenses;
{
_4do = (mkLibRetroCore rec {
core = "4do";
src = fetchRetro {
repo = core + "-libretro";
2019-11-02 11:16:10 +00:00
rev = "b6ad4bc8548f2f3792cd929ccf26d9078b73a1c0";
sha256 = "0j2bd9cnnd5k99l9qr4wd5q9b4ciplia6ywp90xg6422s1im2iw0";
};
description = "Port of 4DO/libfreedo to libretro";
2018-03-02 00:11:16 +00:00
license = "Non-commercial";
}).override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = "make";
};
atari800 = (mkLibRetroCore rec {
core = "atari800";
src = fetchRetro {
repo = "libretro-" + core;
rev = "efc0bc71e3cb8a4f957d07fe808cc002ed9c13b9";
sha256 = "150hmazi4p5p18gpjmkrn1k9j719cd9gy7jn0jiy3jbk2cxxsjn6";
};
description = "Port of Atari800 to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
beetle-snes = (mkLibRetroCore rec {
core = "mednafen-snes";
src = fetchRetro {
repo = "beetle-bsnes-libretro";
rev = "6aee84d454570bb17dff5975df28febdbcb72938";
sha256 = "0nk9xlypg3jhpbwd9z5bjbgzlkz842hy9rq14k1nwn0qz6d88kld";
};
description = "Port of Mednafen's SNES core to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
beetle-gba = (mkLibRetroCore rec {
core = "mednafen-gba";
src = fetchRetro {
repo = "beetle-gba-libretro";
rev = "135afdbb9591655a3e016b75abba07e481f6d406";
sha256 = "0fc0x24qn4y7pz3mp1mm1ain31aj9pznp1irr0k7hvazyklzy9g3";
};
description = "Port of Mednafen's GameBoy Advance core to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
beetle-lynx = (mkLibRetroCore rec {
core = "mednafen-lynx";
src = fetchRetro {
repo = "beetle-lynx-libretro";
rev = "928f7cf5b39f0363e55667572ff455e37489998e";
sha256 = "0f03wzdr6f0fpy889i9a2834jg5lvcriyl98pajp75m7whm9r9cc";
};
description = "Port of Mednafen's Lynx core to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
beetle-ngp = (mkLibRetroCore rec {
core = "mednafen-ngp";
src = fetchRetro {
repo = "beetle-ngp-libretro";
rev = "6130e4057c3d8f9172f0c49bb9b6c61bd1a572d5";
sha256 = "10k7spjrhggjgzb370bwv7fgk0nb6xri9ym6cm4qvnrkcwxm7i9p";
};
description = "Port of Mednafen's NeoGeo Pocket core to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
2019-08-13 22:52:01 +01:00
beetle-pce-fast = let der = (mkLibRetroCore {
core = "mednafen-pce-fast";
src = fetchRetro {
repo = "beetle-pce-fast-libretro";
2019-11-02 11:16:10 +00:00
rev = "7bbbdf111c1ce52ab4a97e911ebdaa6836ee881a";
sha256 = "1p0kk5a2yi05yl0hspzv9q0n96yx9riaaacbmnq76li0i3ihkf6l";
};
description = "Port of Mednafen's PC Engine core to libretro";
2018-03-02 00:11:16 +00:00
license = gpl2;
}); in der.override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = "make";
name = "beetle-pce-fast-${der.version}";
};
2019-11-02 11:16:10 +00:00
beetle-pcfx = (mkLibRetroCore rec {
core = "mednafen-pcfx";
src = fetchRetro {
repo = "beetle-pcfx-libretro";
rev = "e04f695202a7295e4b6f2122ae947279ac9df007";
sha256 = "0pdlz05pjqxp19da13dr3wd20hgxw8z5swhflyf7ksjgvz5rxb4r";
};
description = "Port of Mednafen's PCFX core to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
2019-08-13 22:52:01 +01:00
beetle-psx = let der = (mkLibRetroCore {
core = "mednafen-psx";
src = fetchRetro {
repo = "beetle-psx-libretro";
2019-11-02 11:16:10 +00:00
rev = "f55db8655408104a6e20af667657423f08566c85";
sha256 = "17iz8r2wy8zqh63j78ijwxasdnmg8dh9mmqn1qr4hvf4fj53ckk8";
};
description = "Port of Mednafen's PSX Engine core to libretro";
2018-03-02 00:11:16 +00:00
license = gpl2;
}); in der.override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = "make";
name = "beetle-psx-${der.version}";
};
2019-08-13 22:52:01 +01:00
beetle-saturn = let der = (mkLibRetroCore {
core = "mednafen-saturn";
src = fetchRetro {
repo = "beetle-saturn-libretro";
2019-11-02 11:16:10 +00:00
rev = "3313cc6760c14cffa9226e0cfd41debc11df8bdd";
sha256 = "1z2zfn5cpsr3x6bvr562vqvmp4pjjhv5a6jcp09gfsy2gkyispr2";
};
description = "Port of Mednafen's Saturn core to libretro";
2018-03-02 00:11:16 +00:00
license = gpl2;
}); in der.override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = "make";
name = "beetle-saturn-${der.version}";
2019-11-02 11:16:10 +00:00
meta.platforms = [ "x86_64-linux" "aarch64-linux" ];
};
beetle-supergrafx = (mkLibRetroCore rec {
core = "mednafen-supergrafx";
src = fetchRetro {
repo = "beetle-supergrafx-libretro";
rev = "857e41146e3b0a51def3baea49d2eec80f18102b";
sha256 = "0r3v4qy4rx4mnr7w4s779f6f2bjyp69m42blimacl1l9f6hmcv5h";
};
description = "Port of Mednafen's SuperGrafx core to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
beetle-wswan = (mkLibRetroCore rec {
core = "mednafen-wswan";
src = fetchRetro {
repo = "beetle-wswan-libretro";
rev = "925cb8c77af1678ceab24f04c2790cb95389def1";
sha256 = "0kqsqn655z6nnr2s1xdbf37ds99gyhqfd7dx0wmx3sy1fshjg5wm";
};
description = "Port of Mednafen's WonderSwan core to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
beetle-vb = (mkLibRetroCore rec {
core = "mednafen-vb";
src = fetchRetro {
repo = "beetle-vb-libretro";
rev = "9066cdafa29ac054243a679baded49212661f47b";
sha256 = "0gsniz5kk4xdiprcfyqjcss2vkrphi48wbr29gqvpf7l8gpnwx8p";
};
description = "Port of Mednafen's VirtualBoy core to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
bluemsx = (mkLibRetroCore rec {
core = "bluemsx";
src = fetchRetro {
repo = core + "-libretro";
rev = "ddd89ff1fa534816e48521bd930b721f2d39975a";
sha256 = "0hiqhc1ckj3ydy0q1v8hwjkkyh2564f7wlqypmshjcc47n296xyf";
};
description = "Port of BlueMSX to libretro";
license = gpl2;
}).override {
buildPhase = "make";
};
2019-08-13 22:52:01 +01:00
bsnes-mercury = let bname = "bsnes-mercury"; in (mkLibRetroCore {
core = bname + "-accuracy";
src = fetchRetro {
repo = bname;
2019-11-02 11:16:10 +00:00
rev = "4a382621da58ae6da850f1bb003ace8b5f67968c";
sha256 = "0z8psz24nx8497vpk2wya9vs451rzzw915lkw3qiq9bzlzg9r2wv";
};
description = "Fork of bsnes with HLE DSP emulation restored";
2018-03-02 00:11:16 +00:00
license = gpl3;
}).override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = "make && cd out";
};
desmume = (mkLibRetroCore rec {
core = "desmume";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "e8cf461f83eebb195f09e70090f57b07d1bcdd9f";
sha256 = "0rc8s5226wn39jqs5yxi30jc1snc0p106sfym7kgi98hy5na8yab";
};
description = "libretro wrapper for desmume NDS emulator";
2018-03-02 00:11:16 +00:00
license = gpl2;
2019-11-02 11:16:10 +00:00
extraBuildInputs = [ libpcap libGLU_combined xorg.libX11 ];
}).override {
2019-11-02 11:16:10 +00:00
makefile = "desmume/src/frontend/libretro/Makefile.libretro";
configurePhase = "cd desmume/src/frontend/libretro";
buildPhase = "make";
};
desmume2015 = (mkLibRetroCore rec {
core = "desmume2015";
src = fetchRetro {
repo = core;
rev = "c27bb71aa28250f6da1576e069b4b8cc61986beb";
sha256 = "1m7g1wwpnnprmki3rixknggjmxbp7d4hwxgkqr041shmrm0rhafd";
};
description = "libretro wrapper for desmume NDS emulator from 2015";
license = gpl2;
extraBuildInputs = [ libpcap libGLU_combined xorg.libX11 ];
}).override {
makefile = "desmume/Makefile.libretro";
configurePhase = "cd desmume";
2019-11-02 11:16:10 +00:00
buildPhase = "make";
};
2017-06-04 09:10:14 +01:00
dolphin = (mkLibRetroCore {
core = "dolphin";
src = fetchRetro {
repo = "dolphin";
2019-11-02 11:16:10 +00:00
rev = "11a7ed402c7178da1d9d57c6e5e5a05a4dc6a2c8";
sha256 = "11jrcczkbyns01rvxb5rd22fbkbfn2h81f6pfxbhi13fl4ljim9x";
2017-06-04 09:10:14 +01:00
};
description = "Port of Dolphin to libretro";
2018-03-02 00:11:16 +00:00
license = gpl2Plus;
broken = true;
2017-06-04 09:10:14 +01:00
extraBuildInputs = [
2019-11-02 11:16:10 +00:00
cmake curl libGLU_combined pcre pkgconfig sfml
gettext hidapi
libevdev udev
2019-11-02 11:16:10 +00:00
] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil libXext libXrandr libXinerama libXxf86vm ]);
2017-06-04 09:10:14 +01:00
}).override {
cmakeFlags = [
2019-11-02 11:16:10 +00:00
"-DCMAKE_BUILD_TYPE=Release"
"-DLIBRETRO=ON"
"-DLIBRETRO_STATIC=1"
"-DENABLE_QT=OFF"
"-DENABLE_LTO=OFF"
"-DUSE_UPNP=OFF"
"-DUSE_DISCORD_PRESENCE=OFF"
2017-06-04 09:10:14 +01:00
];
dontUseCmakeBuildDir = "yes";
2019-11-02 11:16:10 +00:00
buildPhase = "make";
};
dosbox = (mkLibRetroCore rec {
core = "dosbox";
src = fetchRetro {
repo = core + "-libretro";
rev = "e4ed503b14ed59d5d745396ef1cc7d52cf912328";
sha256 = "13bx0ln9hwn6hy4sv0ivqmjgjbfq8svx15dsa24hwd8lkf0kakl4";
};
description = "Port of DOSBox to libretro";
license = gpl2;
}).override {
buildPhase = "make";
2017-06-04 09:10:14 +01:00
};
fba = (mkLibRetroCore rec {
core = "fba";
src = fetchRetro {
repo = core + "-libretro";
2019-11-02 11:16:10 +00:00
rev = "89245384c7d181e286d6f34995253419f946becb";
sha256 = "1pg351qhbq5x8qmaq6c30v8ynic8jv3gbxy2kq5iknka80g1lkck";
};
description = "Port of Final Burn Alpha to libretro";
2018-03-02 00:11:16 +00:00
license = "Non-commercial";
}).override {
2019-11-02 11:16:10 +00:00
makefile = "svn-current/trunk/makefile.libretro";
buildPhase = ''
cd svn-current/trunk \
&& make -f makefile.libretro \
2018-05-21 23:11:44 +01:00
&& mv fbalpha2012_libretro${stdenv.hostPlatform.extensions.sharedLibrary} fba_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
'';
};
fceumm = mkLibRetroCore rec {
core = "fceumm";
src = fetchRetro {
repo = "libretro-" + core;
2019-11-02 11:16:10 +00:00
rev = "0e315e0ca0093ebda06a97835cec6ad4af81db7a";
sha256 = "12bvvxmvafjvrvwxl5gzr583g48s0isx2fgvjgkrx175vk2amaf4";
};
description = "FCEUmm libretro port";
2018-03-02 00:11:16 +00:00
license = gpl2;
};
2019-11-02 11:16:10 +00:00
flycast = (mkLibRetroCore rec {
core = "flycast";
src = fetchRetro {
repo = core;
rev = "45a15205dfc05cfc4df2488cad7c2b4988c5aa0f";
sha256 = "18glxd57kddq6p2bwq0qknyq6bv8dxklqks4w2jy2yccvwxdxy2i";
};
description = "Flycast libretro port";
license = gpl2;
extraBuildInputs = [ libGLU_combined ];
}).override {
makefile = "Makefile";
buildPhase = "make";
};
2017-06-04 02:24:18 +01:00
gambatte = mkLibRetroCore rec {
core = "gambatte";
src = fetchRetro {
repo = core + "-libretro";
2019-11-02 11:16:10 +00:00
rev = "4d9ad7b29946ec0a914b2d6a735b6c2704ed1f23";
sha256 = "156pvvlch5izbgbw4ddxhiwgzpp52irr3nqaz813i5f02fiq5wya";
};
description = "Gambatte libretro port";
2018-03-02 00:11:16 +00:00
license = gpl2;
};
2019-08-13 22:52:01 +01:00
genesis-plus-gx = mkLibRetroCore {
core = "genesis-plus-gx";
src = fetchRetro {
repo = "Genesis-Plus-GX";
2019-11-02 11:16:10 +00:00
rev = "0e4357bd64533d7fd93b5f01620b92595025fab5";
sha256 = "1nryy00844h3ra97j40g38lj7036ibm2l8002qid7r5r9kggclqx";
};
description = "Enhanced Genesis Plus libretro port";
2018-03-02 00:11:16 +00:00
license = "Non-commercial";
};
2019-11-02 11:16:10 +00:00
gpsp = (mkLibRetroCore rec {
core = "gpsp";
src = fetchRetro {
repo = core;
rev = "24af89596e6484ff5a7a08efecfa8288cfbc02f3";
sha256 = "1jc5i70cab5f23yc9sfv8iyvmwmc4sb33f413il2vlhsfdxklyk7";
};
description = "Port of gpSP to libretro";
license = gpl2;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
handy = (mkLibRetroCore rec {
core = "handy";
src = fetchRetro {
repo = "libretro-" + core;
rev = "6b19a4fad1b394f6a1351c88f60991d4878ff05b";
sha256 = "0lhkrwh3rirdidxb8kfcg8wk9gjsc7g6qpkv74h6f09rb4y75w1y";
};
description = "Port of Handy to libretro";
license = "Handy-License";
}).override {
makefile = "Makefile";
buildPhase = "make";
};
hatari = (mkLibRetroCore rec {
core = "hatari";
src = fetchRetro {
repo = core;
rev = "ec1b59c4b6c7ca7d0d23d60cfe2cb61911b11173";
sha256 = "1pm821s2cz93xr7qx7dv0imr44bi4pvdvlnjl486p83vff9yawfg";
};
description = "Port of Hatari to libretro";
license = gpl2;
extraBuildInputs = [ cmake SDL ];
}).override {
makefile = "Makefile.libretro";
buildPhase = "make";
};
2019-08-13 22:52:01 +01:00
higan-sfc = (mkLibRetroCore {
2018-03-04 05:39:18 +00:00
core = "higan-sfc";
src = fetchFromGitLab {
owner = "higan";
repo = "higan";
rev = "d3f592013a27cb78f17d84f90a6be6cf6f6af1d1";
sha256 = "19d4cbwg8d085xq5lmql4v5l4ckgwqzc59ha5yfgv3w4qfp4dmij";
};
description = "Accurate SNES / Super Famicom emulator";
license = gpl3;
2019-11-02 11:16:10 +00:00
broken = true;
2018-03-04 05:39:18 +00:00
}).override {
makefile = "GNUmakefile";
buildPhase = "cd higan && make compiler=g++ target=libretro binary=library && cd out";
};
2017-11-29 10:53:01 +00:00
mame = (mkLibRetroCore {
2016-02-26 10:18:02 +00:00
core = "mame";
src = fetchRetro {
repo = "mame";
2019-11-02 11:16:10 +00:00
rev = "f4aac49f3d56fbd653628ac456c23ac9a6b857ae";
sha256 = "1pjpnwdj73319hgcjhganzrcz2zn4fnjydah989haqh3id5j3zam";
2016-02-26 10:18:02 +00:00
};
description = "Port of MAME to libretro";
2018-03-02 00:11:16 +00:00
license = gpl2Plus;
2016-02-26 10:18:02 +00:00
extraBuildInputs = [ alsaLib libGLU_combined portaudio python27 xorg.libX11 ];
2017-11-29 10:53:01 +00:00
}).override {
postPatch = ''
# Prevent the failure during the parallel building of:
# make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o
mkdir -p 3rdparty/genie/build/gmake.linux/obj/Release/src/host/lua-5.3.0/src
'';
2019-11-02 11:16:10 +00:00
buildPhase = "make -f Makefile.libretro";
};
mame2000 = (mkLibRetroCore rec {
core = "mame2000";
src = fetchRetro {
repo = core + "-libretro";
rev = "0a8a174f5e755cdd476895207003c5d07cfa6af2";
sha256 = "03k0cfgd4wfl31dv5xb6xjd4h7sh0k0qw6wbspwi0lgswmhz97bb";
};
description = "Port of MAME ~2000 to libretro";
license = gpl2Plus;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
mame2003 = (mkLibRetroCore rec {
core = "mame2003";
src = fetchRetro {
repo = core + "-libretro";
rev = "170d5b6490953d40edc39defe69945d005f8ec03";
sha256 = "0slsf59sn5lijr1mrx5ffc9z81ra1wcw7810mb52djqyvm15r9zl";
};
description = "Port of MAME ~2003 to libretro";
license = gpl2Plus;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
mame2003-plus = (mkLibRetroCore rec {
core = "mame2003-plus";
src = fetchRetro {
repo = core + "-libretro";
rev = "d9a56a3af908ae9100b4c9feebff4b918363f241";
sha256 = "1c16chfs4b2j1x1bmrklh8ssqki850k787qwq7b95dyxksj2bpx1";
};
description = "Port of MAME ~2003+ to libretro";
license = gpl2Plus;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
mame2010 = (mkLibRetroCore rec {
core = "mame2010";
src = fetchRetro {
repo = core + "-libretro";
rev = "4ced2c31f1100eefc7f4483b474b8a680a3b3f2b";
sha256 = "1a8ijj0sixr6xrqfgimna0ipfj2bb2kvj4mb45hb8a18mwn6y0mc";
};
description = "Port of MAME ~2010 to libretro";
license = gpl2Plus;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
mame2015 = (mkLibRetroCore rec {
core = "mame2015";
src = fetchRetro {
repo = core + "-libretro";
rev = "e3a28398f54cd6b2c24b7165d215b046b79c10f5";
sha256 = "1fgwi37zgp2s92bkz03gch3ivgyjgdi3xycrd8z7x87gi20a79x9";
};
description = "Port of MAME ~2015 to libretro";
license = gpl2Plus;
extraBuildInputs = [ python27 alsaLib ];
}).override {
makefile = "Makefile";
buildPhase = "make";
};
mame2016 = (mkLibRetroCore rec {
core = "mame2016";
src = fetchRetro {
repo = core + "-libretro";
rev = "ea4c1ffa75eb3fb0096158b71706b8b84d86d12c";
sha256 = "1qyvdymmjv5q0k3najgfdxzf1yr6bnysnsl19v753yj29xs4hwzp";
};
description = "Port of MAME ~2016 to libretro";
license = gpl2Plus;
extraBuildInputs = [ python27 alsaLib ];
}).override {
postPatch = ''
# Prevent the failure during the parallel building of:
# make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o
mkdir -p 3rdparty/genie/build/gmake.linux/obj/Release/src/host/lua-5.3.0/src
'';
buildPhase = "make -f Makefile.libretro";
};
mesen = (mkLibRetroCore rec {
core = "mesen";
src = fetchFromGitHub {
owner = "SourMesen";
repo = core;
rev = "942633dd3dbb73cc3abd748f6d5440c78abbea09";
sha256 = "0a95wd64vnblksacapxwxla9j2iw8a5hbdm111cldrni12q87iq2";
};
description = "Port of Mesen to libretro";
license = gpl3;
}).override {
makefile = "Libretro/Makefile";
buildPhase = "cd Libretro && make";
2017-02-11 12:49:33 +00:00
};
2017-02-10 11:03:14 +00:00
mgba = mkLibRetroCore rec {
core = "mgba";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "4865aaabc2a46c635f218f7b51f8fc5cc2c4c8ac";
sha256 = "1mdzwcsl5bafmgqfh0a1bgfgilisffxsygcby0igsq2bgkal47mm";
2017-02-10 11:03:14 +00:00
};
description = "Port of mGBA to libretro";
2018-03-02 00:11:16 +00:00
license = mpl20;
2017-02-10 11:03:14 +00:00
};
mupen64plus = (mkLibRetroCore rec {
2019-11-02 11:16:10 +00:00
core = "mupen64plus-next";
src = fetchRetro {
2019-11-02 11:16:10 +00:00
repo = "mupen64plus-libretro-nx"; # + "-libretro-nx";
rev = "f77c16f9f1dd911fd2254becc8a28adcdafe8aa1";
sha256 = "0j6vrkwch9lwmlhyz7fp1ha0bby54gvbwk91hwbv35f6dvs0aw0d";
};
description = "Libretro port of Mupen64 Plus, GL only";
2018-03-02 00:11:16 +00:00
license = gpl2;
2019-11-02 11:16:10 +00:00
extraBuildInputs = [ libGLU_combined libpng nasm xorg.libX11 ];
}).override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = "make";
};
nestopia = (mkLibRetroCore rec {
core = "nestopia";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "7f48c211c281880d122981da119a4455a9bebbde";
sha256 = "05p3a559633dzw222rs1fh48v657mdyirl1qfqzkhqiar9rxf31g";
};
description = "nestopia undead libretro port";
2018-03-02 00:11:16 +00:00
license = gpl2;
}).override {
2019-11-02 11:16:10 +00:00
makefile = "libretro/Makefile";
buildPhase = "cd libretro && make";
};
2019-11-02 11:16:10 +00:00
o2em = (mkLibRetroCore rec {
core = "o2em";
src = fetchRetro {
repo = "libretro-" + core;
rev = "d6731b9b2592654ce4f1b64c1b1da17b32e7c94c";
sha256 = "0809qw16y7ablxfayf0lbzvq7wqdmjp0afdb0vcgv193vvhhp58q";
};
description = "Port of O2EM to libretro";
license = artistic1;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
2017-06-07 22:30:40 +01:00
parallel-n64 = (mkLibRetroCore rec {
core = "parallel-n64";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "30f4fd3c2456145763eb76aead7485a1b86ba6bd";
sha256 = "0kbyzmscmfi6f842clzaff4k6xcb5410fwhv8n6vv42xk6ljfvgh";
2017-06-07 22:30:40 +01:00
};
description = "Parallel Mupen64plus rewrite for libretro.";
2018-03-02 00:11:16 +00:00
license = gpl2;
2017-06-07 22:30:40 +01:00
extraBuildInputs = [ libGLU_combined libpng ];
2017-06-07 22:30:40 +01:00
}).override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = "make";
2017-06-07 22:30:40 +01:00
};
2019-11-02 11:16:10 +00:00
pcsx_rearmed = (mkLibRetroCore rec {
core = "pcsx_rearmed";
src = fetchRetro {
repo = core;
rev = "eb6943ee04b0f30a6f1cebfe399a94bacd1dfb45";
sha256 = "0xikdirvjal4mdr5y9dl9gcxhdilqzq43f909b0z8vc069vj1wjz";
};
description = "Port of PCSX ReARMed to libretro";
license = gpl2;
}).override {
configurePhase = "rm configure";
buildPhase = "make -f Makefile.libretro";
};
picodrive = (mkLibRetroCore rec {
core = "picodrive";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "28dcfd6f43434e6828ee647223a0576bfe858c24";
sha256 = "19a1b6q8fhf7wxzyf690va1ixzlxlzyslv1zxm0ll5pfsqf2y3gx";
};
description = "Fast MegaDrive/MegaCD/32X emulator";
2018-03-02 00:11:16 +00:00
license = "MAME";
extraBuildInputs = [ libpng SDL ];
}).override {
patchPhase = "sed -i -e 's,SDL_CONFIG=\".*\",SDL_CONFIG=\"${SDL.dev}/bin/sdl-config\",' configure";
configurePhase = "./configure";
};
2019-11-02 11:16:10 +00:00
play = (mkLibRetroCore rec {
core = "play";
src = fetchRetro {
repo = "play-";
rev = "fedc1e1c2918a7490a881cdb4ec951a828c19671";
sha256 = "0hwxx7h61gd29a2gagwjbvxk2hgwdk1wxg4nx90zrizb8nczwnl6";
};
description = "Port of Play! to libretro";
license = bsd2;
extraBuildInputs = [ cmake boost ];
}).override {
cmakeFlags = [ "-DBUILD_PLAY=OFF -DBUILD_LIBRETRO_CORE=ON" ];
buildPhase = "make";
};
ppsspp = (mkLibRetroCore rec {
core = "ppsspp";
2019-11-02 11:16:10 +00:00
src = fetchgit {
url = "https://github.com/hrydgard/ppsspp";
rev = "bf1777f7d3702e6a0f71c7ec1fc51976e23c2327";
sha256 = "17sym0vk72lzbh9a1501mhw98c78x1gq7k1fpy69nvvb119j37wa";
};
description = "ppsspp libretro port";
2018-03-02 00:11:16 +00:00
license = gpl2;
2019-11-02 11:16:10 +00:00
extraBuildInputs = [ cmake libGLU_combined ffmpeg python37 xorg.libX11 ];
}).override {
2019-11-02 11:16:10 +00:00
cmakeFlags = "-DLIBRETRO=ON";
makefile = "Makefile";
buildPhase = ''
make \
&& mv lib/ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
'';
};
prboom = (mkLibRetroCore rec {
core = "prboom";
src = fetchRetro {
repo = "libretro-" + core;
2017-06-04 02:24:18 +01:00
rev = "4c690eb6b569a276c5b2a87680718f715477eae2";
sha256 = "02vkl3y5dmyzifsviphspqv03a2rdyf36zpjpgfg7x0s226f56ja";
};
description = "Prboom libretro port";
2018-03-02 00:11:16 +00:00
license = gpl2;
}).override {
buildPhase = "make";
};
2019-11-02 11:16:10 +00:00
prosystem = (mkLibRetroCore rec {
core = "prosystem";
src = fetchRetro {
2019-11-02 11:16:10 +00:00
repo = core + "-libretro";
rev = "cb4aa3ee72f98b0891a7bac5c9dac458cdba4d34";
sha256 = "0yvzmks9zz1hf7mv6cd2qin1p3yx00dbrcxlm0yysy5q5jiigblg";
};
2019-11-02 11:16:10 +00:00
description = "Port of ProSystem to libretro";
license = gpl2;
}).override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = "make";
};
2019-11-02 11:16:10 +00:00
quicknes = (mkLibRetroCore rec {
core = "quicknes";
2017-02-10 11:11:29 +00:00
src = fetchRetro {
2019-11-02 11:16:10 +00:00
repo = "QuickNES_Core";
rev = "cd302d998d102c9461a924b81817e48b9ea1518f";
sha256 = "1sczs1jqcbhpkb5xpcqqdcnxlz7bqmanm4gdnnc12c19snl7999b";
2017-02-10 11:11:29 +00:00
};
2019-11-02 11:16:10 +00:00
description = "QuickNES libretro port";
license = lgpl21Plus;
2017-02-10 11:11:29 +00:00
}).override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
2017-02-10 11:11:29 +00:00
buildPhase = "make";
};
scummvm = (mkLibRetroCore rec {
core = "scummvm";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "e07a6ede61c364fb87630fa7507a4f8482d882e0";
sha256 = "0i88z53q28lwzmadxincab4m66qbzcbmasgildybj8db0z2z8jm0";
};
description = "Libretro port of ScummVM";
2018-03-02 00:11:16 +00:00
license = gpl2;
extraBuildInputs = [ fluidsynth libjpeg libvorbis libGLU_combined SDL ];
}).override {
2019-11-02 11:16:10 +00:00
makefile = "backends/platform/libretro/build/Makefile";
buildPhase = "cd backends/platform/libretro/build && make";
};
snes9x = (mkLibRetroCore rec {
core = "snes9x";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "29b78df8c9f0f48ed4605d08a187a134b3b316d6";
sha256 = "004h1pkxvbn4zlh8bqs6z17k04jw5wzbwklpgvmb7hbxshsi4qid";
};
description = "Port of SNES9x git to libretro";
2018-03-02 00:11:16 +00:00
license = "Non-commercial";
}).override {
2019-11-02 11:16:10 +00:00
makefile = "libretro/Makefile";
buildPhase = "cd libretro && make";
};
2019-11-02 11:16:10 +00:00
snes9x2002 = (mkLibRetroCore rec {
core = "snes9x2002";
src = fetchRetro {
repo = core;
rev = "354bcb5acea0aa45b56ae553e0b2b4f10792dfeb";
sha256 = "05gvjjxy6ci5pax3frd9g8k9mkqskab5g6rvfjab7cc4zrxrg23f";
};
description = "Optimized port/rewrite of SNES9x 1.39 to Libretro";
license = "Non-commercial";
}).override {
makefile = "Makefile";
buildPhase = "make";
};
snes9x2005 = (mkLibRetroCore rec {
core = "snes9x2005";
src = fetchRetro {
repo = core;
rev = "e5cadd2f21fb64e8c7194ad006b39e6f555c4a5b";
sha256 = "1q0xrw3f8zm2k19sva8cz28yx815w8a6y1xsl0i6bb3cai3q1hyx";
};
description = "Optimized port/rewrite of SNES9x 1.43 to Libretro";
license = "Non-commercial";
}).override {
makefile = "Makefile";
buildPhase = ''
make USE_BLARGG_APU=1 \
&& mv snes9x2005_plus_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x2005_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
'';
};
snes9x2010 = (mkLibRetroCore rec {
core = "snes9x2010";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "e945cbae0f8c472e1567a319817c9228b775dd71";
sha256 = "1pj5p4a2hy7hk90bzy4vnkz3b6nc8n1niqibgwhyfsc22xlxqsfr";
};
description = "Optimized port/rewrite of SNES9x 1.52+ to Libretro";
2018-03-02 00:11:16 +00:00
license = "Non-commercial";
2017-06-04 02:24:18 +01:00
}).override {
buildPhase = ''
make -f Makefile.libretro
'';
};
stella = (mkLibRetroCore rec {
core = "stella";
src = fetchRetro {
2019-11-02 11:16:10 +00:00
repo = core + "2014-libretro";
rev = "6d74ad9a0fd779145108cf1213229798d409ed37";
sha256 = "0b1nsk92rr64xxj8jc9vpjqgrmm3554096zl031ymr94j5cc87q9";
};
description = "Port of Stella to libretro";
2018-03-02 00:11:16 +00:00
license = gpl2;
}).override {
2019-11-02 11:16:10 +00:00
makefile = "Makefile";
buildPhase = ''
make \
&& mv stella2014_libretro${stdenv.hostPlatform.extensions.sharedLibrary} stella_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
'';
};
vba-next = mkLibRetroCore rec {
core = "vba-next";
src = fetchRetro {
repo = core;
2019-11-02 11:16:10 +00:00
rev = "3580ae6acb1a90c4e982e57597458da07eca4f41";
sha256 = "0fz8z04kf9g1i5x5slyvx5kb07garzxvhcqnwmqn5j574xh1lc6d";
};
description = "VBA-M libretro port with modifications for speed";
2018-03-02 00:11:16 +00:00
license = gpl2;
};
vba-m = (mkLibRetroCore rec {
core = "vbam";
src = fetchRetro {
repo = core + "-libretro";
2019-11-02 11:16:10 +00:00
rev = "9ccdeac3aa9db00720bb80eff5c9924362144efa";
sha256 = "0rq89i9f483j93shhp2p3vqsnb2abpwz6wdnsycfwxgblczmi22y";
};
description = "vanilla VBA-M libretro port";
2018-03-02 00:11:16 +00:00
license = gpl2;
}).override {
2019-11-02 11:16:10 +00:00
makefile = "src/libretro/Makefile";
buildPhase = "cd src/libretro && make";
};
2019-11-02 11:16:10 +00:00
vecx = (mkLibRetroCore rec {
core = "vecx";
src = fetchRetro {
repo = "libretro-" + core;
rev = "26585ee701499550e484c11f005db18e926827d9";
sha256 = "0vz2aksc8mqnw55f2bvvawj21mxf60fp93r0sr55hdccn9h7355k";
};
description = "Port of Vecx to libretro";
license = gpl3;
}).override {
buildPhase = "make";
};
virtualjaguar = (mkLibRetroCore rec {
core = "virtualjaguar";
src = fetchRetro {
repo = core + "-libretro";
rev = "7bdd8658880b53bf2bcbae0741323fe18f9041f5";
sha256 = "0zbrsfhvx293ijazy1w19qha19hprsi0zv8295sa0gq8kyh0xhyw";
};
description = "Port of VirtualJaguar to libretro";
license = gpl3;
}).override {
makefile = "Makefile";
buildPhase = "make";
};
yabause = (mkLibRetroCore rec {
core = "yabause";
src = fetchRetro {
repo = core;
rev = "08d09cb88a69ee4c2986693fb813e0eb58d71481";
sha256 = "0z55yam1l7m21kbjwn44sp4md9g7p95b27vcxr7i0v08gnkwwvv1";
};
description = "Port of Yabause to libretro";
license = gpl2;
}).override {
makefile = "yabause/src/libretro/Makefile";
buildPhase = "cd yabause/src/libretro && make";
};
}