tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
mame: 0.215 -> 0.216
gnidorah
6 years ago
09f5d77f
2126e37e
+56
-12
2 changed files
expand all
collapse all
unified
split
pkgs
misc
emulators
mame
default.nix
emuopts.patch
+27
-12
pkgs/misc/emulators/mame/default.nix
···
1
1
-
{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem
1
1
+
{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem, makeWrapper
2
2
, python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama }:
3
3
4
4
let
5
5
majorVersion = "0";
6
6
-
minorVersion = "215";
6
6
+
minorVersion = "216";
7
7
8
8
desktopItem = makeDesktopItem {
9
9
name = "MAME";
···
12
12
genericName = "MAME is a multi-purpose emulation framework";
13
13
categories = "System;Emulator;";
14
14
};
15
15
+
16
16
+
dest = "$out/opt/mame";
15
17
in mkDerivation {
16
18
pname = "mame";
17
19
version = "${majorVersion}.${minorVersion}";
···
20
22
owner = "mamedev";
21
23
repo = "mame";
22
24
rev = "mame${majorVersion}${minorVersion}";
23
23
-
sha256 = "1phz846p3zzgzrbfiq2vn79iqar2dbf7iv6wfkrp32sdkkvp7l3h";
25
25
+
sha256 = "0dmmw08pxxznvadrc51zg27jc9fjh688355w8kxkmi7k8qa367r0";
24
26
};
25
27
26
28
hardeningDisable = [ "fortify" ];
27
29
NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" ];
28
30
29
31
makeFlags = [ "TOOLS=1" ];
32
32
+
33
33
+
dontWrapQtApps = true;
30
34
31
35
buildInputs = [ SDL2 SDL2_ttf alsaLib qtbase libXinerama ];
32
32
-
nativeBuildInputs = [ python pkgconfig which ];
36
36
+
nativeBuildInputs = [ python pkgconfig which makeWrapper ];
37
37
+
38
38
+
# by default MAME assumes that paths with stock resources
39
39
+
# are relative and that you run MAME changing to
40
40
+
# install directory, so we add absolute paths here
41
41
+
patches = [ ./emuopts.patch ];
42
42
+
43
43
+
postPatch = ''
44
44
+
substituteInPlace src/emu/emuopts.cpp \
45
45
+
--subst-var-by mame ${dest}
46
46
+
'';
33
47
34
48
installPhase = ''
35
35
-
dest=$out/opt/mame
36
36
-
37
37
-
make -f dist.mak PTR64=${if stdenv.is64bit then "1" else "0"}
38
38
-
mkdir -p $dest
39
39
-
mv build/release/${if stdenv.is64bit then "x64" else "x32"}/Release/mame/* $dest
49
49
+
make -f dist.mak PTR64=${stdenv.lib.optionalString stdenv.is64bit "1"}
50
50
+
mkdir -p ${dest}
51
51
+
mv build/release/*/Release/mame/* ${dest}
40
52
41
53
mkdir -p $out/bin
42
42
-
find $dest -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \;
54
54
+
find ${dest} -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \;
55
55
+
install -Dm755 src/osd/sdl/taputil.sh $out/bin/taputil.sh
43
56
44
57
mkdir -p $out/share/man/man{1,6}
45
45
-
mv $dest/docs/man/*.1 $out/share/man/man1
46
46
-
mv $dest/docs/man/*.6 $out/share/man/man6
58
58
+
mv ${dest}/docs/man/*.1 $out/share/man/man1
59
59
+
mv ${dest}/docs/man/*.6 $out/share/man/man6
60
60
+
61
61
+
mv artwork plugins samples ${dest}
47
62
48
63
mkdir -p $out/share
49
64
ln -s ${desktopItem}/share/applications $out/share
+29
pkgs/misc/emulators/mame/emuopts.patch
···
1
1
+
diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp
2
2
+
index c42fcef848..d1bddae060 100644
3
3
+
--- a/src/emu/emuopts.cpp
4
4
+
+++ b/src/emu/emuopts.cpp
5
5
+
@@ -36,16 +36,16 @@ const options_entry emu_options::s_option_entries[] =
6
6
+
{ nullptr, nullptr, OPTION_HEADER, "CORE SEARCH PATH OPTIONS" },
7
7
+
{ OPTION_HOMEPATH, ".", OPTION_STRING, "path to base folder for plugin data (read/write)" },
8
8
+
{ OPTION_MEDIAPATH ";rp;biospath;bp", "roms", OPTION_STRING, "path to ROM sets and hard disk images" },
9
9
+
- { OPTION_HASHPATH ";hash_directory;hash", "hash", OPTION_STRING, "path to software definition files" },
10
10
+
- { OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to audio sample sets" },
11
11
+
- { OPTION_ARTPATH, "artwork", OPTION_STRING, "path to artwork files" },
12
12
+
- { OPTION_CTRLRPATH, "ctrlr", OPTION_STRING, "path to controller definitions" },
13
13
+
- { OPTION_INIPATH, ".;ini;ini/presets", OPTION_STRING, "path to ini files" },
14
14
+
- { OPTION_FONTPATH, ".", OPTION_STRING, "path to font files" },
15
15
+
+ { OPTION_HASHPATH ";hash_directory;hash", "hash;@mame@/hash", OPTION_STRING, "path to software definition files" },
16
16
+
+ { OPTION_SAMPLEPATH ";sp", "samples;@mame@/samples", OPTION_STRING, "path to audio sample sets" },
17
17
+
+ { OPTION_ARTPATH, "artwork;@mame@/artwork", OPTION_STRING, "path to artwork files" },
18
18
+
+ { OPTION_CTRLRPATH, "ctrlr;@mame@/ctrlr", OPTION_STRING, "path to controller definitions" },
19
19
+
+ { OPTION_INIPATH, ".;ini;ini/presets;@mame@/ini/presets", OPTION_STRING, "path to ini files" },
20
20
+
+ { OPTION_FONTPATH, ".;@mame@", OPTION_STRING, "path to font files" },
21
21
+
{ OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" },
22
22
+
{ OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" },
23
23
+
- { OPTION_PLUGINSPATH, "plugins", OPTION_STRING, "path to plugin files" },
24
24
+
- { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to UI translation files" },
25
25
+
+ { OPTION_PLUGINSPATH, "plugins;@mame@/plugins", OPTION_STRING, "path to plugin files" },
26
26
+
+ { OPTION_LANGUAGEPATH, "language;@mame@/language", OPTION_STRING, "path to UI translation files" },
27
27
+
{ OPTION_SWPATH, "software", OPTION_STRING, "path to loose software" },
28
28
+
29
29
+
// output directory options