1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-14 07:43:06 +00:00

Xmess is a game console emulator which currently supports the

Nintendo Entertainment System (NES), Sega Genesis/Megadrive,
TRS-80 models 1 and 3, Colour Genie, Colecovision, Vectrex,
Apple ][ series, Atari 800, Atari 5200, Sega Master System/Game
Gear, Bally Astrocade, Kaypro 2x and PDP-1.

PR:		13201
Submitted by:	Juergen Lock <nox@jelal.kn-bremen.de>
This commit is contained in:
Chris D. Faulhaber 1999-12-24 14:01:14 +00:00
parent dfa7f9633b
commit 9489c320c5
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=23992
12 changed files with 297 additions and 0 deletions

56
emulators/xmess/Makefile Normal file
View File

@ -0,0 +1,56 @@
# New ports collection makefile for: xmess
# Version required: 0.2b4.1
# Date created: Tue Aug 17 00:21:10 MET DST 1999
# Whom: nox@jelal.kn-bremen.de
#
# $FreeBSD$
#
DISTNAME= unix02s4
PKGNAME= xmess-0.2b4.1
CATEGORIES= emulators
MASTER_SITES= http://mess.emuverse.com/files/ \
http://www.vintagegaming.com/hosted/vectrex/
DISTFILES= ${DISTNAME}.tgz pdp1.zip
#MAINTAINER= mycroft@NetBSD.ORG # NetBSD
MAINTAINER= nox@jelal.kn-bremen.de
LIB_DEPENDS= Xpm.4:${PORTSDIR}/graphics/xpm
EXTRACT_ONLY= ${DISTNAME}.tgz
USE_X_PREFIX= yes
USE_GMAKE= yes
MAKE_ENV+= OPSYS=${OPSYS} ARCH=${ARCH} MACHINE_ARCH=${ARCH} \
DESTDIR=${DESTDIR} \
INSTALL_MAN="${INSTALL_MAN}" \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
NETBSD_JOYSTICK="${NETBSD_JOYSTICK}" \
DISPLAY_METHOD="${DISPLAY_METHOD}"
MAKEFILE= makefile.unix
DISPLAY_METHOD= x11
ALL_TARGET= xmess.${DISPLAY_METHOD}
WRKSRC= ${WRKDIR}/xmess-0.2b4.1
MESSDIR= ${PREFIX}/share/xmess
MESSLIB= ${PREFIX}/lib/xmess
.if exists(/usr/include/machine/joystick.h)
NETBSD_JOYSTICK=yes
.else
NETBSD_JOYSTICK=no
.endif
post-patch:
(cd ${WRKSRC}/doc && ${SED} 's|@MESSDIR@|${MESSDIR}|;s|@MESSLIB@|${MESSLIB}|' xmessrc.dist >xmessrc)
do-install:
(cd ${WRKSRC} && ${INSTALL_PROGRAM} ${ALL_TARGET} ${PREFIX}/bin/xmess)
${MKDIR} ${MESSDIR}
(cd ${WRKSRC}/doc && ${INSTALL_DATA} xmessrc ${MESSDIR}/xmessrc)
${MKDIR} ${MESSLIB}
${INSTALL_DATA} ${_DISTDIR}/pdp1.zip ${MESSLIB}/spacewar.zip
@${ECHO} try \`xmess pdp1 spacewar\' for the original 1961 Space Wars
.include <bsd.port.mk>

3
emulators/xmess/distinfo Normal file
View File

@ -0,0 +1,3 @@
$NetBSD: md5,v 1.5 1999/05/22 19:41:31 tv Exp $
MD5 (unix02s4.tgz) = 2036d994aba7315d3204a9310c66f37c

View File

@ -0,0 +1,99 @@
$NetBSD: patch-aa,v 1.11 1999/07/27 03:20:38 mycroft Exp $
--- makefile.unix.orig Wed Aug 26 18:40:21 1998
+++ makefile.unix Mon Aug 31 04:06:42 1998
@@ -39,7 +39,7 @@
# GNU MAKE is MANDATORY !!!
# so please give me the path...
# if GNU make is "native" use this
-MAKE = make
+MAKE = gmake
# else ...
# MAKE=/usr/people/jantonio/bin/gmake
@@ -99,18 +99,18 @@
# *** Select destination directory for your compiled program , manual page
# and binary distribution ( if you want to... )
# ( only needed to install, not to compile... )
-DESTDIR = /usr/games
-MANDIR = /usr/local/man/man6
+DESTDIR = ${PREFIX}/bin
+MANDIR = ${PREFIX}/man/man6
DISTDIR = /home/ftp/pub/emulators/$(NAME)
# *** Where the ROM source tree ?
-ROMPATH = \"/usr/games/lib/$(NAME)\"
+ROMPATH = \"${PREFIX}/share/$(NAME)\"
# *** Where to store high scores ?
-SDIR = \"/usr/games/lib/$(NAME)\"
+SDIR = \"${PREFIX}/share/$(NAME)\"
# *** Where resides global configuration file ?
-MRC = \"/usr/games/lib/$(NAME)/$(NAME)rc\"
+MRC = \"${PREFIX}/share/$(NAME)/$(NAME)rc\"
##############################################################################
@@ -118,7 +118,9 @@
##############################################################################
# *** To disable joystick support comment next line
-# JOY = -DUSE_JOYSTICK
+ifeq (${NETBSD_JOYSTICK},yes)
+JOY = -DUSE_JOYSTICK
+endif
# *** To disable mouse support comment next line
MOUSE = -DUSE_MOUSE
@@ -137,7 +139,9 @@
# JSLIB = -lXi
# On iX86 based OS's, if supported, you can use standard joystick driver
-# JS = -DI386_JOYSTICK
+ifeq (${NETBSD_JOYSTICK},yes)
+JS = -DI386_JOYSTICK
+endif
# Linux FM-TOWNS game PAD joystick emulation support
# Thanks to Osamu Kurati for provided patch
@@ -158,8 +162,8 @@
# you might decide to use these feature. Otherwise, you should use a
# timer based audio code and ajust in src/unix/sound.h AUDIO_TIMER_FREQ item
#
-S_TIM = -DDONTUSE_TIMER
-# S_TIM = -DUSE_TIMER
+# S_TIM = -DDONTUSE_TIMER
+S_TIM = -DUSE_TIMER
# *** When using timer, you should provide the frequency to generate audio sample
# frames in your system. See readme.unix notes about these item
@@ -192,7 +196,7 @@
# note: x11 is the only one supported on all platforms
### normal X11
-DISPLAY_METHOD = x11
+#DISPLAY_METHOD = x11
### XFree86's DGA extension, only tested under linux
#DISPLAY_METHOD = xf86_dga
### svgalib, only supported under linux
@@ -215,14 +219,16 @@
# *** If you haven't the MIT-Shared Memory X Extensions, comment the following:
# ( Test if available by mean of xdpyinfo command )
# Comment it if not compiling for normal x11
-# MSHM = -DUSE_MITSHM
+ifeq (${DISPLAY_METHOD},x11)
+MSHM = -DUSE_MITSHM
+endif
# standard location for X11
# X11INC = -I/usr/include/X11
# X11LIB = -L/usr/lib/X11
# standard location for XFree86
-X11INC = -I/usr/X11R6/include
-X11LIB = -L/usr/X11R6/lib
+X11INC = -I${PREFIX}/include
+X11LIB = -L${PREFIX}/lib -Wl,-R${PREFIX}/lib
# for Sun systems
# X11INC = -I/usr/openwin/include
# X11LIB = -L/usr/openwin/lib

View File

@ -0,0 +1,12 @@
$NetBSD: patch-ab,v 1.4 1998/08/29 19:42:00 frueauf Exp $
--- src/unix/Makefile.orig Tue Aug 25 07:39:20 1998
+++ src/unix/Makefile Fri Aug 28 23:08:49 1998
@@ -16,6 +16,7 @@
$(TARGET): $(OBJS)
ar -rcv $@ $(OBJS)
+ ranlib $@
$(OBJDIR)/%.o: %.c xmame.h sound.h
$(CC) -I../../src/ $(CFLAGS) -o $@ -c $<

View File

@ -0,0 +1,13 @@
$NetBSD: patch-ae,v 1.2 1998/08/07 10:40:37 agc Exp $
--- doc/xmessrc.dist.orig Tue Jun 9 08:14:22 1998
+++ doc/xmessrc.dist Thu Jul 9 08:11:39 1998
@@ -21,7 +21,7 @@
############################ General options ##########################
#
# Mess needs a public-writable directory to store high scores
-spooldir /var/games/mess
+spooldir @MESSDIR@
# Type here the name of the display where play xmame
# overriden by DISPLAY environment variable. Not usefull in config file but...

View File

@ -0,0 +1,31 @@
$NetBSD: patch-af,v 1.2 1998/08/07 10:40:38 agc Exp $
--- src/unix/devices.c.orig Wed Jun 17 05:48:00 1998
+++ src/unix/devices.c Sat Jul 4 07:42:07 1998
@@ -60,7 +60,7 @@
#elif I386_JOYSTICK
void i386_poll_joystick (void);
/* specific joystick for PC clones */
-#ifdef netbsd_i386
+#ifdef __FreeBSD__
#include <machine/joystick.h>
extern struct joystick joy_data,joy_orig;
#else
@@ -658,7 +658,7 @@
{
#if ( defined USE_JOYSTICK ) && ( defined I386_JOYSTICK )
int res;
-#ifdef netbsd_i386
+#ifdef __FreeBSD__
res = read(joy_fd,&joy_data,sizeof(struct joystick) );
if (res == sizeof(struct joystick )) {
#else
@@ -666,7 +666,7 @@
if (res == sizeof(struct JS_DATA_TYPE )) {
#endif
/* get value of buttons */
-#ifdef netbsd_i386
+#ifdef __FreeBSD__
joy_b1 = joy_data.b1;
joy_b2 = joy_data.b2;
#else

View File

@ -0,0 +1,14 @@
Index: src/unix/FREEBSD.c
@@ -10,7 +10,12 @@
#include "sound.h"
#ifdef USE_JOYSTICK
+#ifdef __FreeBSD__
+#include <machine/joystick.h>
+#define JS_DATA_TYPE joystick
+#else
#include <linux/joystick.h>
+#endif
struct JS_DATA_TYPE joy_data,joy_orig;
int joy_fd; /* joystick file descriptor */
#endif

View File

@ -0,0 +1,26 @@
Index: makefile.unix
@@ -249,9 +249,9 @@
######## Alpha/Linux
# ARCH = linux_alpha
######## ix86/Linux
-ARCH = linux_i386
+# ARCH = linux_i386
######## ix86/FreeBSD and ix86/BSDi
-# ARCH = FREEBSD
+ARCH = FREEBSD
######## ix86/NetBSD
# ARCH = netbsd_i386
######## Sparc/SunOS ( no sound )
@@ -287,7 +287,12 @@
DEFS.linux_powerpc = -Dlinux -DACORN
DEFS.linux_alpha = -Dlinux -DLSB_FIRST -DAXP_ASM -DACORN
DEFS.linux_i386 = -Dlinux -DLSB_FIRST -DX86_ASM
+ifeq (${MACHINE_ARCH},i386)
DEFS.FREEBSD = -DLSB_FIRST -DX86_ASM -Dlinux -DFREEBSD_SOUND_WORKAROUND
+else
+# someone with an alpha pls check this
+DEFS.FREEBSD = -DLSB_FIRST -DACORN -Dlinux -DFREEBSD_SOUND_WORKAROUND
+endif
DEFS.netbsd_i386 = -DLSB_FIRST -DX86_ASM -DNETBSD -DUSE_AUDIO
DEFS.sunos = -Dsun -DCLOCKS_PER_SEC=1000000 -DACORN
DEFS.solaris = -Dsun -DACORN

View File

@ -0,0 +1,21 @@
Index: doc/xmessrc.dist
@@ -21,7 +21,7 @@
############################ General options ##########################
#
# Tell mess where to find it's rom/diskimages, : seperated path
-rompath /usr/lib/mess:/usr/local/lib/mess:/opt/mess
+rompath @MESSLIB@
# Mess needs a public-writable directory to store high scores
spooldir @MESSDIR@
@@ -77,8 +77,8 @@
#
# Define X and Y axis scale related to original bitmap. Default is 1
-widthscale 2
-heightscale 2
+widthscale 1
+heightscale 1
# If your screen refresh is to slow, you can skip frames with frameskip option
frameskip 3

View File

@ -0,0 +1 @@
X11 emulator for game consoles

15
emulators/xmess/pkg-descr Normal file
View File

@ -0,0 +1,15 @@
X-MESS is the X11 port of the MESS game console emulator.
MESS is virtual machine emulator; it includes emulators for the CPUs,
sound and video chips used in game consoles, as well as special purpose
PALs and detailed information about the memory layout of each machine.
MESS currently emulates the Nintendo Entertainment System (NES), Sega
Genesis/Megadrive, TRS-80 models 1 and 3, Colour Genie, Colecovision,
Vectrex, Apple ][ series, Atari 800, Atari 5200, Sega Master System/Game
Gear, Bally Astrocade, Kaypro 2x and PDP-1.
To play games in X-MESS you must have a copy of the original game,
extracted from a cartridge, floppy or tape image.
WWW: http://mess.emuverse.com/

View File

@ -0,0 +1,6 @@
@comment $NetBSD: PLIST,v 1.2 1998/08/29 04:24:29 mycroft Exp $
bin/xmess
lib/xmess/spacewar.zip
share/xmess/xmessrc
@dirrm lib/xmess
@dirrm share/xmess