Replaced retroarchBare with retroarchBareMaster, also added a few new libretro cores

retroarchBare was too old for any practical use at this point, so it was removed in favor
of fetching releases from git. RetroArch often recommends checkout out the latest git master
if you are on a desktop platform, so we are conforming with their recommendation. I plan on
bumping the git of retroarch and each core every month, and I plan on adding more libretro
cores in the future.

The libretro cores that were added are nestopia, quicknes, snes9x, and vba-m

planned next are : bsnes-accuracy, bsnes-balanced, bsnes-performance, a few libretro mame ports

Closes #4448
This commit is contained in:
Cray Elliott 2014-10-09 20:11:54 -07:00 committed by Mateusz Kowalczyk
parent 74fde7c388
commit e39bf7a704
4 changed files with 112 additions and 92 deletions

View File

@ -9,7 +9,7 @@ let
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
name = "libretro-${core}-${version}";
version = "20140902";
version = "20141009";
inherit src;
buildInputs = [ makeWrapper retroarch zlib ] ++ a.extraBuildInputs or [];
@ -53,8 +53,8 @@ in
core = "4do";
src = fetchRetro {
repo = core + "-libretro";
rev = "961812bc421f3fbfd83ea211783bb511a0b6d31c";
sha256 = "0217iq8sj8gn161c3mj632csl1da8ir2ffxxdillpcddv6ppsayl";
rev = "700e5c2b28252ed7d3fb086ab016b3b964a5030a";
sha256 = "0wxiapbp6i3r9ir75xgmah0jhrfvy9jgqr6i22grgmnga1qv5pcf";
};
description = "Port of 4DO/libfreedo to libretro";
}).override {
@ -65,30 +65,32 @@ in
core = "bsnes-mercury";
src = fetchRetro {
repo = core;
rev = "cc44e91bfba6f7b3d1d3d51a9fa28b39a579f5e0";
sha256 = "0nzwjrbfvzywsimrvp4vbpj7zxf9iwpghd9z7f9f1q027l0vj42f";
rev = "5fa7c035a604cd207c5833af0fdd55d7cf68acb0";
sha256 = "19drxpspid0y3wi3zp3ls4jlhx1ndqmr51jici7w2vsajk9x9dyg";
};
description = "Fork of bsnes with HLE DSP emulation restored";
}).override {
buildPhase = "make && cd out";
};
desmume = mkLibRetroCore rec {
desmume = (mkLibRetroCore rec {
core = "desmume";
src = fetchRetro {
repo = core + "-libretro";
rev = "1dd58e4a9fa375b6909cd8718165a429d4b8bd6d";
sha256 = "137bw9316qxm8s6p0bzyvk39dv5b5bn60fgllmyj9z5y8x5lrc9l";
repo = core;
rev = "57bbabfe71fb8e131fa14ab1504f1959937b8ce5";
sha256 = "19kbl361ggzhmmc5alsfwq9gcl0zc9zhz0nx562l6k2lj7fwwr0g";
};
description = "libretro wrapper for desmume NDS emulator";
}).override {
configurePhase = "cd desmume";
};
fceumm = mkLibRetroCore rec {
core = "fceumm";
src = fetchRetro {
repo = "libretro-" + core;
rev = "17e081541c9d36d0658e7139afa5b085aa0316c9";
sha256 = "0cn74z976rgjh7hf0yb1sdjlm347157893s2z397rgjvks8xssb0";
rev = "1b27f5abafa4ace43badebea82a8374be3a5a96b";
sha256 = "04v0in7nazmkfsbvl0wn5klnz4f8rpjsar1v3c07j2qrma42k60w";
};
description = "FCEUmm libretro port";
};
@ -97,8 +99,8 @@ in
core = "fba";
src = fetchRetro {
repo = core + "-libretro";
rev = "da6355526a9b02a642447994414baababe904c1e";
sha256 = "14kba506m9dnldmkpq3vgw416pm7cgc167hgm3f0l59ylp2592ff";
rev = "21a78df085a0d964828c5c0940c03e656e2ad808";
sha256 = "01ycszinral19ni22a3x8afiz23y9xw6idzx9a22xnc6zqvj0fjm";
};
description = "Port of Final Burn Alpha to libretro";
}).override {
@ -113,8 +115,8 @@ in
core = "gambatte";
src = fetchRetro {
repo = core + "-libretro";
rev = "267a4e09bf8f0877483abdffde6295f29d7235ee";
sha256 = "1swx3mjb6qmlg6grcakhl17vrmy4vdvimxkv5gbv6gnj5riya4vl";
rev = "6f3c97d86483368ec446b6b08ae21b1cb644312c";
sha256 = "19kbisbl5lqxfsaff4knp2rrl17af21c1kgccxhgp5liqnqk92k5";
};
description = "Gambatte libretro port";
}).override {
@ -125,8 +127,8 @@ in
core = "genesis-plus-gx";
src = fetchRetro {
repo = "Genesis-Plus-GX";
rev = "c0015e27e3ae607ea0490b2accfe31097ef3cbce";
sha256 = "1k4b5wib7nqzk53qwvhkh4a70gc4pq7vkrpvmfzp5f2c4vrbw1i7";
rev = "d634da83d29d39d293c1aba3c14f6259e13e525e";
sha256 = "0mhn2h2wr2kh5rgda5rj7xkmg4b6glg4rnd0f1ak6rp3sh8dfhv1";
};
description = "Enhanced Genesis Plus libretro port";
};
@ -135,8 +137,8 @@ in
core = "mupen64plus";
src = fetchRetro {
repo = core + "-libretro";
rev = "2251b3aba2a5bb233ff49dd9b6472f2c0feb9b83";
sha256 = "04g93kj6n5vddbzfb30d8n711kg0yxfnl5v567aa854misn6gfxd";
rev = "021ab383e2ac44533e9babd3e7f5fed97a988225";
sha256 = "13hph19b24bbp9d6s8zm4a939dhy96n2fbkcknmsp473kfnm9mf6";
};
description = "Libretro port of Mupen64 Plus, GL only";
@ -145,12 +147,24 @@ in
buildPhase = "make WITH_DYNAREC=${if stdenv.system == "x86_64-linux" then "x86_64" else "x86"}";
};
nestopia = (mkLibRetroCore rec {
core = "nestopia";
src = fetchRetro {
repo = core;
rev = "3468f3c16c80935e8c4078a5771e9379a981989c";
sha256 = "1k9kd25z4hyna48gwxb8rkm9q402xzhw18wmgbzkf8y6zqxn50j0";
};
description = "nestopia undead libretro port";
}).override {
buildPhase = "cd libretro && make";
};
picodrive = (mkLibRetroCore rec {
core = "picodrive";
src = fetchRetro {
repo = core;
rev = "d84817550ac064fbba7ee718fb3baeda7d5546da";
sha256 = "17zh9m2v7h1cifzz8dcwqm4wn94zyhz6g85gf0aw6xylxahza627";
rev = "3f4b091194d29dd90a3cb88fd6520f677ffece65";
sha256 = "0jb89g5xmq7nzx4gm1mam1hym20fcyzp95k9as0k2gnwxrd4ymxv";
};
description = "Fast MegaDrive/MegaCD/32X emulator";
@ -164,8 +178,8 @@ in
core = "prboom";
src = fetchRetro {
repo = "libretro-" + core;
rev = "de2f0a0fab1a73a28cd501fdb9291ffc7dc357f5";
sha256 = "01gxa6hh9vijic2n44q1lndhdyw0kdpmajabs0nizn7bni51b29c";
rev = "7c5e74a8f8a973278d46604f2816aae538e9cce7";
sha256 = "1mkxc7zcyc2nj7spsrasbnz6k182g8i1snahbbwj4qi41db6cjc9";
};
description = "Prboom libretro port";
}).override {
@ -176,13 +190,25 @@ in
core = "ppsspp";
src = fetchRetro {
repo = "libretro-" + core;
rev = "6ee828171218b26e124c5e8fa7877e6ee1d5ff79";
sha256 = "1559d4k3h0a2dv3684j4w924p2dg8z2j1fwhy7w9mhb5z4kddjhk";
rev = "af5050be6b421e08be42d4edf0015693ceba1f06";
sha256 = "0h4crdq6n6npbv6sidp3bgz5g2z3ws6ikg37f0amshh3rj36p7q0";
};
description = "ppsspp libretro port";
extraBuildInputs = [ mesa ffmpeg ];
}).override{
}).override {
buildPhase = "cd libretro && make";
};
quicknes = (mkLibRetroCore rec {
core = "quicknes";
src = fetchRetro {
repo = "QuickNES_Core";
rev = "3e8935cc937d3bf64dc44b63cef5d584ec2673fa";
sha256 = "003hrxkskrkqv5h39p4gd9mg2k3ki5l1cmm0kxq7c454yliljjxc";
};
description = "QuickNES libretro port";
}).override {
buildPhase = "cd libretro && make";
};
@ -190,22 +216,34 @@ in
core = "scummvm";
src = fetchRetro {
repo = core;
rev = "c00247171ba8201614e85556c638b8825dc9f225";
sha256 = "1wir3x928b37va6gn14bmwsydkpk4afma5hppmbivw4qp8mj25pa";
rev = "0a703f6546c5a0d8ef835aa624681f7877c36df6";
sha256 = "1v1a6zvc1sjvvnvcarcmdym7qwyqyvl4b6ianjgzbpaxwmw457g0";
};
description = "Libretro port of ScummVM";
extraBuildInputs = [ fluidsynth libjpeg libvorbis mesa SDL ];
}).override {
buildPhase = "cd backends/platform/libretro/build/;make";
buildPhase = "cd backends/platform/libretro/build && make";
};
snes9x = (mkLibRetroCore rec {
core = "snes9x";
src = fetchRetro {
repo = core;
rev = "0724786eb2ed1436946a2e2b42c77cddf8412a63";
sha256 = "15wnq12mkfz766dzafhlmmh8a8b463ybssj84fhijj8c1x75scd1";
};
description = " Port of SNES9x git to libretro";
}).override {
buildPhase = "cd libretro && make";
};
snes9x-next = mkLibRetroCore rec {
core = "snes9x-next";
src = fetchRetro {
repo = core;
rev = "461d92be09e1857d215f51aeea448a8e180bbfdd";
sha256 = "0ci453qsyrv3brmy2szngis2xyvxilcv9yhc2qjz285mirg6fj57";
rev = "c701a1e4357bc80e46cae5bdfa0d359bcbce23ad";
sha256 = "0410dj7rxcadvyghc1yqwqidn1g3scm52i3gb9d8haymg9q1zbjs";
};
description = "Optimized port/rewrite of SNES9x 1.52+ to Libretro";
};
@ -214,22 +252,33 @@ in
core = "stella";
src = fetchRetro {
repo = core + "-libretro";
rev = "c7ee7ca7e8a29c986f49306c75832972f5749f72";
sha256 = "15wy9h3a2qk66lh8x40b3a9il0zkdflqil1h51zjmhq2zzsq8p95";
rev = "394ef8c10b8057fe3f92ff9d7c73886ae2eefec2";
sha256 = "1a5m157fqpspi2zafmqhcd6864dvfpwh44d4n47ngswp6ii9bq0f";
};
description = "Port of Stella to libretro";
}).override {
buildPhase = "make";
};
vba-m = (mkLibRetroCore rec {
core = "vbam";
src = fetchRetro {
repo = core + "-libretro";
rev = "26a030ce01a6473d35bac2a6db4f0a360989d72f";
sha256 = "065gljk2nijnjg2c2zbnpg25s5zam7x0z8lq7kbz9zb87sp73ha1";
};
description = "vanilla VBA-M libretro port";
}).override {
buildPhase = "cd src/libretro && make";
};
vba-next = mkLibRetroCore rec {
core = "vba-next";
src = fetchRetro {
repo = core;
rev = "fb095107f83df5f93b8ba4833eaf43901f42c0c0";
sha256 = "0fvq1dfll27vjbmyh4qsp2nw166jsd91sjmf1sl84z56ab3q3iw8";
rev = "136fe2020e941f27036754dd0524bfec750025dc";
sha256 = "17bvx2wp2r5lkgffvqrirhgic1bfy39m7c1v74z245hg6z1jvqcf";
};
description = "VBA-M libretro port";
description = "VBA-M libretro port with modifications for speed";
};
}

