2021-11-15 17:07:07 +00:00
|
|
|
{ lib
|
|
|
|
, stdenv
|
|
|
|
, SDL
|
|
|
|
, alsa-lib
|
|
|
|
, boost
|
|
|
|
, buildPackages
|
|
|
|
, cmake
|
|
|
|
, curl
|
|
|
|
, fetchFromGitHub
|
|
|
|
, fetchpatch
|
|
|
|
, ffmpeg
|
|
|
|
, fluidsynth
|
|
|
|
, gettext
|
|
|
|
, hexdump
|
|
|
|
, hidapi
|
|
|
|
, icu
|
|
|
|
, libGL
|
|
|
|
, libGLU
|
|
|
|
, libevdev
|
|
|
|
, libjpeg
|
|
|
|
, libpcap
|
|
|
|
, libpng
|
|
|
|
, libvorbis
|
|
|
|
, libzip
|
|
|
|
, makeWrapper
|
|
|
|
, nasm
|
|
|
|
, openssl
|
|
|
|
, pcre
|
|
|
|
, pkg-config
|
|
|
|
, portaudio
|
|
|
|
, python27
|
|
|
|
, python3
|
|
|
|
, retroarch
|
|
|
|
, sfml
|
|
|
|
, snappy
|
|
|
|
, udev
|
|
|
|
, which
|
|
|
|
, xorg
|
|
|
|
, zlib
|
|
|
|
}:
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
|
|
|
|
let
|
2021-11-15 17:07:07 +00:00
|
|
|
d2u = lib.replaceChars [ "-" ] [ "_" ];
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
hashesFile = builtins.fromJSON (builtins.readFile ./hashes.json);
|
|
|
|
|
|
|
|
getCoreSrc = core:
|
|
|
|
fetchFromGitHub (builtins.getAttr core hashesFile);
|
|
|
|
|
2021-11-15 17:07:07 +00:00
|
|
|
mkLibRetroCore =
|
|
|
|
{ core
|
|
|
|
, description
|
|
|
|
, license
|
2021-11-17 14:06:26 +00:00
|
|
|
, src ? null
|
2021-11-15 17:07:07 +00:00
|
|
|
, broken ? false
|
|
|
|
, version ? "unstable-2021-11-16"
|
|
|
|
, ...
|
|
|
|
}@args:
|
2021-11-17 14:06:26 +00:00
|
|
|
lib.makeOverridable stdenv.mkDerivation (
|
|
|
|
let
|
|
|
|
finalSrc = if src == null then getCoreSrc core else src;
|
|
|
|
in
|
|
|
|
(rec {
|
|
|
|
pname = "libretro-${core}";
|
|
|
|
inherit version;
|
|
|
|
src = finalSrc;
|
|
|
|
|
|
|
|
buildInputs = [ zlib ] ++ args.extraBuildInputs or [ ];
|
|
|
|
nativeBuildInputs = [ makeWrapper ] ++ args.extraNativeBuildInputs or [ ];
|
|
|
|
|
|
|
|
makefile = "Makefile.libretro";
|
|
|
|
makeFlags = [
|
|
|
|
"platform=${{
|
|
|
|
linux = "unix";
|
|
|
|
darwin = "osx";
|
|
|
|
windows = "win";
|
|
|
|
}.${stdenv.hostPlatform.parsed.kernel.name} or stdenv.hostPlatform.parsed.kernel.name}"
|
|
|
|
"ARCH=${{
|
|
|
|
armv7l = "arm";
|
|
|
|
armv6l = "arm";
|
|
|
|
i686 = "x86";
|
|
|
|
}.${stdenv.hostPlatform.parsed.cpu.name} or stdenv.hostPlatform.parsed.cpu.name}"
|
|
|
|
] ++ (args.makeFlags or [ ]);
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
COREDIR="$out/lib/retroarch/cores"
|
|
|
|
mkdir -p $out/bin
|
|
|
|
mkdir -p $COREDIR
|
|
|
|
mv ${d2u args.core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $COREDIR
|
|
|
|
makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
|
|
|
|
--add-flags "-L $COREDIR/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
|
|
|
|
'';
|
|
|
|
|
|
|
|
passthru = {
|
|
|
|
inherit core;
|
|
|
|
libretroCore = "/lib/retroarch/cores";
|
|
|
|
};
|
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
inherit broken description license;
|
|
|
|
homepage = "https://www.libretro.com/";
|
|
|
|
maintainers = with maintainers; [ edwtjo hrdinka MP2E ];
|
|
|
|
platforms = platforms.unix;
|
|
|
|
};
|
|
|
|
}) // builtins.removeAttrs args [ "core" "src" "description" "license" "makeFlags" ]
|
|
|
|
);
|
2021-11-15 17:07:07 +00:00
|
|
|
in
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
{
|
2021-11-17 14:06:26 +00:00
|
|
|
atari800 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "atari800";
|
|
|
|
description = "Port of Atari800 to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
makeFlags = [ "GIT_VERSION=" ];
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2020-03-22 02:54:01 +00:00
|
|
|
beetle-snes = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mednafen-snes";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-snes";
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of Mednafen's SNES core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2020-03-22 02:54:01 +00:00
|
|
|
beetle-gba = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mednafen-gba";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-gba";
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of Mednafen's GameBoy Advance core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2020-03-22 02:54:01 +00:00
|
|
|
beetle-lynx = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mednafen-lynx";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-lynx";
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of Mednafen's Lynx core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2020-03-22 02:54:01 +00:00
|
|
|
beetle-ngp = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mednafen-ngp";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-ngp";
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of Mednafen's NeoGeo Pocket core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
beetle-pce-fast = mkLibRetroCore {
|
|
|
|
core = "mednafen-pce-fast";
|
|
|
|
src = getCoreSrc "beetle-pce-fast";
|
|
|
|
description = "Port of Mednafen's PC Engine core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2021-11-17 12:56:08 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
2019-11-07 16:29:26 +00:00
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
beetle-pcfx = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mednafen-pcfx";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-pcfx";
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of Mednafen's PCFX core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
2017-02-25 15:14:35 +00:00
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
beetle-psx = mkLibRetroCore {
|
2017-02-25 15:14:35 +00:00
|
|
|
core = "mednafen-psx";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-psx";
|
2017-02-25 15:14:35 +00:00
|
|
|
description = "Port of Mednafen's PSX Engine core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
makeFlags = [ "HAVE_HW=0" "HAVE_LIGHTREC=1" ];
|
2021-11-17 12:56:08 +00:00
|
|
|
};
|
2017-02-25 15:14:35 +00:00
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
beetle-psx-hw = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "mednafen-psx-hw";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-psx";
|
2020-03-15 05:48:14 +00:00
|
|
|
description = "Port of Mednafen's PSX Engine (with HW accel) core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
extraBuildInputs = [ libGL libGLU ];
|
|
|
|
makefile = "Makefile";
|
|
|
|
makeFlags = [ "HAVE_VULKAN=1" "HAVE_OPENGL=1" "HAVE_HW=1" "HAVE_LIGHTREC=1" ];
|
2021-11-17 12:56:08 +00:00
|
|
|
};
|
2020-03-15 05:48:14 +00:00
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
beetle-saturn = mkLibRetroCore {
|
2017-02-25 15:14:35 +00:00
|
|
|
core = "mednafen-saturn";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-saturn";
|
2020-03-15 05:48:14 +00:00
|
|
|
description = "Port of Mednafen's Saturn core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
makeFlags = [ "HAVE_HW=0" ];
|
|
|
|
meta.platforms = [ "x86_64-linux" "aarch64-linux" ];
|
2021-11-17 12:56:08 +00:00
|
|
|
};
|
2020-03-15 05:48:14 +00:00
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
beetle-saturn-hw = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "mednafen-saturn-hw";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-saturn";
|
2017-02-25 15:14:35 +00:00
|
|
|
description = "Port of Mednafen's Saturn core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
extraBuildInputs = [ libGL libGLU ];
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
makeFlags = [ "HAVE_OPENGL=1" "HAVE_HW=1" ];
|
2019-11-02 11:16:10 +00:00
|
|
|
meta.platforms = [ "x86_64-linux" "aarch64-linux" ];
|
2021-11-17 12:56:08 +00:00
|
|
|
};
|
2019-11-07 16:29:26 +00:00
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
beetle-supergrafx = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mednafen-supergrafx";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-supergrafx";
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of Mednafen's SuperGrafx core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
beetle-wswan = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mednafen-wswan";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-wswan";
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of Mednafen's WonderSwan core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
beetle-vb = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mednafen-vb";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "beetle-vb";
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of Mednafen's VirtualBoy core to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
bluemsx = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "bluemsx";
|
|
|
|
description = "Port of BlueMSX to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2017-02-25 15:14:35 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 12:56:08 +00:00
|
|
|
bsnes-mercury = mkLibRetroCore {
|
|
|
|
core = "bsnes-mercury-accuracy";
|
|
|
|
src = getCoreSrc "bsnes-mercury";
|
|
|
|
description = "Fork of bsnes with HLE DSP emulation restored";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2021-11-17 12:56:08 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
makeFlags = [ "PROFILE=accuracy" ];
|
|
|
|
};
|
2020-03-15 05:48:14 +00:00
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
citra = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "citra";
|
2021-11-16 19:45:43 +00:00
|
|
|
# `nix-prefetch-github` doesn't support `deepClone`, necessary for citra
|
|
|
|
# https://github.com/seppeljordan/nix-prefetch-github/issues/41
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
inherit (hashesFile.citra) owner repo rev fetchSubmodules;
|
|
|
|
deepClone = true;
|
|
|
|
sha256 = "sha256-bwnYkMvbtRF5bGZRYVtMWxnCu9P45qeX4+ntOj9eRds=";
|
|
|
|
};
|
2020-03-15 05:48:14 +00:00
|
|
|
description = "Port of Citra to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Plus;
|
2021-01-17 02:30:45 +00:00
|
|
|
extraNativeBuildInputs = [ cmake pkg-config ];
|
2020-03-22 02:54:01 +00:00
|
|
|
extraBuildInputs = [ libGLU libGL boost ];
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
cmakeFlags = [
|
|
|
|
"-DENABLE_LIBRETRO=ON"
|
|
|
|
"-DENABLE_QT=OFF"
|
|
|
|
"-DENABLE_SDL2=OFF"
|
|
|
|
"-DENABLE_WEB_SERVICE=OFF"
|
|
|
|
"-DENABLE_DISCORD_PRESENCE=OFF"
|
|
|
|
];
|
|
|
|
preConfigure = "sed -e '77d' -i externals/cmake-modules/GetGitRevisionDescription.cmake";
|
|
|
|
postBuild = "cd src/citra_libretro";
|
2014-09-19 21:42:41 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
desmume = mkLibRetroCore {
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
core = "desmume";
|
|
|
|
description = "libretro wrapper for desmume NDS emulator";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Plus;
|
2019-11-07 20:31:41 +00:00
|
|
|
extraBuildInputs = [ libpcap libGLU libGL xorg.libX11 ];
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd desmume/src/frontend/libretro";
|
2021-01-15 13:21:58 +00:00
|
|
|
makeFlags = lib.optional stdenv.hostPlatform.isAarch32 "platform=armv-unix"
|
2021-11-15 17:07:07 +00:00
|
|
|
++ lib.optional (!stdenv.hostPlatform.isx86) "DESMUME_JIT=0";
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
desmume2015 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "desmume2015";
|
|
|
|
description = "libretro wrapper for desmume NDS emulator from 2015";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Plus;
|
2019-11-07 20:31:41 +00:00
|
|
|
extraBuildInputs = [ libpcap libGLU libGL xorg.libX11 ];
|
2021-01-15 13:21:58 +00:00
|
|
|
makeFlags = lib.optional stdenv.hostPlatform.isAarch32 "platform=armv-unix"
|
2021-11-15 17:07:07 +00:00
|
|
|
++ lib.optional (!stdenv.hostPlatform.isx86) "DESMUME_JIT=0";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd desmume";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
dolphin = mkLibRetroCore {
|
2017-06-04 09:10:14 +01:00
|
|
|
core = "dolphin";
|
|
|
|
description = "Port of Dolphin to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Plus;
|
2017-06-04 09:10:14 +01:00
|
|
|
|
2021-01-17 02:30:45 +00:00
|
|
|
extraNativeBuildInputs = [ cmake curl pkg-config ];
|
2017-06-04 09:10:14 +01:00
|
|
|
extraBuildInputs = [
|
2021-11-15 17:07:07 +00:00
|
|
|
libGLU
|
|
|
|
libGL
|
|
|
|
pcre
|
|
|
|
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 ]);
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2017-06-04 09:10:14 +01:00
|
|
|
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"
|
2019-11-07 16:29:26 +00:00
|
|
|
"-DUSE_DISCORD_PRESENCE=OFF"
|
2017-06-04 09:10:14 +01:00
|
|
|
];
|
2020-03-22 02:54:01 +00:00
|
|
|
dontUseCmakeBuildDir = true;
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
dosbox = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "dosbox";
|
|
|
|
description = "Port of DOSBox to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2017-06-04 09:10:14 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
eightyone = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "81";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "eightyone";
|
2020-03-15 05:48:14 +00:00
|
|
|
description = "Port of EightyOne to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
fbalpha2012 = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "fbalpha2012";
|
|
|
|
description = "Port of Final Burn Alpha ~2012 to libretro";
|
|
|
|
license = "Non-commercial";
|
|
|
|
makefile = "makefile.libretro";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd svn-current/trunk";
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
fbneo = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "fbneo";
|
|
|
|
description = "Port of FBNeo to libretro";
|
2018-03-02 00:11:16 +00:00
|
|
|
license = "Non-commercial";
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
postPatch = ''
|
|
|
|
sed -i -e 's:-Wall:-Wall -Wno-format-security:g' src/burner/libretro/Makefile
|
2014-09-19 21:42:41 +01:00
|
|
|
'';
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd src/burner/libretro";
|
2020-03-15 05:48:14 +00:00
|
|
|
makeFlags = [ "USE_EXPERIMENTAL_FLAGS=1" ];
|
2014-09-19 21:42:41 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
fceumm = mkLibRetroCore {
|
2015-11-20 14:49:45 +00:00
|
|
|
core = "fceumm";
|
|
|
|
description = "FCEUmm libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2015-11-20 14:49:45 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
flycast = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "flycast";
|
|
|
|
description = "Flycast libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-07 16:29:26 +00:00
|
|
|
extraBuildInputs = [ libGL libGLU ];
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2021-01-15 13:21:58 +00:00
|
|
|
makeFlags = lib.optional stdenv.hostPlatform.isAarch64 [ "platform=arm64" ];
|
2020-03-15 05:48:14 +00:00
|
|
|
meta.platforms = [ "aarch64-linux" "x86_64-linux" ];
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
fmsx = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "fmsx";
|
|
|
|
description = "FMSX libretro port";
|
2020-03-22 02:54:01 +00:00
|
|
|
license = "Non-commercial";
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
freeintv = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "freeintv";
|
|
|
|
description = "FreeIntv libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
gambatte = mkLibRetroCore {
|
2014-09-19 21:42:41 +01:00
|
|
|
core = "gambatte";
|
|
|
|
description = "Gambatte libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2014-09-19 21:42:41 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
genesis-plus-gx = mkLibRetroCore {
|
2014-09-19 21:42:41 +01:00
|
|
|
core = "genesis-plus-gx";
|
|
|
|
description = "Enhanced Genesis Plus libretro port";
|
2018-03-02 00:11:16 +00:00
|
|
|
license = "Non-commercial";
|
2014-09-19 21:42:41 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
gpsp = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "gpsp";
|
|
|
|
description = "Port of gpSP to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
gw = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "gw";
|
|
|
|
description = "Port of Game and Watch to libretro";
|
2021-01-15 13:21:58 +00:00
|
|
|
license = lib.licenses.zlib;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
handy = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "handy";
|
|
|
|
description = "Port of Handy to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.zlib;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
hatari = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "hatari";
|
|
|
|
description = "Port of Hatari to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-22 02:54:01 +00:00
|
|
|
extraBuildInputs = [ SDL zlib ];
|
|
|
|
extraNativeBuildInputs = [ cmake which ];
|
|
|
|
dontUseCmakeConfigure = true;
|
2020-03-15 05:48:14 +00:00
|
|
|
dontConfigure = true;
|
2020-03-22 02:54:01 +00:00
|
|
|
makeFlags = [ "EXTERNAL_ZLIB=1" ];
|
|
|
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
2014-09-19 21:42:41 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mame = mkLibRetroCore {
|
2016-02-26 10:18:02 +00:00
|
|
|
core = "mame";
|
|
|
|
description = "Port of MAME to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = with lib.licenses; [ bsd3 gpl2Plus ];
|
2016-02-26 10:18:02 +00:00
|
|
|
|
2021-11-15 17:07:07 +00:00
|
|
|
extraBuildInputs = [ alsa-lib libGLU libGL portaudio python3 xorg.libX11 ];
|
2017-11-29 10:53:01 +00:00
|
|
|
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
|
|
|
|
'';
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile.libretro";
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mame2000 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mame2000";
|
|
|
|
description = "Port of MAME ~2000 to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = "MAME";
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2021-01-15 13:21:58 +00:00
|
|
|
makeFlags = lib.optional (!stdenv.hostPlatform.isx86) "IS_X86=0";
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mame2003 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mame2003";
|
|
|
|
description = "Port of MAME ~2003 to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = "MAME";
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mame2003-plus = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mame2003-plus";
|
|
|
|
description = "Port of MAME ~2003+ to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = "MAME";
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mame2010 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mame2010";
|
|
|
|
description = "Port of MAME ~2010 to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = "MAME";
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2021-01-15 13:21:58 +00:00
|
|
|
makeFlags = lib.optionals stdenv.hostPlatform.isAarch64 [ "PTR64=1" "ARM_ENABLED=1" "X86_SH2DRC=0" "FORCE_DRC_C_BACKEND=1" ];
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mame2015 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mame2015";
|
|
|
|
description = "Port of MAME ~2015 to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = "MAME";
|
2020-03-22 02:54:01 +00:00
|
|
|
extraNativeBuildInputs = [ python27 ];
|
2021-06-10 03:57:09 +01:00
|
|
|
extraBuildInputs = [ alsa-lib ];
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mame2016 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mame2016";
|
2020-10-28 16:03:22 +00:00
|
|
|
patches = [
|
|
|
|
(fetchpatch {
|
|
|
|
name = "fix_mame_build_on_make-4.3.patch";
|
|
|
|
url = "https://github.com/libretro/mame2016-libretro/commit/5874fae3d124f5e7c8a91634f5473a8eac902e47.patch";
|
|
|
|
sha256 = "061f1lcm72glksf475ikl8w10pnbgqa7049ylw06nikis2qdjlfn";
|
|
|
|
})
|
|
|
|
];
|
2019-11-02 11:16:10 +00:00
|
|
|
description = "Port of MAME ~2016 to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = with lib.licenses; [ bsd3 gpl2Plus ];
|
2020-03-22 02:54:01 +00:00
|
|
|
extraNativeBuildInputs = [ python27 ];
|
2021-06-10 03:57:09 +01:00
|
|
|
extraBuildInputs = [ alsa-lib ];
|
2019-11-02 11:16:10 +00:00
|
|
|
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
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mesen = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mesen";
|
|
|
|
description = "Port of Mesen to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd Libretro";
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
meteor = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "meteor";
|
|
|
|
description = "Port of Meteor to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd libretro";
|
2017-02-11 12:49:33 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
mgba = mkLibRetroCore {
|
2017-02-10 11:03:14 +00:00
|
|
|
core = "mgba";
|
|
|
|
description = "Port of mGBA to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.mpl20;
|
2017-02-10 11:03:14 +00:00
|
|
|
};
|
|
|
|
|
2020-03-22 02:54:01 +00:00
|
|
|
mupen64plus = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "mupen64plus-next";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "mupen64plus";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
description = "Libretro port of Mupen64 Plus, GL only";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
|
2019-11-07 20:31:41 +00:00
|
|
|
extraBuildInputs = [ libGLU libGL libpng nasm xorg.libX11 ];
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
neocd = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "neocd";
|
|
|
|
description = "NeoCD libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.lgpl3Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
nestopia = mkLibRetroCore {
|
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
2014-10-10 04:11:54 +01:00
|
|
|
core = "nestopia";
|
2020-03-15 05:48:14 +00:00
|
|
|
description = "Nestopia libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd libretro";
|
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
2014-10-10 04:11:54 +01:00
|
|
|
};
|
2019-11-07 16:29:26 +00:00
|
|
|
|
2020-04-08 16:41:37 +01:00
|
|
|
np2kai = mkLibRetroCore rec {
|
|
|
|
core = "np2kai";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc core;
|
2020-04-08 16:41:37 +01:00
|
|
|
description = "Neko Project II kai libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.mit;
|
2020-04-08 16:41:37 +01:00
|
|
|
makefile = "Makefile.libretro";
|
2021-11-15 17:07:07 +00:00
|
|
|
makeFlags = [
|
|
|
|
# See https://github.com/AZO234/NP2kai/tags
|
|
|
|
"NP2KAI_VERSION=rev.22"
|
|
|
|
"NP2KAI_HASH=${src.rev}"
|
|
|
|
];
|
|
|
|
preBuild = "cd sdl";
|
2020-04-08 16:41:37 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
o2em = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "o2em";
|
|
|
|
description = "Port of O2EM to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.artistic1;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
opera = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "opera";
|
|
|
|
description = "Opera is a port of 4DO/libfreedo to libretro";
|
|
|
|
license = "Non-commercial";
|
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
makeFlags = [ "CC_PREFIX=${stdenv.cc.targetPrefix}" ];
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
2019-11-07 16:29:26 +00:00
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
parallel-n64 = mkLibRetroCore {
|
2017-06-07 22:30:40 +01:00
|
|
|
core = "parallel-n64";
|
|
|
|
description = "Parallel Mupen64plus rewrite for libretro.";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2019-11-07 20:31:41 +00:00
|
|
|
extraBuildInputs = [ libGLU libGL libpng ];
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2021-01-15 13:21:58 +00:00
|
|
|
postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
|
2020-03-15 05:48:14 +00:00
|
|
|
sed -i -e '1 i\CPUFLAGS += -DARM_FIX -DNO_ASM -DARM_ASM -DDONT_WANT_ARM_OPTIMIZATIONS -DARM64' Makefile \
|
|
|
|
&& sed -i -e 's,CPUFLAGS :=,,g' Makefile
|
|
|
|
'';
|
2017-06-07 22:30:40 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
pcsx_rearmed = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "pcsx_rearmed";
|
2020-03-15 05:48:14 +00:00
|
|
|
description = "Port of PCSX ReARMed with GNU lightning to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
dontConfigure = true;
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
2019-11-07 16:29:26 +00:00
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
picodrive = mkLibRetroCore {
|
2014-09-19 21:42:41 +01:00
|
|
|
core = "picodrive";
|
|
|
|
description = "Fast MegaDrive/MegaCD/32X emulator";
|
2018-03-02 00:11:16 +00:00
|
|
|
license = "MAME";
|
2014-09-19 21:42:41 +01:00
|
|
|
|
|
|
|
extraBuildInputs = [ libpng SDL ];
|
2020-03-22 02:54:01 +00:00
|
|
|
SDL_CONFIG = "${SDL.dev}/bin/sdl-config";
|
|
|
|
dontAddPrefix = true;
|
2021-11-15 17:07:07 +00:00
|
|
|
configurePlatforms = [ ];
|
2021-01-15 13:21:58 +00:00
|
|
|
makeFlags = lib.optional stdenv.hostPlatform.isAarch64 [ "platform=aarch64" ];
|
2014-09-19 21:42:41 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
play = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "play";
|
|
|
|
description = "Port of Play! to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.bsd2;
|
2020-03-22 02:54:01 +00:00
|
|
|
extraBuildInputs = [ boost ];
|
|
|
|
extraNativeBuildInputs = [ cmake openssl curl icu libGL libGLU xorg.libX11 ];
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2019-11-02 11:16:10 +00:00
|
|
|
cmakeFlags = [ "-DBUILD_PLAY=OFF -DBUILD_LIBRETRO_CORE=ON" ];
|
2020-03-15 05:48:14 +00:00
|
|
|
postBuild = "mv Source/ui_libretro/play_libretro${stdenv.hostPlatform.extensions.sharedLibrary} play_libretro${stdenv.hostPlatform.extensions.sharedLibrary}";
|
2021-11-15 17:07:07 +00:00
|
|
|
broken = true; # since 2021-01-03
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
ppsspp = mkLibRetroCore {
|
2015-11-20 14:49:45 +00:00
|
|
|
core = "ppsspp";
|
|
|
|
description = "ppsspp libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Plus;
|
2021-05-20 22:51:05 +01:00
|
|
|
extraNativeBuildInputs = [ cmake pkg-config python3 ];
|
|
|
|
extraBuildInputs = [ libGLU libGL libzip ffmpeg snappy xorg.libX11 ];
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
cmakeFlags = [ "-DLIBRETRO=ON -DUSE_SYSTEM_FFMPEG=ON -DUSE_SYSTEM_SNAPPY=ON -DUSE_SYSTEM_LIBZIP=ON -DOpenGL_GL_PREFERENCE=GLVND" ];
|
|
|
|
postBuild = "mv lib/ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary}";
|
2014-09-19 21:42:41 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
prboom = mkLibRetroCore {
|
2015-11-20 14:49:45 +00:00
|
|
|
core = "prboom";
|
|
|
|
description = "Prboom libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
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
2014-10-10 04:11:54 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
prosystem = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "prosystem";
|
|
|
|
description = "Port of ProSystem to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2014-09-19 21:42:41 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
quicknes = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "quicknes";
|
|
|
|
description = "QuickNES libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.lgpl21Plus;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
sameboy = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "sameboy";
|
|
|
|
description = "SameBoy libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.mit;
|
2020-03-22 02:54:01 +00:00
|
|
|
extraNativeBuildInputs = [ which hexdump ];
|
|
|
|
preBuild = "cd libretro";
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2017-02-10 11:11:29 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
scummvm = mkLibRetroCore {
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
core = "scummvm";
|
|
|
|
description = "Libretro port of ScummVM";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-07 20:31:41 +00:00
|
|
|
extraBuildInputs = [ fluidsynth libjpeg libvorbis libGLU libGL SDL ];
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
preConfigure = "cd backends/platform/libretro/build";
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
smsplus-gx = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "smsplus";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "smsplus-gx";
|
2020-03-15 05:48:14 +00:00
|
|
|
description = "SMS Plus GX libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Plus;
|
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
2014-10-10 04:11:54 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
snes9x = mkLibRetroCore {
|
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
2014-10-10 04:11:54 +01:00
|
|
|
core = "snes9x";
|
2015-11-20 14:49:45 +00:00
|
|
|
description = "Port of SNES9x git to libretro";
|
2018-03-02 00:11:16 +00:00
|
|
|
license = "Non-commercial";
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd libretro";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
snes9x2002 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "snes9x2002";
|
|
|
|
description = "Optimized port/rewrite of SNES9x 1.39 to Libretro";
|
|
|
|
license = "Non-commercial";
|
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
snes9x2005 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "snes9x2005";
|
|
|
|
description = "Optimized port/rewrite of SNES9x 1.43 to Libretro";
|
|
|
|
license = "Non-commercial";
|
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
makeFlags = [ "USE_BLARGG_APU=1" ];
|
|
|
|
postBuild = "mv snes9x2005_plus_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x2005_libretro${stdenv.hostPlatform.extensions.sharedLibrary}";
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
snes9x2010 = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "snes9x2010";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
description = "Optimized port/rewrite of SNES9x 1.52+ to Libretro";
|
2018-03-02 00:11:16 +00:00
|
|
|
license = "Non-commercial";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
stella = mkLibRetroCore {
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
core = "stella";
|
2020-03-15 05:48:14 +00:00
|
|
|
description = "Port of Stella to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2021-01-17 02:30:45 +00:00
|
|
|
extraBuildInputs = [ libpng pkg-config SDL ];
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd src/libretro";
|
|
|
|
dontConfigure = true;
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
stella2014 = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "stella2014";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
description = "Port of Stella to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-15 05:48:14 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
tgbdual = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "tgbdual";
|
|
|
|
description = "Port of TGBDual to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
thepowdertoy = mkLibRetroCore {
|
2021-04-20 01:19:36 +01:00
|
|
|
core = "thepowdertoy";
|
|
|
|
description = "Port of The Powder Toy to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2021-04-20 01:19:36 +01:00
|
|
|
extraNativeBuildInputs = [ cmake ];
|
|
|
|
makefile = "Makefile";
|
|
|
|
postBuild = "cd src/";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
tic80 = mkLibRetroCore {
|
2020-03-15 05:48:14 +00:00
|
|
|
core = "tic80";
|
|
|
|
description = "Port of TIC-80 to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.mit;
|
2021-11-15 17:07:07 +00:00
|
|
|
extraNativeBuildInputs = [ cmake pkg-config libGL libGLU ];
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
cmakeFlags = [
|
|
|
|
"-DBUILD_LIBRETRO=ON"
|
|
|
|
"-DBUILD_DEMO_CARTS=OFF"
|
|
|
|
"-DBUILD_PRO=OFF"
|
|
|
|
"-DBUILD_PLAYER=OFF"
|
|
|
|
"-DBUILD_SDL=OFF"
|
|
|
|
"-DBUILD_SOKOL=OFF"
|
|
|
|
];
|
|
|
|
postBuild = "cd lib";
|
libretro-cores:
- adding: 4do, desmume, fceumm, mame, mupen64plus, scummvm,
snes9x, stella, picodrive, ppsspp and vba
retroarch:
- added retroarch wrapper for configured cores
- changed attributes, old retroarch is now retroarchBare*
2014-08-26 18:32:35 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
vba-next = mkLibRetroCore {
|
2015-11-20 14:49:45 +00:00
|
|
|
core = "vba-next";
|
|
|
|
description = "VBA-M libretro port with modifications for speed";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2015-11-20 14:49:45 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
vba-m = mkLibRetroCore {
|
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
2014-10-10 04:11:54 +01:00
|
|
|
core = "vbam";
|
2021-11-15 17:07:07 +00:00
|
|
|
src = getCoreSrc "vba-m";
|
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
2014-10-10 04:11:54 +01:00
|
|
|
description = "vanilla VBA-M libretro port";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd src/libretro";
|
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
2014-10-10 04:11:54 +01:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
vecx = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "vecx";
|
|
|
|
description = "Port of Vecx to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2021-11-15 17:07:07 +00:00
|
|
|
extraBuildInputs = [ libGL libGLU ];
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
virtualjaguar = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "virtualjaguar";
|
|
|
|
description = "Port of VirtualJaguar to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl3Only;
|
2019-11-02 11:16:10 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
};
|
|
|
|
|
2021-11-17 14:06:26 +00:00
|
|
|
yabause = mkLibRetroCore {
|
2019-11-02 11:16:10 +00:00
|
|
|
core = "yabause";
|
|
|
|
description = "Port of Yabause to libretro";
|
2021-11-17 14:52:40 +00:00
|
|
|
license = lib.licenses.gpl2Only;
|
2020-03-15 05:48:14 +00:00
|
|
|
makefile = "Makefile";
|
|
|
|
# Disable SSE for non-x86. DYNAREC doesn't build on either Aarch64 or x86_64.
|
2021-01-15 13:21:58 +00:00
|
|
|
makeFlags = lib.optional (!stdenv.hostPlatform.isx86) "HAVE_SSE=0";
|
2020-03-22 02:54:01 +00:00
|
|
|
preBuild = "cd yabause/src/libretro";
|
2019-11-02 11:16:10 +00:00
|
|
|
};
|
2014-10-28 09:08:43 +00:00
|
|
|
}
|