summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/daphne')
-rw-r--r--games-emulation/daphne/Manifest1
-rw-r--r--games-emulation/daphne/daphne-1.0.ebuild90
-rw-r--r--games-emulation/daphne/files/daphne-1.0-gcc43.patch12
-rw-r--r--games-emulation/daphne/files/daphne-1.0-ldflags.patch22
-rw-r--r--games-emulation/daphne/files/daphne-1.0-system-lmpeg2.patch41
-rw-r--r--games-emulation/daphne/files/daphne-1.0-typefix.patch47
-rw-r--r--games-emulation/daphne/files/daphne-1.0-underlink.patch8
-rw-r--r--games-emulation/daphne/files/daphne-1.0-vorbisfilefix.patch14
-rw-r--r--games-emulation/daphne/files/daphne-1.0-zlib.patch13
-rw-r--r--games-emulation/daphne/metadata.xml5
10 files changed, 253 insertions, 0 deletions
diff --git a/games-emulation/daphne/Manifest b/games-emulation/daphne/Manifest
new file mode 100644
index 000000000000..93315985e795
--- /dev/null
+++ b/games-emulation/daphne/Manifest
@@ -0,0 +1 @@
+DIST daphne-1.0-src.tar.gz 4316387 SHA256 b3df3cbb49b3b0d1c2d9f8ab9ae22ef39b1627db09b67a4d10122d754443a588 SHA512 e15e3e86cd03b8eea410eedb667c878f9e2fb044a9bf2cc54e54db641f1c2c6fd99e889cfab308bf972336b577059e13d6cf2a353016ded8e28dae9ddedc0ad4 WHIRLPOOL 6e6be7bcd6beb472881870044d7df36c1493585fd2decdaa70b083fa93338a23b07c93be0fa9634df5c84709d5736579684e5fd663f4122b87f9c0317306948c
diff --git a/games-emulation/daphne/daphne-1.0.ebuild b/games-emulation/daphne/daphne-1.0.ebuild
new file mode 100644
index 000000000000..2a2289028585
--- /dev/null
+++ b/games-emulation/daphne/daphne-1.0.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils toolchain-funcs games
+
+DESCRIPTION="Laserdisc Arcade Game Emulator"
+HOMEPAGE="http://www.daphne-emu.com/"
+SRC_URI="http://www.daphne-emu.com/download/${P}-src.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND="media-libs/libogg
+ media-libs/libvorbis
+ sys-libs/zlib
+ media-libs/libsdl[joystick,video]
+ media-libs/sdl-mixer
+ media-libs/libmpeg2
+ virtual/opengl
+ media-libs/glew"
+RDEPEND=${DEPEND}
+
+S=${WORKDIR}/v_1_0/src
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${P}-vorbisfilefix.patch \
+ "${FILESDIR}"/${P}-typefix.patch \
+ "${FILESDIR}"/${P}-gcc43.patch \
+ "${FILESDIR}"/${P}-ldflags.patch \
+ "${FILESDIR}"/${P}-zlib.patch \
+ "${FILESDIR}"/${P}-underlink.patch \
+ "${FILESDIR}"/${P}-system-lmpeg2.patch
+
+ sed -i "/m_appdir =/s:\.:${GAMES_DATADIR}/${PN}:" \
+ io/homedir.cpp || die
+ sed -i "s:pics/:${GAMES_DATADIR}/${PN}/&:" \
+ video/video.cpp || die
+ sed -i "s:sound/:${GAMES_DATADIR}/${PN}/&:" \
+ sound/sound.cpp || die
+ sed -i "s:./lib:$(games_get_libdir)/${PN}/lib:" \
+ io/dll.h || die
+
+ sed \
+ -e "s:-DNATIVE_CPU_X86::" \
+ -e "s:-DUSE_MMX::" \
+ -e '/export USE_MMX = 1/s:^:# :' \
+ Makefile.vars.linux_x86 >Makefile.vars || die
+}
+
+src_configure() {
+ cd vldp2
+ egamesconf --disable-accel-detect
+}
+
+src_compile() {
+ local archflags
+
+ if use x86; then
+ archflags="-DNATIVE_CPU_X86 -DMMX_RGB2YUV -DUSE_MMX"
+ export USE_MMX=1
+ else
+ # -fPIC is needed on amd64 but fails on x86.
+ archflags="-fPIC"
+ fi
+
+ emake \
+ CXX=$(tc-getCXX) \
+ DFLAGS="${CXXFLAGS} ${archflags}"
+ emake -C vldp2 \
+ -f Makefile.linux \
+ CC=$(tc-getCC) \
+ DFLAGS="${CFLAGS} ${archflags}"
+}
+
+src_install() {
+ cd ..
+ newgamesbin daphne.bin daphne
+ exeinto "$(games_get_libdir)"/${PN}
+ doexe libvldp2.so
+ insinto "${GAMES_DATADIR}"/${PN}
+ doins -r pics roms sound
+ dodoc doc/*.{ini,txt}
+ dohtml -r doc/*
+ prepgamesdirs
+}
diff --git a/games-emulation/daphne/files/daphne-1.0-gcc43.patch b/games-emulation/daphne/files/daphne-1.0-gcc43.patch
new file mode 100644
index 000000000000..289757d4a50c
--- /dev/null
+++ b/games-emulation/daphne/files/daphne-1.0-gcc43.patch
@@ -0,0 +1,12 @@
+--- Makefile.old 2009-01-19 16:22:07.000000000 +0100
++++ Makefile 2009-01-19 16:22:17.000000000 +0100
+@@ -33,7 +33,7 @@
+ endif
+
+ # Platform specific cflags defined in the Makefile.vars file
+-export CFLAGS = ${PFLAGS} ${DEFINE_STATIC_VLDP} -Wall -Winline -Werror
++export CFLAGS = ${PFLAGS} ${DEFINE_STATIC_VLDP} -Wall -Winline
+
+ OBJS = ldp-out/*.o cpu/*.o game/*.o io/*.o timer/*.o ldp-in/*.o video/*.o \
+ sound/*.o daphne.o cpu/x86/*.o scoreboard/*.o ${VLDP_OBJS}
+
diff --git a/games-emulation/daphne/files/daphne-1.0-ldflags.patch b/games-emulation/daphne/files/daphne-1.0-ldflags.patch
new file mode 100644
index 000000000000..a5096a5b3927
--- /dev/null
+++ b/games-emulation/daphne/files/daphne-1.0-ldflags.patch
@@ -0,0 +1,22 @@
+--- Makefile.old 2010-10-05 08:48:46.000000000 +0200
++++ Makefile 2010-10-05 08:49:10.000000000 +0200
+@@ -43,7 +43,7 @@
+ .SUFFIXES: .cpp
+
+ all: ${LOCAL_OBJS} sub
+- ${CXX} ${DFLAGS} ${OBJS} -o ${EXE} ${LIBS}
++ ${CXX} $(LDFLAGS) ${DFLAGS} ${OBJS} -o ${EXE} ${LIBS}
+
+ sub:
+ cd ldp-out && $(MAKE)
+--- vldp2/Makefile.linux.old 2010-10-05 09:29:52.000000000 +0200
++++ vldp2/Makefile.linux 2010-10-05 09:30:13.000000000 +0200
+@@ -33,7 +33,7 @@
+ all: vldp2
+
+ vldp2: ${OBJS}
+- ${CC} -shared -o ${LIBNAME} ${OBJS} ${LIBS}
++ ${CC} $(LDFLAGS) -shared -o ${LIBNAME} ${OBJS} ${LIBS}
+ cp ${LIBNAME} ../../.
+
+ clean:
diff --git a/games-emulation/daphne/files/daphne-1.0-system-lmpeg2.patch b/games-emulation/daphne/files/daphne-1.0-system-lmpeg2.patch
new file mode 100644
index 000000000000..7eed630d13f7
--- /dev/null
+++ b/games-emulation/daphne/files/daphne-1.0-system-lmpeg2.patch
@@ -0,0 +1,41 @@
+diff -ur v_1_0.old/src/vldp2/Makefile.am v_1_0/src/vldp2/Makefile.am
+--- v_1_0.old/src/vldp2/Makefile.am 2009-12-29 18:04:15.000000000 +0200
++++ v_1_0/src/vldp2/Makefile.am 2009-12-29 18:10:42.000000000 +0200
+@@ -1,3 +1,3 @@
+-SUBDIRS = autotools include libmpeg2 libvo doc src vc++ test
++SUBDIRS = autotools
+
+ EXTRA_DIST = bootstrap
+diff -ur v_1_0.old/src/vldp2/Makefile.in v_1_0/src/vldp2/Makefile.in
+--- v_1_0.old/src/vldp2/Makefile.in 2009-12-29 18:04:15.000000000 +0200
++++ v_1_0/src/vldp2/Makefile.in 2009-12-29 18:10:51.000000000 +0200
+@@ -128,7 +128,7 @@
+ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+-SUBDIRS = autotools include libmpeg2 libvo doc src vc++ test
++SUBDIRS = autotools
+
+ EXTRA_DIST = bootstrap
+ subdir = .
+diff -ur v_1_0.old/src/vldp2/Makefile.linux v_1_0/src/vldp2/Makefile.linux
+--- v_1_0.old/src/vldp2/Makefile.linux 2009-12-29 18:04:15.000000000 +0200
++++ v_1_0/src/vldp2/Makefile.linux 2009-12-29 18:13:12.000000000 +0200
+@@ -14,14 +14,9 @@
+ DFLAGS = -O3 -march=i686 -fomit-frame-pointer -funroll-loops
+
+ CFLAGS = ${DFLAGS} `sdl-config --cflags` -I./include
+-LIBS = `sdl-config --libs`
++LIBS = `sdl-config --libs` -lmpeg2
+
+-OBJS = vldp/vldp.o vldp/vldp_internal.o vldp/mpegscan.o \
+- libmpeg2/cpu_accel.o libmpeg2/alloc.o libmpeg2/cpu_state.o \
+- libmpeg2/decode.o libmpeg2/header.o libmpeg2/motion_comp.o \
+- libmpeg2/idct.o libmpeg2/idct_mmx.o libmpeg2/motion_comp_mmx.o \
+- libmpeg2/slice.o \
+- libvo/video_out.o libvo/video_out_null.o
++OBJS = vldp/vldp.o vldp/vldp_internal.o vldp/mpegscan.o
+
+ LIBNAME = libvldp2.so
+
+
diff --git a/games-emulation/daphne/files/daphne-1.0-typefix.patch b/games-emulation/daphne/files/daphne-1.0-typefix.patch
new file mode 100644
index 000000000000..f47511a0cd03
--- /dev/null
+++ b/games-emulation/daphne/files/daphne-1.0-typefix.patch
@@ -0,0 +1,47 @@
+amd64 does not like int pointers
+
+diff -ruN v_1_0.orig/src/ldp-in/ldv1000.cpp v_1_0/src/ldp-in/ldv1000.cpp
+--- v_1_0.orig/src/ldp-in/ldv1000.cpp 2008-01-29 18:04:34.000000000 +0100
++++ v_1_0/src/ldp-in/ldv1000.cpp 2008-09-19 14:29:40.000000000 +0200
+@@ -607,9 +607,9 @@
+
+ void ldv1000_event_callback(void *eventType)
+ {
+- g_ldv1000_last_event = (unsigned int) eventType;
++ g_ldv1000_last_event = (unsigned long) eventType;
+
+- switch ((unsigned int) eventType)
++ switch ((unsigned long) eventType)
+ {
+ case LDV1000_EVENT_VSYNC_END:
+ #ifdef DEBUG
+diff -ruN v_1_0.orig/src/vldp2/libvo/video_out_null.c v_1_0/src/vldp2/libvo/video_out_null.c
+--- v_1_0.orig/src/vldp2/libvo/video_out_null.c 2008-01-29 18:04:43.000000000 +0100
++++ v_1_0/src/vldp2/libvo/video_out_null.c 2008-09-19 14:30:03.000000000 +0200
+@@ -82,7 +82,7 @@
+ // this is the potentially expensive callback that gets the hardware overlay
+ // ready to be displayed, so we do this before we sleep
+ // NOTE : if this callback fails, we don't want to display the frame due to double buffering considerations
+- if (g_in_info->prepare_frame(&g_yuv_buf[(int) id]))
++ if (g_in_info->prepare_frame(&g_yuv_buf[(long) id]))
+ {
+ #ifndef VLDP_BENCHMARK
+
+@@ -133,7 +133,7 @@
+ #endif
+ // draw the frame
+ // we are using the pointer 'id' as an index, kind of risky, but convenient :)
+- g_in_info->display_frame(&g_yuv_buf[(int) id]);
++ g_in_info->display_frame(&g_yuv_buf[(long) id]);
+ #ifndef VLDP_BENCHMARK
+ } // end if we didn't get a new command to interrupt the frame being displayed
+ #endif
+@@ -272,7 +272,7 @@
+ uint8_t ** buf, void ** id)
+ {
+ static buffer_index = 0;
+- *id = (int *) buffer_index; // THIS IS A LITTLE TRICKY
++ *id = (long *) buffer_index; // THIS IS A LITTLE TRICKY
+ // We are setting an integer value to a pointer ...
+ // Because it is convenient to let the pointer hold the value of this integer for us
+ // Hopefully it doesn't cause any trouble later ;)
diff --git a/games-emulation/daphne/files/daphne-1.0-underlink.patch b/games-emulation/daphne/files/daphne-1.0-underlink.patch
new file mode 100644
index 000000000000..f04f3f6c5fd1
--- /dev/null
+++ b/games-emulation/daphne/files/daphne-1.0-underlink.patch
@@ -0,0 +1,8 @@
+--- Makefile.vars.linux_x86.old 2011-09-21 12:27:42.480566742 +0200
++++ Makefile.vars.linux_x86 2011-09-21 12:27:57.490564959 +0200
+@@ -24,4 +24,4 @@
+ -DUSE_MMX -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DUSE_OPENGL
+
+ # platform-specific lib flags
+-LIBS = `sdl-config --libs` -ldl -lz -logg -lvorbis -lvorbisfile -lGLEW
++LIBS = `sdl-config --libs` -ldl -lz -logg -lvorbis -lvorbisfile -lGLEW -lGL -lm
diff --git a/games-emulation/daphne/files/daphne-1.0-vorbisfilefix.patch b/games-emulation/daphne/files/daphne-1.0-vorbisfilefix.patch
new file mode 100644
index 000000000000..49eb1aaab62d
--- /dev/null
+++ b/games-emulation/daphne/files/daphne-1.0-vorbisfilefix.patch
@@ -0,0 +1,14 @@
+Fix no sound issue with >=media-libs/libvorbis-1.2.0
+
+diff -ruN v_1_0.orig/src/ldp-out/ldp-vldp-audio.cpp v_1_0/src/ldp-out/ldp-vldp-audio.cpp
+--- v_1_0.orig/src/ldp-out/ldp-vldp-audio.cpp 2008-01-29 18:04:07.000000000 +0100
++++ v_1_0/src/ldp-out/ldp-vldp-audio.cpp 2008-09-19 13:43:10.000000000 +0200
+@@ -146,7 +146,7 @@
+ switch (whence)
+ {
+ case SEEK_SET:
+- if (offset < g_audio_filesize)
++ if (offset <= g_audio_filesize)
+ {
+ // make sure offset is positive so we don't get into trouble
+ if (offset >= 0)
diff --git a/games-emulation/daphne/files/daphne-1.0-zlib.patch b/games-emulation/daphne/files/daphne-1.0-zlib.patch
new file mode 100644
index 000000000000..dbae7b31fe9c
--- /dev/null
+++ b/games-emulation/daphne/files/daphne-1.0-zlib.patch
@@ -0,0 +1,13 @@
+--- io/unzip.h.old 2011-09-21 12:13:28.911668053 +0200
++++ io/unzip.h 2011-09-21 12:14:53.074658064 +0200
+@@ -57,6 +57,10 @@
+ #include "zlib.h"
+ #endif
+
++#ifndef OF
++#define OF _Z_OF
++#endif
++
+ #if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
+ /* like the STRICT of WIN32, we define a pointer that cannot be converted
+ from (void*) without cast */
diff --git a/games-emulation/daphne/metadata.xml b/games-emulation/daphne/metadata.xml
new file mode 100644
index 000000000000..d3c2cc926f0b
--- /dev/null
+++ b/games-emulation/daphne/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>games</herd>
+</pkgmetadata>