View File

@ -1,31 +1,31 @@
{ stdenv, fetchgit, pkgconfig, which
, SDL, mesa, alsaLib
, libXxf86vm, libXinerama, libXv
}:
{ stdenv, fetchgit, pkgconfig, ffmpeg, mesa, nvidia_cg_toolkit
, freetype, libxml2, libv4l, coreutils, python34, which, udev, alsaLib
, libX11, libXext, libXxf86vm, libXdmcp, SDL, pulseaudio ? null }:
stdenv.mkDerivation rec {
name = "retroarch-bare-0.9.9.7";
name = "retroarch-bare-${version}";
version = "20141009";
src = fetchgit {
url = "https://github.com/libretro/RetroArch.git";
rev = "ea0c4880556e0f9d1fe8253ddc713bc743b00e1b";
sha256 = "1jhyh7f8ijy67fxslxqsp8pjl2lwayjljp06hp4n5cn33yajpbd7";
url = git://github.com/libretro/RetroArch.git;
rev = "72f26dfb49f236294c52eb9cb4c9d5c15da4837a";
sha256 = "0dn9fh1frnbxykhw3q229ck50a800p8r4va8nssfcdxh8cys385w";
};
buildInputs = [
pkgconfig which SDL mesa alsaLib
libXxf86vm libXinerama libXv
];
buildInputs = [ pkgconfig ffmpeg mesa nvidia_cg_toolkit freetype libxml2 libv4l coreutils
python34 which udev alsaLib libX11 libXext libXxf86vm libXdmcp SDL pulseaudio ];
preConfigure = ''
configureFlags="--global-config-dir=$out/etc"
patchPhase = ''
export GLOBAL_CONFIG_DIR=$out/etc
sed -e 's#/bin/true#${coreutils}/bin/true#' -i qb/qb.libs.sh
'';
meta = {
description = "Modular multi-system game/emulator system";
homepage = "http://www.libretro.com/";
license = stdenv.lib.licenses.gpl3Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ iyzsong ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = http://libretro.org/;
description = "Multi-platform emulator frontend for libretro cores";
license = licenses.gpl3;
maintainers = with maintainers; [ MP2E ];
};
}

