aboutsummaryrefslogtreecommitdiffstats
path: root/emulators
diff options
context:
space:
mode:
authoralepulver <alepulver@FreeBSD.org>2007-02-25 23:22:58 +0800
committeralepulver <alepulver@FreeBSD.org>2007-02-25 23:22:58 +0800
commitd73224efce3e74e828062a88b83a7df1abdfc2be (patch)
treee85d2f066207d273ca689cc10032366c645d8913 /emulators
parent3a889d06b00c7a32ed8189828c6100fc71e4b8d1 (diff)
downloadfreebsd-ports-gnome-d73224efce3e74e828062a88b83a7df1abdfc2be.tar.gz
freebsd-ports-gnome-d73224efce3e74e828062a88b83a7df1abdfc2be.tar.zst
freebsd-ports-gnome-d73224efce3e74e828062a88b83a7df1abdfc2be.zip
SDLMESS is a port of the popular MESS. There are a few principles that guide
it's development: 1) Run on Linux/Unix, Mac OS X, and other SDL supported operating systems with as few changes as possible to the base Win32 code. This means we can track changes faster than larger more conventional ports, and we also maintain what I call "Firefox compatibilty" where learning a major app only needs to be done once per application, and it then applies across many operating systems. If you can use the command-line Win32 MESS, you already know how to use SDLMESS on any platform you may encounter it on. 2) MESS developers are important. By keeping quickly up to date, we make it easy for people on non-Windows platforms to make and submit changes to the core MESS code, and we offer native implementations of MESS's multi-window GUI debugger on both Linux/Unix and Mac OS X. WWW: http://rbelmont.mameworld.info/?page_id=163
Diffstat (limited to 'emulators')
-rw-r--r--emulators/Makefile1
-rw-r--r--emulators/mess/Makefile47
-rw-r--r--emulators/mess/distinfo3
-rw-r--r--emulators/mess/files/patch-makefile.sdl139
-rw-r--r--emulators/mess/files/pkg-message.in13
-rw-r--r--emulators/mess/files/sdlmess.in19
-rw-r--r--emulators/mess/pkg-descr17
-rw-r--r--emulators/mess/pkg-plist163
-rw-r--r--emulators/sdlmess/Makefile47
-rw-r--r--emulators/sdlmess/distinfo3
-rw-r--r--emulators/sdlmess/files/patch-makefile.sdl139
-rw-r--r--emulators/sdlmess/files/pkg-message.in13
-rw-r--r--emulators/sdlmess/files/sdlmess.in19
-rw-r--r--emulators/sdlmess/pkg-descr17
-rw-r--r--emulators/sdlmess/pkg-plist163
15 files changed, 803 insertions, 0 deletions
diff --git a/emulators/Makefile b/emulators/Makefile
index 9cff959b7215..0258aa18e6c4 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -111,6 +111,7 @@
SUBDIR += raine
SUBDIR += rtc
SUBDIR += sdlmame
+ SUBDIR += sdlmess
SUBDIR += sim
SUBDIR += sim6811
SUBDIR += ski
diff --git a/emulators/mess/Makefile b/emulators/mess/Makefile
new file mode 100644
index 000000000000..e76ed66bd353
--- /dev/null
+++ b/emulators/mess/Makefile
@@ -0,0 +1,47 @@
+# New ports collection makefile for: sdlmess
+# Date created: 2007-01-10
+# Whom: alepulver
+#
+# $FreeBSD$
+#
+
+PORTNAME= sdlmess
+PORTVERSION= 0.112
+CATEGORIES= emulators
+MASTER_SITES= http://rbelmont.mameworld.info/
+DISTNAME= ${PORTNAME}${PORTVERSION:S/.//}
+
+MAINTAINER= alepulver@FreeBSD.org
+COMMENT= SDL port of MESS (Multiple Emulator Super System)
+
+USE_ZIP= yes
+USE_GL= yes
+USE_GMAKE= yes
+USE_SDL= sdl
+MAKEFILE= makefile.sdl
+
+SUB_FILES= ${PORTNAME} pkg-message
+
+do-install:
+ ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${PREFIX}/bin
+ ${MKDIR} ${PREFIX}/libexec/${PORTNAME}
+.for f in chdman file2str imgtool messdocs messtest sdlmess
+ ${INSTALL_PROGRAM} ${WRKSRC}/${f} ${PREFIX}/libexec/${f:S/sdl//}
+.endfor
+ ${MKDIR} ${DATADIR}
+.for f in artwork cfg ctrlr hash ini memcard nvram snap software tools \
+ sysinfo.dat
+ ${CP} -R ${WRKSRC}/${f} ${DATADIR}
+.endfor
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/*.txt ${DOCSDIR}
+ ${CP} -R ${WRKSRC}/docs ${DOCSDIR}
+.endif
+
+post-install:
+ @${ECHO_CMD}
+ @${CAT} ${PKGMESSAGE}
+ @${ECHO_CMD}
+
+.include <bsd.port.mk>
diff --git a/emulators/mess/distinfo b/emulators/mess/distinfo
new file mode 100644
index 000000000000..2216eaba94b2
--- /dev/null
+++ b/emulators/mess/distinfo
@@ -0,0 +1,3 @@
+MD5 (sdlmess0112.zip) = 9c5c09527cd5ba5863204a87b1a0db9b
+SHA256 (sdlmess0112.zip) = 2c60d49d3583a0e6dadc5fa71f0cc2fb927b3885c610ec3599a2f3cc4a1c14d7
+SIZE (sdlmess0112.zip) = 25600058
diff --git a/emulators/mess/files/patch-makefile.sdl b/emulators/mess/files/patch-makefile.sdl
new file mode 100644
index 000000000000..1e911c1715e0
--- /dev/null
+++ b/emulators/mess/files/patch-makefile.sdl
@@ -0,0 +1,139 @@
+--- ./makefile.sdl.orig Wed Feb 7 15:35:34 2007
++++ ./makefile.sdl Fri Feb 23 01:26:06 2007
+@@ -37,7 +37,7 @@
+ #
+ # for SDLMESS, set this to linux or macosx (lowercase is important!)
+ #
+-SUBARCH = linux
++SUBARCH = freebsd
+
+
+ #-------------------------------------------------
+@@ -48,11 +48,13 @@
+ # uncomment next line to include the debugger
+ # DEBUG = 1
+
++ifeq ($(ARCH),i386)
+ # uncomment next line to use DRC MIPS3 engine
+ X86_MIPS3_DRC = 1
+
+ # uncomment next line to use DRC PowerPC engine
+ X86_PPC_DRC = 1
++endif
+
+ #-------------------------------------------------
+ # specify build options; see each option below
+@@ -155,8 +157,8 @@
+
+ # compiler, linker and utilities
+ AR = @ar
+-CC = @gcc
+-LD = gcc
++CC := @$(CC)
++LD = $(CC)
+ MD = -mkdir
+ RM = @rm -f
+
+@@ -167,49 +169,8 @@
+ #-------------------------------------------------
+
+ # by default, don't compile for a specific target CPU
+-NAME = sdl$(PREFIX)$(TARGET)
+-ARCH =
+-
+-# architecture-specific builds get extra options
+-ifdef ATHLON
+-NAME = $(PREFIX)$(TARGET)at
+-ARCH = -march=athlon
+-endif
+-
+-ifdef I686
+-NAME = $(PREFIX)$(TARGET)pp
+-ARCH = -march=pentiumpro
+-endif
+-
+-ifdef P4
+-NAME = $(PREFIX)$(TARGET)p4
+-ARCH = -march=pentium4
+-endif
+-
+-ifdef AMD64
+-NAME = $(PREFIX)$(TARGET)64
+-ARCH = -march=athlon64
+-endif
+-
+-ifdef PM
+-NAME = $(PREFIX)$(TARGET)pm
+-ARCH = -march=pentium3 -msse2
+-endif
+-
+-ifdef G4
+-NAME = $(PREFIX)$(TARGET)g4
+-ARCH = -mcpu=G4
+-endif
+-
+-ifdef G5
+-NAME = $(PREFIX)$(TARGET)g5
+-ARCH = -mcpu=G5
+-endif
+-
+-ifdef CELL
+-NAME = $(PREFIX)$(TARGET)cbe
++NAME = sdl$(TARGET)
+ ARCH =
+-endif
+
+ # debug builds just get the 'd' suffix and nothing more
+ ifdef DEBUG
+@@ -255,7 +216,7 @@
+ MESSTEST = messtest$(EXE)
+ MESSDOCS = messdocs$(EXE)
+
+-CFLAGS = $(OPT_FLAGS) -std=gnu89 -Imess -Isrc -Isrc/includes -Isrc/$(MAMEOS) -I$(OBJ)/mess/layout -I$(OBJ)/layout -Imess/$(MAMEOS)
++CFLAGS += $(OPT_FLAGS) -std=gnu89 -Imess -Isrc -Isrc/includes -Isrc/$(MAMEOS) -I$(OBJ)/mess/layout -I$(OBJ)/layout -Imess/$(MAMEOS) -I$(LOCALBASE)/include -I$(X11BASE)/include
+
+ ifdef SYMBOLS
+ ifdef PPC
+@@ -267,7 +228,7 @@
+ endif # PPC
+ endif # SYMBOLS
+
+-CFLAGS += $(ARCH) \
++CFLAGS += \
+ -Wall \
+ -Wpointer-arith \
+ -Wbad-function-cast \
+@@ -279,7 +240,7 @@
+ -Wdeclaration-after-statement
+
+ ifneq ($(OPTIMIZE),0)
+-CFLAGS += -DNDEBUG $(ARCH) -fno-strict-aliasing
++CFLAGS += -DNDEBUG -fno-strict-aliasing
+ endif
+
+ CFLAGS += -O$(OPTIMIZE)
+@@ -287,11 +248,9 @@
+ # extra options needed *only* for the osd files
+ CFLAGSOSDEPEND = $(CFLAGS)
+
+-LDFLAGS = -WO
++LDFLAGS += -WO -L$(LOCALBASE)/lib -L$(X11BASE)/lib
+
+-ifdef SYMBOLS
+-LDFLAGS =
+-else
++ifndef SYMBOLS
+ LDFLAGS += -s
+ endif
+
+@@ -404,6 +363,10 @@
+ # add SDLMAME subarch definitions
+ ifeq ($(SUBARCH),linux)
+ CFLAGS += -DSDLMAME_LINUX
++endif
++
++ifeq ($(SUBARCH),freebsd)
++CFLAGS += -DSDLMAME_FREEBSD -DSDLMAME_NO64BITIO
+ endif
+
+ ifeq ($(SUBARCH),macosx)
diff --git a/emulators/mess/files/pkg-message.in b/emulators/mess/files/pkg-message.in
new file mode 100644
index 000000000000..07020956f626
--- /dev/null
+++ b/emulators/mess/files/pkg-message.in
@@ -0,0 +1,13 @@
+==============================================================================
+
+SDLMESS has been installed.
+
+The MESS tools are installed in "%%PREFIX%%/libexec/sdlmess"
+to avoid conflicting with other MESS ports.
+
+A wrapper script "sdlmess" has been installed. It creates a "~/.sdlmess"
+directory mirroring the directory tree under "%%DATADIR%%"
+when you run it for the first time, and starts the program from there. So
+place all MESS files (e.g. ROMs, cheats, etc.) in "~/.sdlmess".
+
+==============================================================================
diff --git a/emulators/mess/files/sdlmess.in b/emulators/mess/files/sdlmess.in
new file mode 100644
index 000000000000..df44e1bf27fd
--- /dev/null
+++ b/emulators/mess/files/sdlmess.in
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# The executable needs to be run from its data directory, and needs to store
+# configuration in it. We therefore mirror the data directory hierarchy in
+# ~/.cube, and create symlinks to the data files.
+#
+
+if [ -d ~/.sdlmess ]
+then
+ echo "Using existing ~/.sdlmess directory."
+else
+ echo "Creating ~/.sdlmess directory."
+ cd %%DATADIR%% || exit 1
+ find * -type d -exec mkdir -p ~/.sdlmess/{} \;
+ find * -type f -exec ln -s %%DATADIR%%/{} ~/.sdlmess/{} \; 2>/dev/null
+fi
+
+cd ~/.sdlmess || exit 1
+exec %%PREFIX%%/libexec/sdlmess/mess "$@"
diff --git a/emulators/mess/pkg-descr b/emulators/mess/pkg-descr
new file mode 100644
index 000000000000..c0bb806b0137
--- /dev/null
+++ b/emulators/mess/pkg-descr
@@ -0,0 +1,17 @@
+SDLMESS is a port of the popular MESS. There are a few principles that guide
+it's development:
+
+1) Run on Linux/Unix, Mac OS X, and other SDL supported operating systems with
+ as few changes as possible to the base Win32 code. This means we can track
+ changes faster than larger more conventional ports, and we also maintain
+ what I call "Firefox compatibilty" where learning a major app only needs to
+ be done once per application, and it then applies across many operating
+ systems. If you can use the command-line Win32 MESS, you already know how
+ to use SDLMESS on any platform you may encounter it on.
+
+2) MESS developers are important. By keeping quickly up to date, we make it
+ easy for people on non-Windows platforms to make and submit changes to the
+ core MESS code, and we offer native implementations of MESS's multi-window
+ GUI debugger on both Linux/Unix and Mac OS X.
+
+WWW: http://rbelmont.mameworld.info/?page_id=163
diff --git a/emulators/mess/pkg-plist b/emulators/mess/pkg-plist
new file mode 100644
index 000000000000..d179fde71646
--- /dev/null
+++ b/emulators/mess/pkg-plist
@@ -0,0 +1,163 @@
+bin/sdlmess
+libexec/chdman
+libexec/file2str
+libexec/imgtool
+libexec/mess
+libexec/messdocs
+libexec/messtest
+%%PORTDOCS%%%%DOCSDIR%%/SDLMESS.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/credits.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/faq.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/images/logo.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/imgtool.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/license.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/mame.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/messnew.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/messroms.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/newvideo.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/style.css
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/choice.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/compile.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/config.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/control.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/guiconf.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/guiuse.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/command.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/frog.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/gui.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/guiaudit.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/iniicon.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/keybcnt.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/newmenu.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/oldmenu.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/prop.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/startup.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/install.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/instbios.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/main.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/mgebios.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/osmenu.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/runsw.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/suppsys.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/update.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/win32cmd.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/wintoc.xml
+%%PORTDOCS%%%%DOCSDIR%%/whatsnew.txt
+%%DATADIR%%/artwork/avigo.zip
+%%DATADIR%%/artwork/dir.txt
+%%DATADIR%%/artwork/floppyr.png
+%%DATADIR%%/artwork/floppyw.png
+%%DATADIR%%/artwork/kim1.zip
+%%DATADIR%%/artwork/ledoff.png
+%%DATADIR%%/artwork/ledon.png
+%%DATADIR%%/artwork/mk1.zip
+%%DATADIR%%/artwork/mk2.zip
+%%DATADIR%%/artwork/mpf1.zip
+%%DATADIR%%/artwork/nes.zip
+%%DATADIR%%/artwork/pc1401.zip
+%%DATADIR%%/artwork/pc1402.zip
+%%DATADIR%%/artwork/pc1403.zip
+%%DATADIR%%/artwork/ssystem3.zip
+%%DATADIR%%/artwork/thomson.lay
+%%DATADIR%%/cfg/dir.txt
+%%DATADIR%%/ctrlr/hotrod.cfg
+%%DATADIR%%/ctrlr/hotrodse.cfg
+%%DATADIR%%/ctrlr/slikstik.cfg
+%%DATADIR%%/ctrlr/standard.cfg
+%%DATADIR%%/ctrlr/xarcade.cfg
+%%DATADIR%%/hash/a2600.hsi
+%%DATADIR%%/hash/a5200.hsi
+%%DATADIR%%/hash/a7800.hsi
+%%DATADIR%%/hash/a800.hsi
+%%DATADIR%%/hash/a800xl.hsi
+%%DATADIR%%/hash/advision.hsi
+%%DATADIR%%/hash/apexc.hsi
+%%DATADIR%%/hash/apple1.hsi
+%%DATADIR%%/hash/apple2.hsi
+%%DATADIR%%/hash/aquarius.hsi
+%%DATADIR%%/hash/arcadia.hsi
+%%DATADIR%%/hash/astrocde.hsi
+%%DATADIR%%/hash/bbca.hsi
+%%DATADIR%%/hash/c128.hsi
+%%DATADIR%%/hash/c16.hsi
+%%DATADIR%%/hash/c64.hsi
+%%DATADIR%%/hash/cbm30.hsi
+%%DATADIR%%/hash/cbm40.hsi
+%%DATADIR%%/hash/cbm610.hsi
+%%DATADIR%%/hash/cbm80.hsi
+%%DATADIR%%/hash/cgenie.hsi
+%%DATADIR%%/hash/channelf.hsi
+%%DATADIR%%/hash/coco.hsi
+%%DATADIR%%/hash/coleco.hsi
+%%DATADIR%%/hash/coupe.hsi
+%%DATADIR%%/hash/cpc464.hsi
+%%DATADIR%%/hash/cpc6128.hsi
+%%DATADIR%%/hash/dragon64.hsi
+%%DATADIR%%/hash/ep128.hsi
+%%DATADIR%%/hash/exidy.hsi
+%%DATADIR%%/hash/gameboy.hsi
+%%DATADIR%%/hash/gamegear.hsi
+%%DATADIR%%/hash/gen_usa.hsi
+%%DATADIR%%/hash/ibmpc.hsi
+%%DATADIR%%/hash/ibmpcjr.hsi
+%%DATADIR%%/hash/intv.hsi
+%%DATADIR%%/hash/jaguar.hsi
+%%DATADIR%%/hash/jupiter.hsi
+%%DATADIR%%/hash/laser210.hsi
+%%DATADIR%%/hash/lisa2.hsi
+%%DATADIR%%/hash/lviv.hsi
+%%DATADIR%%/hash/lynx.hsi
+%%DATADIR%%/hash/max.hsi
+%%DATADIR%%/hash/mc10.hsi
+%%DATADIR%%/hash/microtan.hsi
+%%DATADIR%%/hash/msx.hsi
+%%DATADIR%%/hash/msx2.hsi
+%%DATADIR%%/hash/mtx512.hsi
+%%DATADIR%%/hash/n64.hsi
+%%DATADIR%%/hash/nascom1.hsi
+%%DATADIR%%/hash/nes.hsi
+%%DATADIR%%/hash/odyssey2.hsi
+%%DATADIR%%/hash/oric.hsi
+%%DATADIR%%/hash/p2000t.hsi
+%%DATADIR%%/hash/pce.hsi
+%%DATADIR%%/hash/pdp1.hsi
+%%DATADIR%%/hash/pet.hsi
+%%DATADIR%%/hash/psx.hsi
+%%DATADIR%%/hash/sms.hsi
+%%DATADIR%%/hash/snes.hsi
+%%DATADIR%%/hash/sordm5.hsi
+%%DATADIR%%/hash/spectrum.hsi
+%%DATADIR%%/hash/studio2.hsi
+%%DATADIR%%/hash/svi318.hsi
+%%DATADIR%%/hash/svision.hsi
+%%DATADIR%%/hash/ti99_4a.hsi
+%%DATADIR%%/hash/ts2068.hsi
+%%DATADIR%%/hash/vc4000.hsi
+%%DATADIR%%/hash/vectrex.hsi
+%%DATADIR%%/hash/vic20.hsi
+%%DATADIR%%/hash/wswan.hsi
+%%DATADIR%%/ini/dir.txt
+%%DATADIR%%/memcard/dir.txt
+%%DATADIR%%/nvram/dir.txt
+%%DATADIR%%/snap/dir.txt
+%%DATADIR%%/software/dir.txt
+%%DATADIR%%/sysinfo.dat
+%%DATADIR%%/tools/dir.txt
+@dirrm %%DATADIR%%/tools
+@dirrm %%DATADIR%%/software
+@dirrm %%DATADIR%%/snap
+@dirrm %%DATADIR%%/nvram
+@dirrm %%DATADIR%%/memcard
+@dirrm %%DATADIR%%/ini
+@dirrm %%DATADIR%%/hash
+@dirrm %%DATADIR%%/ctrlr
+@dirrm %%DATADIR%%/cfg
+@dirrm %%DATADIR%%/artwork
+@dirrm %%DATADIR%%
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/docs/windows/images
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/docs/windows
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/docs/images
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/docs
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
+@dirrm libexec/sdlmess
diff --git a/emulators/sdlmess/Makefile b/emulators/sdlmess/Makefile
new file mode 100644
index 000000000000..e76ed66bd353
--- /dev/null
+++ b/emulators/sdlmess/Makefile
@@ -0,0 +1,47 @@
+# New ports collection makefile for: sdlmess
+# Date created: 2007-01-10
+# Whom: alepulver
+#
+# $FreeBSD$
+#
+
+PORTNAME= sdlmess
+PORTVERSION= 0.112
+CATEGORIES= emulators
+MASTER_SITES= http://rbelmont.mameworld.info/
+DISTNAME= ${PORTNAME}${PORTVERSION:S/.//}
+
+MAINTAINER= alepulver@FreeBSD.org
+COMMENT= SDL port of MESS (Multiple Emulator Super System)
+
+USE_ZIP= yes
+USE_GL= yes
+USE_GMAKE= yes
+USE_SDL= sdl
+MAKEFILE= makefile.sdl
+
+SUB_FILES= ${PORTNAME} pkg-message
+
+do-install:
+ ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${PREFIX}/bin
+ ${MKDIR} ${PREFIX}/libexec/${PORTNAME}
+.for f in chdman file2str imgtool messdocs messtest sdlmess
+ ${INSTALL_PROGRAM} ${WRKSRC}/${f} ${PREFIX}/libexec/${f:S/sdl//}
+.endfor
+ ${MKDIR} ${DATADIR}
+.for f in artwork cfg ctrlr hash ini memcard nvram snap software tools \
+ sysinfo.dat
+ ${CP} -R ${WRKSRC}/${f} ${DATADIR}
+.endfor
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/*.txt ${DOCSDIR}
+ ${CP} -R ${WRKSRC}/docs ${DOCSDIR}
+.endif
+
+post-install:
+ @${ECHO_CMD}
+ @${CAT} ${PKGMESSAGE}
+ @${ECHO_CMD}
+
+.include <bsd.port.mk>
diff --git a/emulators/sdlmess/distinfo b/emulators/sdlmess/distinfo
new file mode 100644
index 000000000000..2216eaba94b2
--- /dev/null
+++ b/emulators/sdlmess/distinfo
@@ -0,0 +1,3 @@
+MD5 (sdlmess0112.zip) = 9c5c09527cd5ba5863204a87b1a0db9b
+SHA256 (sdlmess0112.zip) = 2c60d49d3583a0e6dadc5fa71f0cc2fb927b3885c610ec3599a2f3cc4a1c14d7
+SIZE (sdlmess0112.zip) = 25600058
diff --git a/emulators/sdlmess/files/patch-makefile.sdl b/emulators/sdlmess/files/patch-makefile.sdl
new file mode 100644
index 000000000000..1e911c1715e0
--- /dev/null
+++ b/emulators/sdlmess/files/patch-makefile.sdl
@@ -0,0 +1,139 @@
+--- ./makefile.sdl.orig Wed Feb 7 15:35:34 2007
++++ ./makefile.sdl Fri Feb 23 01:26:06 2007
+@@ -37,7 +37,7 @@
+ #
+ # for SDLMESS, set this to linux or macosx (lowercase is important!)
+ #
+-SUBARCH = linux
++SUBARCH = freebsd
+
+
+ #-------------------------------------------------
+@@ -48,11 +48,13 @@
+ # uncomment next line to include the debugger
+ # DEBUG = 1
+
++ifeq ($(ARCH),i386)
+ # uncomment next line to use DRC MIPS3 engine
+ X86_MIPS3_DRC = 1
+
+ # uncomment next line to use DRC PowerPC engine
+ X86_PPC_DRC = 1
++endif
+
+ #-------------------------------------------------
+ # specify build options; see each option below
+@@ -155,8 +157,8 @@
+
+ # compiler, linker and utilities
+ AR = @ar
+-CC = @gcc
+-LD = gcc
++CC := @$(CC)
++LD = $(CC)
+ MD = -mkdir
+ RM = @rm -f
+
+@@ -167,49 +169,8 @@
+ #-------------------------------------------------
+
+ # by default, don't compile for a specific target CPU
+-NAME = sdl$(PREFIX)$(TARGET)
+-ARCH =
+-
+-# architecture-specific builds get extra options
+-ifdef ATHLON
+-NAME = $(PREFIX)$(TARGET)at
+-ARCH = -march=athlon
+-endif
+-
+-ifdef I686
+-NAME = $(PREFIX)$(TARGET)pp
+-ARCH = -march=pentiumpro
+-endif
+-
+-ifdef P4
+-NAME = $(PREFIX)$(TARGET)p4
+-ARCH = -march=pentium4
+-endif
+-
+-ifdef AMD64
+-NAME = $(PREFIX)$(TARGET)64
+-ARCH = -march=athlon64
+-endif
+-
+-ifdef PM
+-NAME = $(PREFIX)$(TARGET)pm
+-ARCH = -march=pentium3 -msse2
+-endif
+-
+-ifdef G4
+-NAME = $(PREFIX)$(TARGET)g4
+-ARCH = -mcpu=G4
+-endif
+-
+-ifdef G5
+-NAME = $(PREFIX)$(TARGET)g5
+-ARCH = -mcpu=G5
+-endif
+-
+-ifdef CELL
+-NAME = $(PREFIX)$(TARGET)cbe
++NAME = sdl$(TARGET)
+ ARCH =
+-endif
+
+ # debug builds just get the 'd' suffix and nothing more
+ ifdef DEBUG
+@@ -255,7 +216,7 @@
+ MESSTEST = messtest$(EXE)
+ MESSDOCS = messdocs$(EXE)
+
+-CFLAGS = $(OPT_FLAGS) -std=gnu89 -Imess -Isrc -Isrc/includes -Isrc/$(MAMEOS) -I$(OBJ)/mess/layout -I$(OBJ)/layout -Imess/$(MAMEOS)
++CFLAGS += $(OPT_FLAGS) -std=gnu89 -Imess -Isrc -Isrc/includes -Isrc/$(MAMEOS) -I$(OBJ)/mess/layout -I$(OBJ)/layout -Imess/$(MAMEOS) -I$(LOCALBASE)/include -I$(X11BASE)/include
+
+ ifdef SYMBOLS
+ ifdef PPC
+@@ -267,7 +228,7 @@
+ endif # PPC
+ endif # SYMBOLS
+
+-CFLAGS += $(ARCH) \
++CFLAGS += \
+ -Wall \
+ -Wpointer-arith \
+ -Wbad-function-cast \
+@@ -279,7 +240,7 @@
+ -Wdeclaration-after-statement
+
+ ifneq ($(OPTIMIZE),0)
+-CFLAGS += -DNDEBUG $(ARCH) -fno-strict-aliasing
++CFLAGS += -DNDEBUG -fno-strict-aliasing
+ endif
+
+ CFLAGS += -O$(OPTIMIZE)
+@@ -287,11 +248,9 @@
+ # extra options needed *only* for the osd files
+ CFLAGSOSDEPEND = $(CFLAGS)
+
+-LDFLAGS = -WO
++LDFLAGS += -WO -L$(LOCALBASE)/lib -L$(X11BASE)/lib
+
+-ifdef SYMBOLS
+-LDFLAGS =
+-else
++ifndef SYMBOLS
+ LDFLAGS += -s
+ endif
+
+@@ -404,6 +363,10 @@
+ # add SDLMAME subarch definitions
+ ifeq ($(SUBARCH),linux)
+ CFLAGS += -DSDLMAME_LINUX
++endif
++
++ifeq ($(SUBARCH),freebsd)
++CFLAGS += -DSDLMAME_FREEBSD -DSDLMAME_NO64BITIO
+ endif
+
+ ifeq ($(SUBARCH),macosx)
diff --git a/emulators/sdlmess/files/pkg-message.in b/emulators/sdlmess/files/pkg-message.in
new file mode 100644
index 000000000000..07020956f626
--- /dev/null
+++ b/emulators/sdlmess/files/pkg-message.in
@@ -0,0 +1,13 @@
+==============================================================================
+
+SDLMESS has been installed.
+
+The MESS tools are installed in "%%PREFIX%%/libexec/sdlmess"
+to avoid conflicting with other MESS ports.
+
+A wrapper script "sdlmess" has been installed. It creates a "~/.sdlmess"
+directory mirroring the directory tree under "%%DATADIR%%"
+when you run it for the first time, and starts the program from there. So
+place all MESS files (e.g. ROMs, cheats, etc.) in "~/.sdlmess".
+
+==============================================================================
diff --git a/emulators/sdlmess/files/sdlmess.in b/emulators/sdlmess/files/sdlmess.in
new file mode 100644
index 000000000000..df44e1bf27fd
--- /dev/null
+++ b/emulators/sdlmess/files/sdlmess.in
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# The executable needs to be run from its data directory, and needs to store
+# configuration in it. We therefore mirror the data directory hierarchy in
+# ~/.cube, and create symlinks to the data files.
+#
+
+if [ -d ~/.sdlmess ]
+then
+ echo "Using existing ~/.sdlmess directory."
+else
+ echo "Creating ~/.sdlmess directory."
+ cd %%DATADIR%% || exit 1
+ find * -type d -exec mkdir -p ~/.sdlmess/{} \;
+ find * -type f -exec ln -s %%DATADIR%%/{} ~/.sdlmess/{} \; 2>/dev/null
+fi
+
+cd ~/.sdlmess || exit 1
+exec %%PREFIX%%/libexec/sdlmess/mess "$@"
diff --git a/emulators/sdlmess/pkg-descr b/emulators/sdlmess/pkg-descr
new file mode 100644
index 000000000000..c0bb806b0137
--- /dev/null
+++ b/emulators/sdlmess/pkg-descr
@@ -0,0 +1,17 @@
+SDLMESS is a port of the popular MESS. There are a few principles that guide
+it's development:
+
+1) Run on Linux/Unix, Mac OS X, and other SDL supported operating systems with
+ as few changes as possible to the base Win32 code. This means we can track
+ changes faster than larger more conventional ports, and we also maintain
+ what I call "Firefox compatibilty" where learning a major app only needs to
+ be done once per application, and it then applies across many operating
+ systems. If you can use the command-line Win32 MESS, you already know how
+ to use SDLMESS on any platform you may encounter it on.
+
+2) MESS developers are important. By keeping quickly up to date, we make it
+ easy for people on non-Windows platforms to make and submit changes to the
+ core MESS code, and we offer native implementations of MESS's multi-window
+ GUI debugger on both Linux/Unix and Mac OS X.
+
+WWW: http://rbelmont.mameworld.info/?page_id=163
diff --git a/emulators/sdlmess/pkg-plist b/emulators/sdlmess/pkg-plist
new file mode 100644
index 000000000000..d179fde71646
--- /dev/null
+++ b/emulators/sdlmess/pkg-plist
@@ -0,0 +1,163 @@
+bin/sdlmess
+libexec/chdman
+libexec/file2str
+libexec/imgtool
+libexec/mess
+libexec/messdocs
+libexec/messtest
+%%PORTDOCS%%%%DOCSDIR%%/SDLMESS.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/credits.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/faq.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/images/logo.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/imgtool.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/license.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/mame.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/messnew.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/messroms.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/newvideo.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/style.css
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows.txt
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/choice.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/compile.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/config.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/control.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/guiconf.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/guiuse.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/command.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/frog.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/gui.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/guiaudit.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/iniicon.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/keybcnt.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/newmenu.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/oldmenu.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/prop.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/images/startup.gif
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/install.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/instbios.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/main.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/mgebios.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/osmenu.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/runsw.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/suppsys.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/update.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/windows/win32cmd.htm
+%%PORTDOCS%%%%DOCSDIR%%/docs/wintoc.xml
+%%PORTDOCS%%%%DOCSDIR%%/whatsnew.txt
+%%DATADIR%%/artwork/avigo.zip
+%%DATADIR%%/artwork/dir.txt
+%%DATADIR%%/artwork/floppyr.png
+%%DATADIR%%/artwork/floppyw.png
+%%DATADIR%%/artwork/kim1.zip
+%%DATADIR%%/artwork/ledoff.png
+%%DATADIR%%/artwork/ledon.png
+%%DATADIR%%/artwork/mk1.zip
+%%DATADIR%%/artwork/mk2.zip
+%%DATADIR%%/artwork/mpf1.zip
+%%DATADIR%%/artwork/nes.zip
+%%DATADIR%%/artwork/pc1401.zip
+%%DATADIR%%/artwork/pc1402.zip
+%%DATADIR%%/artwork/pc1403.zip
+%%DATADIR%%/artwork/ssystem3.zip
+%%DATADIR%%/artwork/thomson.lay
+%%DATADIR%%/cfg/dir.txt
+%%DATADIR%%/ctrlr/hotrod.cfg
+%%DATADIR%%/ctrlr/hotrodse.cfg
+%%DATADIR%%/ctrlr/slikstik.cfg
+%%DATADIR%%/ctrlr/standard.cfg
+%%DATADIR%%/ctrlr/xarcade.cfg
+%%DATADIR%%/hash/a2600.hsi
+%%DATADIR%%/hash/a5200.hsi
+%%DATADIR%%/hash/a7800.hsi
+%%DATADIR%%/hash/a800.hsi
+%%DATADIR%%/hash/a800xl.hsi
+%%DATADIR%%/hash/advision.hsi
+%%DATADIR%%/hash/apexc.hsi
+%%DATADIR%%/hash/apple1.hsi
+%%DATADIR%%/hash/apple2.hsi
+%%DATADIR%%/hash/aquarius.hsi
+%%DATADIR%%/hash/arcadia.hsi
+%%DATADIR%%/hash/astrocde.hsi
+%%DATADIR%%/hash/bbca.hsi
+%%DATADIR%%/hash/c128.hsi
+%%DATADIR%%/hash/c16.hsi
+%%DATADIR%%/hash/c64.hsi
+%%DATADIR%%/hash/cbm30.hsi
+%%DATADIR%%/hash/cbm40.hsi
+%%DATADIR%%/hash/cbm610.hsi
+%%DATADIR%%/hash/cbm80.hsi
+%%DATADIR%%/hash/cgenie.hsi
+%%DATADIR%%/hash/channelf.hsi
+%%DATADIR%%/hash/coco.hsi
+%%DATADIR%%/hash/coleco.hsi
+%%DATADIR%%/hash/coupe.hsi
+%%DATADIR%%/hash/cpc464.hsi
+%%DATADIR%%/hash/cpc6128.hsi
+%%DATADIR%%/hash/dragon64.hsi
+%%DATADIR%%/hash/ep128.hsi
+%%DATADIR%%/hash/exidy.hsi
+%%DATADIR%%/hash/gameboy.hsi
+%%DATADIR%%/hash/gamegear.hsi
+%%DATADIR%%/hash/gen_usa.hsi
+%%DATADIR%%/hash/ibmpc.hsi
+%%DATADIR%%/hash/ibmpcjr.hsi
+%%DATADIR%%/hash/intv.hsi
+%%DATADIR%%/hash/jaguar.hsi
+%%DATADIR%%/hash/jupiter.hsi
+%%DATADIR%%/hash/laser210.hsi
+%%DATADIR%%/hash/lisa2.hsi
+%%DATADIR%%/hash/lviv.hsi
+%%DATADIR%%/hash/lynx.hsi
+%%DATADIR%%/hash/max.hsi
+%%DATADIR%%/hash/mc10.hsi
+%%DATADIR%%/hash/microtan.hsi
+%%DATADIR%%/hash/msx.hsi
+%%DATADIR%%/hash/msx2.hsi
+%%DATADIR%%/hash/mtx512.hsi
+%%DATADIR%%/hash/n64.hsi
+%%DATADIR%%/hash/nascom1.hsi
+%%DATADIR%%/hash/nes.hsi
+%%DATADIR%%/hash/odyssey2.hsi
+%%DATADIR%%/hash/oric.hsi
+%%DATADIR%%/hash/p2000t.hsi
+%%DATADIR%%/hash/pce.hsi
+%%DATADIR%%/hash/pdp1.hsi
+%%DATADIR%%/hash/pet.hsi
+%%DATADIR%%/hash/psx.hsi
+%%DATADIR%%/hash/sms.hsi
+%%DATADIR%%/hash/snes.hsi
+%%DATADIR%%/hash/sordm5.hsi
+%%DATADIR%%/hash/spectrum.hsi
+%%DATADIR%%/hash/studio2.hsi
+%%DATADIR%%/hash/svi318.hsi
+%%DATADIR%%/hash/svision.hsi
+%%DATADIR%%/hash/ti99_4a.hsi
+%%DATADIR%%/hash/ts2068.hsi
+%%DATADIR%%/hash/vc4000.hsi
+%%DATADIR%%/hash/vectrex.hsi
+%%DATADIR%%/hash/vic20.hsi
+%%DATADIR%%/hash/wswan.hsi
+%%DATADIR%%/ini/dir.txt
+%%DATADIR%%/memcard/dir.txt
+%%DATADIR%%/nvram/dir.txt
+%%DATADIR%%/snap/dir.txt
+%%DATADIR%%/software/dir.txt
+%%DATADIR%%/sysinfo.dat
+%%DATADIR%%/tools/dir.txt
+@dirrm %%DATADIR%%/tools
+@dirrm %%DATADIR%%/software
+@dirrm %%DATADIR%%/snap
+@dirrm %%DATADIR%%/nvram
+@dirrm %%DATADIR%%/memcard
+@dirrm %%DATADIR%%/ini
+@dirrm %%DATADIR%%/hash
+@dirrm %%DATADIR%%/ctrlr
+@dirrm %%DATADIR%%/cfg
+@dirrm %%DATADIR%%/artwork
+@dirrm %%DATADIR%%
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/docs/windows/images
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/docs/windows
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/docs/images
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/docs
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
+@dirrm libexec/sdlmess