Adding two NES emulators.
Because of them, I made allegro build the allegrogl library. I also added the HawkNL library. svn path=/nixpkgs/trunk/; revision=26517
This commit is contained in:
parent
9eb80e4f94
commit
ef57b57b92
@ -1,7 +1,7 @@
|
|||||||
x@{builderDefsPackage
|
x@{builderDefsPackage
|
||||||
, texinfo, libXext, xextproto, libX11, xproto, libXpm, libXt, libXcursor
|
, texinfo, libXext, xextproto, libX11, xproto, libXpm, libXt, libXcursor
|
||||||
, alsaLib, cmake, zlib, libpng, libvorbis, libXxf86dga, libXxf86misc
|
, alsaLib, cmake, zlib, libpng, libvorbis, libXxf86dga, libXxf86misc
|
||||||
, xf86dgaproto, xf86miscproto, xf86vidmodeproto, libXxf86vm, openal
|
, xf86dgaproto, xf86miscproto, xf86vidmodeproto, libXxf86vm, openal, mesa
|
||||||
, ...}:
|
, ...}:
|
||||||
builderDefsPackage
|
builderDefsPackage
|
||||||
(a :
|
(a :
|
||||||
|
28
pkgs/development/libraries/hawknl/default.nix
Normal file
28
pkgs/development/libraries/hawknl/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{stdenv, fetchurl, unzip}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "hawknl-1.34";
|
||||||
|
src = fetchurl {
|
||||||
|
url = http://hawksoft.com/download/files/HawkNL168src.zip;
|
||||||
|
sha256 = "11shn2fbxj3w0j77w0234pqyj1368x686kkgv09q5yqhi1cdp028";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ unzip ];
|
||||||
|
|
||||||
|
makefile = "makefile.linux";
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
sed -i s/soname,NL/soname,libNL/ src/makefile.linux
|
||||||
|
'';
|
||||||
|
|
||||||
|
preInstall = ''
|
||||||
|
sed -i s,/usr/local,$out, src/makefile.linux
|
||||||
|
ensureDir $out/lib $out/include
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://hawksoft.com/hawknl/;
|
||||||
|
description = "Free, open source, game oriented network API";
|
||||||
|
license = "LGPLv2+";
|
||||||
|
};
|
||||||
|
}
|
28
pkgs/misc/emulators/darcnes/default.nix
Normal file
28
pkgs/misc/emulators/darcnes/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{stdenv, fetchurl, libX11, libXt, libXext, libXaw }:
|
||||||
|
|
||||||
|
assert stdenv.system == "i686-linux";
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "darnes-9b0401";
|
||||||
|
src = fetchurl {
|
||||||
|
url = http://www.dridus.com/~nyef/darcnes/download/dn9b0401.tgz;
|
||||||
|
sha256 = "05a7mh51rg7ydb414m3p5mm05p4nz2bgvspqzwm3bhbj7zz543k3";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ libX11 libXt libXext libXaw ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
ensureDir $out/bin
|
||||||
|
cp darcnes $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
patches = [ ./label.patch ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://www.dridus.com/~nyef/darcnes/;
|
||||||
|
description = "Multi-System emulator, specially for NES";
|
||||||
|
/* Prohibited commercial use, credit required. */
|
||||||
|
license = "free";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
13
pkgs/misc/emulators/darcnes/label.patch
Normal file
13
pkgs/misc/emulators/darcnes/label.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
http://gentoo-overlays.zugaina.org/funtoo/portage/games-emulation/darcnes/files/darcnes-0401-exec-stack.patch
|
||||||
|
|
||||||
|
diff -Naur old/video_x.c new/video_x.c
|
||||||
|
--- old/video_x.c 2004-09-04 01:26:41.102187277 +0200
|
||||||
|
+++ new/video_x.c 2004-09-04 01:27:51.586427427 +0200
|
||||||
|
@@ -366,6 +366,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
+ break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
84
pkgs/misc/emulators/fakenes/build.patch
Normal file
84
pkgs/misc/emulators/fakenes/build.patch
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
diff --git a/build/openal.cbd b/build/openal.cbd
|
||||||
|
index d18e62d..74af061 100644
|
||||||
|
--- a/build/openal.cbd
|
||||||
|
+++ b/build/openal.cbd
|
||||||
|
@@ -23,7 +23,7 @@ CFLAGS += ' -DUSE_OPENAL'
|
||||||
|
# --
|
||||||
|
|
||||||
|
do ifplat unix
|
||||||
|
- LDFLAGS += ' `openal-config --libs`'
|
||||||
|
+ LDFLAGS += ' -lopenal'
|
||||||
|
else
|
||||||
|
LDFLAGS += ' -lOpenAL32'
|
||||||
|
done
|
||||||
|
diff --git a/build/alleggl.cbd b/build/alleggl.cbd
|
||||||
|
index e2708ff..e826371 100644
|
||||||
|
--- a/build/alleggl.cbd
|
||||||
|
+++ b/build/alleggl.cbd
|
||||||
|
@@ -22,7 +22,7 @@ CFLAGS += ' -DUSE_ALLEGROGL'
|
||||||
|
|
||||||
|
# --
|
||||||
|
|
||||||
|
-LIBAGL = agl
|
||||||
|
+LIBAGL = alleggl
|
||||||
|
|
||||||
|
ifopt debug LIBAGL = 'agld'
|
||||||
|
|
||||||
|
diff --git a/src/apu.cpp b/src/apu.cpp
|
||||||
|
index af59f1c..893a798 100644
|
||||||
|
--- a/src/apu.cpp
|
||||||
|
+++ b/src/apu.cpp
|
||||||
|
@@ -1930,7 +1930,7 @@ static void amplify(real& sample)
|
||||||
|
gain -= releaseRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
- real output = (1.0 / max(gain, EPSILON));
|
||||||
|
+ real output = (1.0 / MAX(gain, EPSILON));
|
||||||
|
output = fixf(output, apu_agc_gain_floor, apu_agc_gain_ceiling);
|
||||||
|
sample *= output;
|
||||||
|
}
|
||||||
|
diff --git a/src/audio.cpp b/src/audio.cpp
|
||||||
|
index b9650dc..c21c05e 100644
|
||||||
|
--- a/src/audio.cpp
|
||||||
|
+++ b/src/audio.cpp
|
||||||
|
@@ -7,6 +7,7 @@
|
||||||
|
You must read and accept the license prior to use. */
|
||||||
|
|
||||||
|
#include <allegro.h>
|
||||||
|
+#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
#include <vector>
|
||||||
|
@@ -234,7 +235,7 @@ void audio_update(void)
|
||||||
|
const unsigned queuedFrames = (audioQueue.size() / audio_channels);
|
||||||
|
if(queuedFrames > 0) {
|
||||||
|
// Determine how many frames we want to make room for.
|
||||||
|
- const unsigned framesToAdd = min(queuedFrames, audio_buffer_size_frames);
|
||||||
|
+ const unsigned framesToAdd = MIN(queuedFrames, audio_buffer_size_frames);
|
||||||
|
// Make room for the frames in the buffer.
|
||||||
|
const unsigned framesToMove = (audioBufferedFrames - framesToAdd);
|
||||||
|
if(framesToMove > 0) {
|
||||||
|
@@ -258,7 +259,7 @@ void audio_update(void)
|
||||||
|
// Determine how many frames are available in the buffer.
|
||||||
|
const unsigned bufferableFrames = (audio_buffer_size_frames - audioBufferedFrames);
|
||||||
|
// Determine the number of frames to copy to the buffer.
|
||||||
|
- const unsigned framesToCopy = min(queuedFrames, bufferableFrames);
|
||||||
|
+ const unsigned framesToCopy = MIN(queuedFrames, bufferableFrames);
|
||||||
|
|
||||||
|
// Copy frames to the buffer.
|
||||||
|
for(unsigned frame = 0; frame < framesToCopy; frame++) {
|
||||||
|
diff --git a/src/include/common.h b/src/include/common.h
|
||||||
|
index be28795..e2d21d1 100644
|
||||||
|
--- a/src/include/common.h
|
||||||
|
+++ b/src/include/common.h
|
||||||
|
@@ -41,8 +41,10 @@ extern "C" {
|
||||||
|
#define true TRUE
|
||||||
|
#define false FALSE
|
||||||
|
|
||||||
|
+/*
|
||||||
|
#define min(x,y) MIN((x),(y))
|
||||||
|
#define max(x,y) MAX((x),(y))
|
||||||
|
+*/
|
||||||
|
|
||||||
|
#define true_or_false(x) ((x) ? true : false)
|
||||||
|
|
28
pkgs/misc/emulators/fakenes/default.nix
Normal file
28
pkgs/misc/emulators/fakenes/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{stdenv, fetchurl, allegro, openal, mesa, zlib, hawknl, freeglut, libX11,
|
||||||
|
libXxf86vm, libXcursor, libXpm }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "fakenes-0.5.9b3";
|
||||||
|
src = fetchurl {
|
||||||
|
url = mirror://sourceforge/fakenes/fakenes-0.5.9-beta3.tar.gz;
|
||||||
|
sha256 = "026h67s4pzc1vma59pmzk02iy379255qbai2q74wln9bxqcpniy4";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ allegro openal mesa zlib hawknl freeglut libX11
|
||||||
|
libXxf86vm libXcursor libXpm ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
ensureDir $out/bin
|
||||||
|
cp fakenes $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
NIX_LDFLAGS = "-lX11 -lXxf86vm -lXcursor -lXpm";
|
||||||
|
|
||||||
|
patches = [ ./build.patch ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://fakenes.sourceforge.net/;
|
||||||
|
license = "GPLv2+";
|
||||||
|
description = "Portable Open Source NES Emulator";
|
||||||
|
};
|
||||||
|
}
|
@ -3278,6 +3278,8 @@ let
|
|||||||
# TODO : Add MIT Kerberos and let admin choose.
|
# TODO : Add MIT Kerberos and let admin choose.
|
||||||
kerberos = heimdal;
|
kerberos = heimdal;
|
||||||
|
|
||||||
|
hawknl = callPackage ../development/libraries/hawknl { };
|
||||||
|
|
||||||
heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
|
heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
|
||||||
|
|
||||||
herqqSvn = callPackage ../development/libraries/herqq/svn.nix { };
|
herqqSvn = callPackage ../development/libraries/herqq/svn.nix { };
|
||||||
@ -7474,6 +7476,8 @@ let
|
|||||||
|
|
||||||
cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
|
cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
|
||||||
|
|
||||||
|
darcnes = callPackage ../misc/emulators/darcnes { };
|
||||||
|
|
||||||
dblatex = callPackage ../misc/tex/dblatex { };
|
dblatex = callPackage ../misc/tex/dblatex { };
|
||||||
|
|
||||||
dosbox = callPackage ../misc/emulators/dosbox { };
|
dosbox = callPackage ../misc/emulators/dosbox { };
|
||||||
@ -7484,6 +7488,8 @@ let
|
|||||||
|
|
||||||
electricsheep = callPackage ../misc/screensavers/electricsheep { };
|
electricsheep = callPackage ../misc/screensavers/electricsheep { };
|
||||||
|
|
||||||
|
fakenes = callPackage ../misc/emulators/fakenes { };
|
||||||
|
|
||||||
foldingathome = callPackage ../misc/foldingathome { };
|
foldingathome = callPackage ../misc/foldingathome { };
|
||||||
|
|
||||||
foo2zjs = callPackage ../misc/drivers/foo2zjs {};
|
foo2zjs = callPackage ../misc/drivers/foo2zjs {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user