View File

@ -1,31 +0,0 @@
{ stdenv, fetchgit, pkgconfig, ffmpeg, mesa, nvidia_cg_toolkit
, freetype, libxml2, libv4l, coreutils, python34, which, udev, alsaLib
, libX11, libXext, libXxf86vm, libXdmcp, SDL, pulseaudio ? null }:
stdenv.mkDerivation rec {
name = "retroarch-bare-${version}";
version = "20140902";
src = fetchgit {
url = git://github.com/libretro/RetroArch.git;
rev = "0856091296c2e47409f36e13007805d71db69483";
sha256 = "152dfp6jd7yzvasqrqw4ydjbdcwq4khisia2dax3gydvxkq87nl4";
};
buildInputs = [ pkgconfig ffmpeg mesa nvidia_cg_toolkit freetype libxml2 libv4l coreutils
python34 which udev alsaLib libX11 libXext libXxf86vm libXdmcp SDL pulseaudio ];
patchPhase = ''
export GLOBAL_CONFIG_DIR=$out/etc
sed -e 's#/bin/true#${coreutils}/bin/true#' -i qb/qb.libs.sh
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = http://libretro.org/;
description = "Multi-platform emulator frontend for libretro cores";
license = licenses.gpl3;
maintainers = with maintainers; [ MP2E ];
};
}

