From d57538b2e09c609c3f8d9fe83b820c602d0b41df Mon Sep 17 00:00:00 2001 From: Dirk Meyer Date: Tue, 12 Oct 2004 04:53:51 +0000 Subject: 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/ PR: 71895 Submitted by: Travis Poppe --- emulators/Makefile | 1 + emulators/mupen64-base/Makefile | 74 +++++++++++++++ emulators/mupen64-base/distinfo | 2 + emulators/mupen64-base/files/mupen64.in | 64 +++++++++++++ emulators/mupen64-base/files/patch-Makefile | 16 ++++ emulators/mupen64-base/files/patch-configure | 128 ++++++++++++++++++++++++++ emulators/mupen64-base/files/patch-main_gtk.c | 30 ++++++ emulators/mupen64-base/files/patch-plugin.c | 10 ++ emulators/mupen64-base/pkg-descr | 15 +++ emulators/mupen64-base/pkg-message | 9 ++ emulators/mupen64-base/pkg-plist | 25 +++++ 11 files changed, 374 insertions(+) create mode 100644 emulators/mupen64-base/Makefile create mode 100644 emulators/mupen64-base/distinfo create mode 100644 emulators/mupen64-base/files/mupen64.in create mode 100644 emulators/mupen64-base/files/patch-Makefile create mode 100644 emulators/mupen64-base/files/patch-configure create mode 100644 emulators/mupen64-base/files/patch-main_gtk.c create mode 100644 emulators/mupen64-base/files/patch-plugin.c create mode 100644 emulators/mupen64-base/pkg-descr create mode 100644 emulators/mupen64-base/pkg-message create mode 100644 emulators/mupen64-base/pkg-plist (limited to 'emulators') 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 + +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 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 " > "$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 " >> "$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 + #include + #include ++#include + + #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%% -- cgit v1.2.3