From e39bf7a7043a466761754c423b3d5783a320a6ce Mon Sep 17 00:00:00 2001 From: Cray Elliott Date: Thu, 9 Oct 2014 20:11:54 -0700 Subject: [PATCH] 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 --- pkgs/misc/emulators/retroarch/cores.nix | 123 +++++++++++++++------- pkgs/misc/emulators/retroarch/default.nix | 40 +++---- pkgs/misc/emulators/retroarch/master.nix | 31 ------ pkgs/top-level/all-packages.nix | 10 +- 4 files changed, 112 insertions(+), 92 deletions(-) delete mode 100644 pkgs/misc/emulators/retroarch/master.nix diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix index db412eb883d..a371e5ab771 100644 --- a/pkgs/misc/emulators/retroarch/cores.nix +++ b/pkgs/misc/emulators/retroarch/cores.nix @@ -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"; }; - } \ No newline at end of file diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix index d110f2b789e..616fab44d6f 100644 --- a/pkgs/misc/emulators/retroarch/default.nix +++ b/pkgs/misc/emulators/retroarch/default.nix @@ -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 ]; }; } diff --git a/pkgs/misc/emulators/retroarch/master.nix b/pkgs/misc/emulators/retroarch/master.nix deleted file mode 100644 index 2efb43e5d5e..00000000000 --- a/pkgs/misc/emulators/retroarch/master.nix +++ /dev/null @@ -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 ]; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9287b0eb310..a9f3c1cc84c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { };