summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
Diffstat (limited to 'emulators')
-rw-r--r--emulators/Makefile1
-rw-r--r--emulators/mupen64-base/Makefile74
-rw-r--r--emulators/mupen64-base/distinfo2
-rw-r--r--emulators/mupen64-base/files/mupen64.in64
-rw-r--r--emulators/mupen64-base/files/patch-Makefile16
-rw-r--r--emulators/mupen64-base/files/patch-configure128
-rw-r--r--emulators/mupen64-base/files/patch-main_gtk.c30
-rw-r--r--emulators/mupen64-base/files/patch-plugin.c10
-rw-r--r--emulators/mupen64-base/pkg-descr15
-rw-r--r--emulators/mupen64-base/pkg-message9
-rw-r--r--emulators/mupen64-base/pkg-plist25
11 files changed, 374 insertions, 0 deletions
diff --git a/emulators/Makefile b/emulators/Makefile
index f512454daa81..e5534bf9c8c8 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -60,6 +60,7 @@
SUBDIR += minivmac
SUBDIR += mips64emul
SUBDIR += mtools
+ SUBDIR += mupen64-base
SUBDIR += osf1_base
SUBDIR += p-interp
SUBDIR += pcemu
diff --git a/emulators/mupen64-base/Makefile b/emulators/mupen64-base/Makefile
new file mode 100644
index 000000000000..e1e50345cf7e
--- /dev/null
+++ b/emulators/mupen64-base/Makefile
@@ -0,0 +1,74 @@
+# New ports collection makefile for: mupen64-base
+# Date created: 10.Aug 2004
+# Whom: dirk.meyer@dinoex.sub.org
+#
+# $FreeBSD$
+#
+
+PORTNAME= mupen64
+PORTVERSION= 0.4
+CATEGORIES+= emulators
+MASTER_SITES= http://mupen64.emulation64.com/files/${PORTVERSION}/
+PKGNAMESUFFIX= -base
+DISTNAME= ${PORTNAME}_src-${PORTVERSION}
+
+MAINTAINER?= tlp@LiquidX.org
+COMMENT= Mupen64 is a Nintendo 64 emulator
+
+USE_BZIP2= yes
+HAS_CONFIGURE= yes
+USE_REINPLACE= yes
+USE_GMAKE= yes
+USE_SDL= sdl
+USE_GNOME= gtk12
+WRKSRC= ${WRKDIR}/emu64
+USE_GCC= 3.4
+ONLY_FOR_ARCHS= i386
+
+DOCFILES= readme.pdf readme.ps
+FIXME1= main/vcr.c memory/dma.c r4300/r4300.c r4300/recomp.c \
+ r4300/x86/assemble.c
+FIXME2= r4300/interupt.c main/gui_gtk/main_gtk.c
+
+pre-configure:
+ @${SED} -e 's,%%PREFIX%%,${PREFIX},g' ${FILESDIR}/mupen64.in \
+ > ${WRKDIR}/mupen64
+.for i in ${FIXME1}
+ ${REINPLACE_CMD} -e 's|malloc.h|stdlib.h|' ${WRKSRC}/${i}
+.endfor
+.for i in ${FIXME2}
+ ${REINPLACE_CMD} -e 's|SDL/SDL.h|SDL.h|' ${WRKSRC}/${i}
+.endfor
+ ${REINPLACE_CMD} \
+ -e 's|sdl-config|${SDL_CONFIG}|g' ${WRKSRC}/configure
+ ${REINPLACE_CMD} \
+ -e 's|gtk-config|${GTK_CONFIG}|' \
+ -e 's|-L/usr/X11R6/lib -lSDL -lGL -lpthread|`${SDL_CONFIG} --libs`|' \
+ -e 's|-ldl|${LDFLAGS}|' \
+ ${WRKSRC}/Makefile
+
+post-install:
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/whatsnew.txt ${DOCSDIR}/whatsnew.txt
+.for i in ${DOCFILES}
+ ${INSTALL_DATA} ${WRKSRC}/doc/${i} ${DOCSDIR}/
+.endfor
+.endif
+ ${INSTALL_PROGRAM} ${WRKSRC}/mupen64 ${PREFIX}/libexec/mupen64
+ ${INSTALL_SCRIPT} ${WRKDIR}/mupen64 ${PREFIX}/bin/mupen64
+ @${CAT} ${PKGMESSAGE}
+
+.include <bsd.port.pre.mk>
+
+CFLAGS+= `${SDL_CONFIG} --cflags`
+CFLAGS+= -O3 -fomit-frame-pointer -funroll-loops -ffast-math -Wall -pipe
+CFLAGS+= -DX86 -mcpu=athlon
+
+MAKE_ARGS+= CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+
+.if ${OSVERSION} < 500000
+LDFLAGS+= -L/usr/lib -lcipher
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/emulators/mupen64-base/distinfo b/emulators/mupen64-base/distinfo
new file mode 100644
index 000000000000..e9c8105912ef
--- /dev/null
+++ b/emulators/mupen64-base/distinfo
@@ -0,0 +1,2 @@
+MD5 (mupen64_src-0.4.tar.bz2) = 322f2226f4f67e24868592c6b441e76a
+SIZE (mupen64_src-0.4.tar.bz2) = 1871148
diff --git a/emulators/mupen64-base/files/mupen64.in b/emulators/mupen64-base/files/mupen64.in
new file mode 100644
index 000000000000..addc739cca65
--- /dev/null
+++ b/emulators/mupen64-base/files/mupen64.in
@@ -0,0 +1,64 @@
+#!/bin/sh
+# mupen64 - Mupen64 wrapper script
+#
+# 2004 Travis Poppe
+
+USERDIR=$HOME/.mupen64
+
+if [ ! -x $USERDIR/mupen64 ]; then
+ echo "$USERDIR/mupen64 not found or not executable."
+ echo "Setting up Mupen64 for you..."
+ rm -rf $USERDIR
+ mkdir $USERDIR
+ mkdir $USERDIR/lang
+ mkdir $USERDIR/save
+ mkdir $USERDIR/roms
+ mkdir $USERDIR/plugins
+ cd $USERDIR
+ ln -s %%PREFIX%%/libexec/mupen64 ./mupen64
+ cp %%PREFIX%%/share/mupen64/mupen64.ini ./mupen64.ini
+ chmod +w ./mupen64.ini
+ ln -s %%PREFIX%%/share/mupen64/lang/* lang/
+
+for source in %%PREFIX%%/share/mupen64/*.conf
+do
+ # source must exist as a plain file
+ if test ! -f "${source}"
+ then
+ continue
+ fi
+ target="${USERDIR}/${source##*/}"
+ cp "${source}" "${target}"
+ chmod +w "${target}"
+done
+
+for source in %%PREFIX%%/share/mupen64/plugins/*.so
+do
+ # source must exist as a plain file
+ if test ! -f "${source}"
+ then
+ continue
+ fi
+ target="${USERDIR}/plugins/${source##*/}"
+ ln -s "${source}" "${target}"
+done
+
+for source in %%PREFIX%%/share/mupen64/plugins/*.ini
+do
+ # source must exist as a plain file
+ if test ! -f "${source}"
+ then
+ continue
+ fi
+ target="${USERDIR}/plugins/${source##*/}"
+ cp "${source}" "${target}"
+ chmod +w "${target}"
+done
+
+ echo "Done!"
+ echo ""
+ echo "Remember to configure your plugins!"
+ echo ""
+fi
+
+cd $USERDIR && exec ./mupen64
diff --git a/emulators/mupen64-base/files/patch-Makefile b/emulators/mupen64-base/files/patch-Makefile
new file mode 100644
index 000000000000..f173d567ea83
--- /dev/null
+++ b/emulators/mupen64-base/files/patch-Makefile
@@ -0,0 +1,16 @@
+--- Makefile.orig Mon Jul 5 22:37:09 2004
++++ Makefile Tue Aug 10 23:03:37 2004
+@@ -1,10 +1,10 @@
+ #Makefile MUPEN64 for Linux
+
+-CC =gcc
+-CXX =g++
++CC ?=gcc
++CXX ?=g++
+
+ #CFLAGS =-DX86 -O3 -mpentium -Wall -DEMU64_DEBUG
+-CFLAGS =-DX86 -O3 -fomit-frame-pointer -funroll-loops -ffast-math -mcpu=athlon -Wall -pipe
++#CFLAGS =-DX86 -O3 -fomit-frame-pointer -funroll-loops -ffast-math -mcpu=athlon -Wall -pipe
+ #CFLAGS =-DX86 -O3 -mcpu=pentium -Wall -g -pg
+ #CFLAGS =-DX86 -Wall -pipe -g3 -DEMU64_DEBUG
+ #CFLAGS =-DX86 -Wall -pipe -g -DEMU64_DEBUG -DCOMPARE_CORE
diff --git a/emulators/mupen64-base/files/patch-configure b/emulators/mupen64-base/files/patch-configure
new file mode 100644
index 000000000000..8c3a8f7fcb05
--- /dev/null
+++ b/emulators/mupen64-base/files/patch-configure
@@ -0,0 +1,128 @@
+--- configure.orig Mon Jul 5 22:37:11 2004
++++ configure Wed Aug 11 05:57:43 2004
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ if [ -z "$CC" ]; then
+ CC=gcc
+@@ -8,7 +8,7 @@
+ fi
+
+ # check for a C compiler
+-function check_cc()
++check_cc()
+ {
+ if [ ! -z "$CC" ]; then
+ if [ ! -x "`which "$CC"`" ]; then
+@@ -23,8 +23,8 @@
+ fi
+ fi
+
+- FILE="`tempfile`"
+- OUTFILE="`tempfile`"
++ FILE="/tmp/mupen64.configure.1"
++ OUTFILE="/tmp/mupen64.configure.2"
+ echo "int main(void) { return 0; }" > "$FILE"
+ $CC -x "c" -o "$OUTFILE" "$FILE" 2>&1 | cat >>config.log
+
+@@ -51,7 +51,7 @@
+ }
+
+ # check for a C++ compiler
+-function check_cxx()
++check_cxx()
+ {
+ if [ ! -z "$CXX" ]; then
+ if [ ! -x "`which "$CXX"`" ]; then
+@@ -66,8 +66,8 @@
+ fi
+ fi
+
+- FILE="`tempfile`"
+- OUTFILE="`tempfile`"
++ FILE="/tmp/mupen64.configure.1"
++ OUTFILE="/tmp/mupen64.configure.2"
+ echo "int main(void) { return 0; }" > "$FILE"
+ $CXX -x "c++" -o "$OUTFILE" "$FILE" 2>&1 | cat >>config.log
+
+@@ -94,7 +94,7 @@
+ }
+
+ # check for libavifile
+-function check_libavifile()
++check_libavifile()
+ {
+ echo "Checking avifile..."
+
+@@ -103,8 +103,8 @@
+ exit 1
+ fi
+
+- FILE="`tempfile`"
+- OUTFILE="`tempfile`"
++ FILE="/tmp/mupen64.configure.1"
++ OUTFILE="/tmp/mupen64.configure.2"
+ echo "#include <avifile.h>" > "$FILE"
+ echo "int main(void) { return 0; }" >> "$FILE"
+ $CXX -x "c++" -o "$OUTFILE" "$FILE" `avifile-config --libs` `avifile-config --cflags` 2>&1 | cat >>config.log
+@@ -132,7 +132,7 @@
+ }
+
+ # check for libsdl
+-function check_libsdl()
++check_libsdl()
+ {
+ echo "Checking SDL..."
+
+@@ -141,8 +141,8 @@
+ exit 1
+ fi
+
+- FILE="`tempfile`"
+- OUTFILE="`tempfile`"
++ FILE="/tmp/mupen64.configure.1"
++ OUTFILE="/tmp/mupen64.configure.2"
+ echo "#include \"SDL.h\"" > "$FILE"
+ echo "#include <stdio.h>" >> "$FILE"
+ echo "int main(void) { if (SDL_Init( 0 ) < 0) { printf( \"SDL_Init(): %s\\n\", SDL_GetError() ); return 1; } return 0; }" >> "$FILE"
+@@ -189,7 +189,8 @@
+ echo "Do you want to configure mupen64 to run in a user directory? (Answering no"
+ echo "will configure it for multi-users usage with the configuration stored in the"
+ echo "HOME directory)"
+-read -p "(Y)es or (N)o [Default is: Yes]: " answer
++#read -p "(Y)es or (N)o [Default is: Yes]: " answer
++answer="No"
+
+ if [ -n "$answer" ]
+ then
+@@ -197,7 +198,8 @@
+ then
+
+ echo "In which prefix do u want to install mupen64 ? [Default: /usr/local/] "
+- read answer
++# read answer
++ answer="$PREFIX"
+
+ if [ -z $answer ]
+ then
+@@ -211,7 +213,8 @@
+ # ---- VCR
+ echo
+ echo "Do you want to enable VCR support (requires avifile and a C++ compiler)?"
+-read -p "(Y)es or (N)o [Default is: No]: " answer
++# read -p "(Y)es or (N)o [Default is: No]: " answer
++answer="No"
+
+ if [ -n "$answer" ]
+ then
+@@ -273,7 +276,8 @@
+ if [ "$CONFIG_CHANGED" -eq "0" ]; then
+ echo "Note: The configuration has not been changed since the last time it was written."
+ fi
+-read -p "(Y)es or (N)o [Default is: No]: " answer
++#read -p "(Y)es or (N)o [Default is: No]: " answer
++answer="No"
+
+ if [ -n "$answer" ]
+ then
diff --git a/emulators/mupen64-base/files/patch-main_gtk.c b/emulators/mupen64-base/files/patch-main_gtk.c
new file mode 100644
index 000000000000..51dd1c48747b
--- /dev/null
+++ b/emulators/mupen64-base/files/patch-main_gtk.c
@@ -0,0 +1,30 @@
+--- main/gui_gtk/main_gtk.c.orig Tue Aug 10 22:44:44 2004
++++ main/gui_gtk/main_gtk.c Tue Aug 10 22:54:47 2004
+@@ -1783,16 +1783,19 @@
+ printf( "SIGSEGV in core thread caught:\n" );
+ printf( "\terrno = %d (%s)\n", info->si_errno, strerror( info->si_errno ) );
+ printf( "\taddress = 0x%08X\n", (unsigned int)info->si_addr );
++#ifdef SEGV_MAPERR
+ switch( info->si_code )
+ {
+ case SEGV_MAPERR: printf( " address not mapped to object\n" ); break;
+ case SEGV_ACCERR: printf( " invalid permissions for mapped object\n" ); break;
+ }
++#endif
+ break;
+ case SIGILL:
+ printf( "SIGILL in core thread caught:\n" );
+ printf( "\terrno = %d (%s)\n", info->si_errno, strerror( info->si_errno ) );
+ printf( "\taddress = 0x%08X\n", (unsigned int)info->si_addr );
++#ifdef ILL_ILLOPC
+ switch( info->si_code )
+ {
+ case ILL_ILLOPC: printf( "\tillegal opcode\n" ); break;
+@@ -1804,6 +1807,7 @@
+ case ILL_COPROC: printf( "\tcoprocessor error\n" ); break;
+ case ILL_BADSTK: printf( "\tinternal stack error\n" ); break;
+ }
++#endif
+ break;
+ case SIGFPE:
+ printf( "SIGFPE in core thread caught:\n" );
diff --git a/emulators/mupen64-base/files/patch-plugin.c b/emulators/mupen64-base/files/patch-plugin.c
new file mode 100644
index 000000000000..e42ed1dc2c10
--- /dev/null
+++ b/emulators/mupen64-base/files/patch-plugin.c
@@ -0,0 +1,10 @@
+--- main/plugin.c.orig Mon Jul 5 22:37:09 2004
++++ main/plugin.c Tue Aug 10 22:39:28 2004
+@@ -33,6 +33,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
++#include <limits.h>
+
+ #include "winlnxdefs.h"
+ #include "plugin.h"
diff --git a/emulators/mupen64-base/pkg-descr b/emulators/mupen64-base/pkg-descr
new file mode 100644
index 000000000000..3b77bcb04913
--- /dev/null
+++ b/emulators/mupen64-base/pkg-descr
@@ -0,0 +1,15 @@
+Mupen64 base
+-
+Mupen64 is a highly portable Nintendo 64 emulator. It has been developed
+on/for Linux originally but has already been ported successfully to other
+operating systems. The program can easily be ported to all operating systems
+supported by the SDL library.
+
+In its current state, the emulator is highly compatible and uses a plugin
+system. With the correct plugins ("correct" can be computer dependent), it
+can achieve nearly perfect graphics and sound in many games.
+
+WWW: http://mupen64.emulation64.com/
+
+- Travis Poppe
+tlp@liquidx.org
diff --git a/emulators/mupen64-base/pkg-message b/emulators/mupen64-base/pkg-message
new file mode 100644
index 000000000000..d53470396a22
--- /dev/null
+++ b/emulators/mupen64-base/pkg-message
@@ -0,0 +1,9 @@
+-------------------------------------------------------------------------------
+If you have installed/upgraded any new plugins or are upgrading from a previous
+version of Mupen64, please note that in order for these changes to take effect,
+you -must- backup and then remove ~/.mupen64 first. After you have removed the
+directory, run 'mupen64' to re-create it. Then, manually copy back your save
+files/other data you need from the backup if necessary.
+
+Enjoy!
+-------------------------------------------------------------------------------
diff --git a/emulators/mupen64-base/pkg-plist b/emulators/mupen64-base/pkg-plist
new file mode 100644
index 000000000000..189a0b5c2e15
--- /dev/null
+++ b/emulators/mupen64-base/pkg-plist
@@ -0,0 +1,25 @@
+bin/mupen64
+libexec/mupen64
+share/mupen64/doc/compile.sh
+share/mupen64/doc/readme.dvi
+share/mupen64/doc/readme.pdf
+share/mupen64/doc/readme.latex
+share/mupen64/doc/readme.ps
+share/mupen64/lang/french.lng
+share/mupen64/lang/pt_BR.lng
+share/mupen64/lang/german.lng
+share/mupen64/lang/spanish.lng
+share/mupen64/lang/dutch.lng
+share/mupen64/lang/italian.lng
+share/mupen64/lang/english.lng
+share/mupen64/lang/catalan.lng
+share/mupen64/mupen64.ini
+share/mupen64/plugins/empty
+@dirrm share/mupen64/plugins
+@dirrm share/mupen64/lang
+@dirrm share/mupen64/doc
+@dirrm share/mupen64
+%%PORTDOCS%%%%DOCSDIR%%/whatsnew.txt
+%%PORTDOCS%%%%DOCSDIR%%/readme.pdf
+%%PORTDOCS%%%%DOCSDIR%%/readme.ps
+%%PORTDOCS%%@dirrm %%DOCSDIR%%