View File

@ -10670,13 +10670,17 @@ let
++ optional (cfg.enableGambatte or false) gambatte
++ optional (cfg.enableGenesisPlusGX or false) genesis-plus-gx
++ optional (cfg.enableMupen64Plus or false) mupen64plus
++ optional (cfg.enableNestopia or false) nestopia
++ optional (cfg.enablePicodrive or false) picodrive
++ optional (cfg.enablePrboom or false) prboom
++ optional (cfg.enablePPSSPP or false) ppsspp
++ optional (cfg.enableQuickNES or false) quicknes
++ optional (cfg.enableScummVM or false) scummvm
++ optional (cfg.enableSnes9x or false) snes9x
++ optional (cfg.enableSnes9xNext or false) snes9x-next
++ optional (cfg.enableStella or false) stella
++ optional (cfg.enableVbaNext or false) vba-next
++ optional (cfg.enableVbaM or false) vba-m
);
wrapRetroArch = { retroarch }: import ../misc/emulators/retroarch/wrapper.nix {
@ -12053,12 +12057,10 @@ let
retroarchBare = callPackage ../misc/emulators/retroarch { };
retroarchBareMaster = callPackage ../misc/emulators/retroarch/master.nix { };
retroarch = wrapRetroArch { retroarch = retroarchBareMaster; };
retroarch = wrapRetroArch { retroarch = retroarchBare; };
libretro = recurseIntoAttrs (callPackage ../misc/emulators/retroarch/cores.nix {
retroarch = retroarchBareMaster;
retroarch = retroarchBare;
});
rssglx = callPackage ../misc/screensavers/rss-glx { };