XBMC AdvancedLauncher RetroArch launchers.
These are wrappers for retroarch wrappers, they are needed since launching a process from XBMC(as a display manager and probably otherwise), using AdvancedLauncher, results in it and it's parent recieving the same gamepad input. These wrappers will produce no sound on XBMC and AdvancedLauncher setups not using a sound daemon, since XBMC gets paused while still holding onto the sound device.
This commit is contained in:
parent
bee638d269
commit
9d93f9bcda
@ -24,7 +24,10 @@ let
|
|||||||
--add-flags "-L $COREDIR/${d2u core}_libretro.so $@"
|
--add-flags "-L $COREDIR/${d2u core}_libretro.so $@"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.libretroCore = "/lib/retroarch/cores";
|
passthru = {
|
||||||
|
core = core;
|
||||||
|
libretroCore = "/lib/retroarch/cores";
|
||||||
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
inherit description;
|
inherit description;
|
||||||
|
39
pkgs/misc/emulators/retroarch/xbmc-advanced-launchers.nix
Normal file
39
pkgs/misc/emulators/retroarch/xbmc-advanced-launchers.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{ stdenv, pkgs, cores }:
|
||||||
|
|
||||||
|
assert cores != [];
|
||||||
|
|
||||||
|
with pkgs.lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
script = exec: ''
|
||||||
|
#!${stdenv.shell}
|
||||||
|
nohup sh -c "sleep 1 && pkill -SIGSTOP xbmc" &
|
||||||
|
nohup sh -c "${exec} '$@' -f;pkill -SIGCONT xbmc"
|
||||||
|
'';
|
||||||
|
scriptSh = exec: pkgs.writeScript ("xbmc-"+exec.name) (script exec.path);
|
||||||
|
execs = map (core: rec { name = core.core; path = core+"/bin/retroarch-"+name;}) cores;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "xbmc-retroarch-advanced-launchers-${version}";
|
||||||
|
version = "0.2";
|
||||||
|
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
${stdenv.lib.concatMapStrings (exec: "ln -s ${scriptSh exec} $out/bin/xbmc-${exec.name};") execs}
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "XBMC retroarch advanced launchers";
|
||||||
|
longDescription = ''
|
||||||
|
These retroarch launchers are intended to be used with
|
||||||
|
anglescry advanced launcher for XBMC since device input is
|
||||||
|
caught by both XBMC and the retroarch process.
|
||||||
|
'';
|
||||||
|
license = "GPL-3";
|
||||||
|
};
|
||||||
|
}
|
@ -10519,13 +10519,11 @@ let
|
|||||||
gtk_modules = [ libcanberra ];
|
gtk_modules = [ libcanberra ];
|
||||||
};
|
};
|
||||||
|
|
||||||
wrapRetroArch = { retroarch }:
|
retroArchCores =
|
||||||
let
|
let
|
||||||
cfg = stdenv.lib.attrByPath [ "retroarch" ] {} config;
|
cfg = stdenv.lib.attrByPath [ "retroarch" ] {} config;
|
||||||
in
|
in
|
||||||
import ../misc/emulators/retroarch/wrapper.nix {
|
with libretro;
|
||||||
inherit stdenv lib makeWrapper retroarch;
|
|
||||||
cores = with libretro;
|
|
||||||
([ ]
|
([ ]
|
||||||
++ lib.optional (cfg.enable4do or false) _4do
|
++ lib.optional (cfg.enable4do or false) _4do
|
||||||
++ lib.optional (cfg.enableBsnesMercury or false) bsnes-mercury
|
++ lib.optional (cfg.enableBsnesMercury or false) bsnes-mercury
|
||||||
@ -10543,6 +10541,14 @@ let
|
|||||||
++ lib.optional (cfg.enableStella or false) stella
|
++ lib.optional (cfg.enableStella or false) stella
|
||||||
++ lib.optional (cfg.enableVbaNext or false) vba-next
|
++ lib.optional (cfg.enableVbaNext or false) vba-next
|
||||||
);
|
);
|
||||||
|
|
||||||
|
wrapRetroArch = { retroarch }:
|
||||||
|
let
|
||||||
|
cfg = stdenv.lib.attrByPath [ "retroarch" ] {} config;
|
||||||
|
in
|
||||||
|
import ../misc/emulators/retroarch/wrapper.nix {
|
||||||
|
inherit stdenv lib makeWrapper retroarch;
|
||||||
|
cores = retroArchCores;
|
||||||
};
|
};
|
||||||
|
|
||||||
wxhexeditor = callPackage ../applications/editors/wxhexeditor { };
|
wxhexeditor = callPackage ../applications/editors/wxhexeditor { };
|
||||||
@ -10574,6 +10580,11 @@ let
|
|||||||
ffmpeg = ffmpeg_1;
|
ffmpeg = ffmpeg_1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xbmc-retroarch-advanced-launchers =
|
||||||
|
callPackage ../misc/emulators/retroarch/xbmc-advanced-launchers.nix {
|
||||||
|
cores = retroArchCores;
|
||||||
|
};
|
||||||
|
|
||||||
xca = callPackage ../applications/misc/xca { };
|
xca = callPackage ../applications/misc/xca { };
|
||||||
|
|
||||||
xcalib = callPackage ../tools/X11/xcalib { };
|
xcalib = callPackage ../tools/X11/xcalib { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user