aboutsummaryrefslogtreecommitdiff
path: root/games/tenebrae
diff options
context:
space:
mode:
authorKirill Ponomarev <krion@FreeBSD.org>2004-03-17 09:30:31 +0000
committerKirill Ponomarev <krion@FreeBSD.org>2004-03-17 09:30:31 +0000
commit279b014f860275f62afda40e51727ac1b788fdfb (patch)
treea44058ad3de08533b45dc874073bb54a2a649337 /games/tenebrae
parent305f53d791be1e3e245da96d6b490d94c6354a25 (diff)
downloadports-279b014f860275f62afda40e51727ac1b788fdfb.tar.gz
ports-279b014f860275f62afda40e51727ac1b788fdfb.zip
Notes
Diffstat (limited to 'games/tenebrae')
-rw-r--r--games/tenebrae/Makefile54
-rw-r--r--games/tenebrae/distinfo4
-rw-r--r--games/tenebrae/files/patch-cd__linux.c184
-rw-r--r--games/tenebrae/files/patch-common.c11
-rw-r--r--games/tenebrae/files/patch-common.h13
-rw-r--r--games/tenebrae/files/patch-gl__common.c16
-rw-r--r--games/tenebrae/files/patch-gl__vidlinuxglx.c10
-rw-r--r--games/tenebrae/files/patch-linux_Makefile.i386linux80
-rw-r--r--games/tenebrae/files/patch-net.h11
-rw-r--r--games/tenebrae/files/patch-snd__linux.c11
-rw-r--r--games/tenebrae/files/patch-snd__sdl.c15
-rw-r--r--games/tenebrae/files/patch-sys__uxfindfirst.c11
-rw-r--r--games/tenebrae/pkg-descr17
-rw-r--r--games/tenebrae/pkg-message5
-rw-r--r--games/tenebrae/pkg-plist6
15 files changed, 448 insertions, 0 deletions
diff --git a/games/tenebrae/Makefile b/games/tenebrae/Makefile
new file mode 100644
index 000000000000..2dce492f1db6
--- /dev/null
+++ b/games/tenebrae/Makefile
@@ -0,0 +1,54 @@
+# New ports collection makefile for: tenebrae
+# Date created: 14 Mar 2004
+# Whom: Igor Pokrovsky <tiamat@comset.net>
+#
+# $FreeBSD$
+#
+
+PORTNAME= tenebrae
+PORTVERSION= 1.04
+CATEGORIES= games
+MASTER_SITES= http://tenebrae.sourceforge.net/downloads/
+DISTFILES= ${PORTNAME}_src${EXTRACT_SUFX} \
+ ${PORTNAME}data${EXTRACT_SUFX}
+
+MAINTAINER= tiamat@comset.net
+COMMENT= Quake 1 source port with advanced graphics
+
+LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png
+
+USE_ZIP= yes
+USE_GMAKE= yes
+USE_GL= yes
+USE_XLIB= yes
+USE_SDL= yes
+ONLY_FOR_ARCHS= i386
+
+WRKSRC= ${WRKDIR}/${PORTNAME}_0
+BUILD_WRKSRC= ${WRKSRC}/linux
+MAKE_ENV= DATADIR="${DATADIR}" \
+ PTHREAD_LIBS="${PTHREAD_LIBS}" \
+ SDL_CONFIG="${SDL_CONFIG}"
+
+pre-patch:
+ @${PERL} -pi -e 's|\r||g' `${FIND} ${WRKSRC} -type f`
+
+pre-build:
+ @${LN} -sf ${WRKSRC}/linux/Makefile.i386linux ${WRKSRC}/linux/Makefile
+
+do-install:
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/debugi386.glibc/bin/${PORTNAME}.run \
+ ${PREFIX}/bin/${PORTNAME}
+ @${MKDIR} ${DATADIR}
+ @${MKDIR} ${DATADIR}/${PORTNAME}
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}/Pak0.pak ${DATADIR}/${PORTNAME}
+.ifndef (NOPORTDOCS)
+ @${MKDIR} ${DOCSDIR}
+ ${TR} -d '\r' <${WRKDIR}/Tenebrae_Readme.txt \
+ >${DOCSDIR}/Tenebrae_Readme.txt
+.endif
+
+post-install:
+ @${SED} -e 's|%%DATADIR%%|${DATADIR}|' <${PKGMESSAGE}
+
+.include <bsd.port.mk>
diff --git a/games/tenebrae/distinfo b/games/tenebrae/distinfo
new file mode 100644
index 000000000000..8606512747a3
--- /dev/null
+++ b/games/tenebrae/distinfo
@@ -0,0 +1,4 @@
+MD5 (tenebrae_src.zip) = 132899bfcaf065b8cfd1bdf7f5a00787
+SIZE (tenebrae_src.zip) = 1580702
+MD5 (tenebraedata.zip) = b0769654088b4b9f46e69503ff453ec2
+SIZE (tenebraedata.zip) = 3989498
diff --git a/games/tenebrae/files/patch-cd__linux.c b/games/tenebrae/files/patch-cd__linux.c
new file mode 100644
index 000000000000..4ac54dea2985
--- /dev/null
+++ b/games/tenebrae/files/patch-cd__linux.c
@@ -0,0 +1,184 @@
+--- cd_linux.c.orig Sun Mar 14 12:11:16 2004
++++ cd_linux.c Sun Mar 14 12:24:07 2004
+@@ -31,7 +31,7 @@
+ #include <time.h>
+ #include <errno.h>
+
+-#include <linux/cdrom.h>
++#include <sys/cdio.h>
+
+ #include "quakedef.h"
+
+@@ -54,8 +54,8 @@
+ if (cdfile == -1 || !enabled)
+ return; // no cd init'd
+
+- if ( ioctl(cdfile, CDROMEJECT) == -1 )
+- Con_DPrintf("ioctl cdromeject failed\n");
++ if ( ioctl(cdfile, CDIOCEJECT) == -1 )
++ Con_DPrintf("ioctl CDIOCEJECT failed\n");
+ }
+
+
+@@ -64,30 +64,30 @@
+ if (cdfile == -1 || !enabled)
+ return; // no cd init'd
+
+- if ( ioctl(cdfile, CDROMCLOSETRAY) == -1 )
+- Con_DPrintf("ioctl cdromclosetray failed\n");
++ if ( ioctl(cdfile, CDIOCCLOSE) == -1 )
++ Con_DPrintf("ioctl CDIOCCLOSE failed\n");
+ }
+
+ static int CDAudio_GetAudioDiskInfo(void)
+ {
+- struct cdrom_tochdr tochdr;
++ struct ioc_toc_header tochdr;
+
+ cdValid = false;
+
+- if ( ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1 )
++ if ( ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1 )
+ {
+- Con_DPrintf("ioctl cdromreadtochdr failed\n");
++ Con_DPrintf("ioctl CDIOREADTOCHEADER failed\n");
+ return -1;
+ }
+
+- if (tochdr.cdth_trk0 < 1)
++ if (tochdr.starting_track < 1)
+ {
+ Con_DPrintf("CDAudio: no music tracks\n");
+ return -1;
+ }
+
+ cdValid = true;
+- maxTrack = tochdr.cdth_trk1;
++ maxTrack = tochdr.ending_track;
+
+ return 0;
+ }
+@@ -95,8 +95,8 @@
+
+ void CDAudio_Play(byte track, qboolean looping)
+ {
+- struct cdrom_tocentry entry;
+- struct cdrom_ti ti;
++ struct ioc_read_toc_single_entry entry;
++ struct ioc_play_track ti;
+
+ if (cdfile == -1 || !enabled)
+ return;
+@@ -115,7 +115,7 @@
+ Con_DPrintf("CDAudio: Bad track number %u.\n", track);
+ return;
+ }
+-
++/*
+ // don't try to play a non-audio track
+ entry.cdte_track = track;
+ entry.cdte_format = CDROM_MSF;
+@@ -129,7 +129,7 @@
+ Con_Printf("CDAudio: track %i is not audio\n", track);
+ return;
+ }
+-
++*/
+ if (playing)
+ {
+ if (playTrack == track)
+@@ -137,19 +137,19 @@
+ CDAudio_Stop();
+ }
+
+- ti.cdti_trk0 = track;
+- ti.cdti_trk1 = track;
+- ti.cdti_ind0 = 1;
+- ti.cdti_ind1 = 99;
+-
+- if ( ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1 )
++ ti.start_track = track;
++ ti.end_track = track;
++ ti.start_index = 1;
++ ti.end_index = 99;
++
++ if ( ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1 )
+ {
+- Con_DPrintf("ioctl cdromplaytrkind failed\n");
++ Con_DPrintf("ioctl CDIOCPLAYTRACKS failed\n");
+ return;
+ }
+
+- if ( ioctl(cdfile, CDROMRESUME) == -1 )
+- Con_DPrintf("ioctl cdromresume failed\n");
++ if ( ioctl(cdfile, CDIOCRESUME) == -1 )
++ Con_DPrintf("ioctl CDIOCRESUME failed\n");
+
+ playLooping = looping;
+ playTrack = track;
+@@ -168,8 +168,8 @@
+ if (!playing)
+ return;
+
+- if ( ioctl(cdfile, CDROMSTOP) == -1 )
+- Con_DPrintf("ioctl cdromstop failed (%d)\n", errno);
++ if ( ioctl(cdfile, CDIOCSTOP) == -1 )
++ Con_DPrintf("ioctl CDIOCSTOP failed (%d)\n", errno);
+
+ wasPlaying = false;
+ playing = false;
+@@ -183,8 +183,8 @@
+ if (!playing)
+ return;
+
+- if ( ioctl(cdfile, CDROMPAUSE) == -1 )
+- Con_DPrintf("ioctl cdrompause failed\n");
++ if ( ioctl(cdfile, CDIOCPAUSE) == -1 )
++ Con_DPrintf("ioctl CDIOCPAUSE failed\n");
+
+ wasPlaying = playing;
+ playing = false;
+@@ -202,8 +202,8 @@
+ if (!wasPlaying)
+ return;
+
+- if ( ioctl(cdfile, CDROMRESUME) == -1 )
+- Con_DPrintf("ioctl cdromresume failed\n");
++ if ( ioctl(cdfile, CDIOCRESUME) == -1 )
++ Con_DPrintf("ioctl CDIOCRESUME failed\n");
+ playing = true;
+ }
+
+@@ -327,7 +327,8 @@
+
+ void CDAudio_Update(void)
+ {
+- struct cdrom_subchnl subchnl;
++ struct ioc_read_subchannel subchnl;
++ struct cd_sub_channel_info data;
+ static time_t lastchk;
+
+ if (!enabled)
+@@ -351,14 +352,17 @@
+
+ if (playing && lastchk < time(NULL)) {
+ lastchk = time(NULL) + 2; //two seconds between chks
+- subchnl.cdsc_format = CDROM_MSF;
+- if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1 ) {
+- Con_DPrintf("ioctl cdromsubchnl failed\n");
++ subchnl.data = &data;
++ subchnl.data_len = sizeof(data);
++ subchnl.address_format = CD_MSF_FORMAT;
++ subchnl.data_format = CD_CURRENT_POSITION;
++ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, (char*) &subchnl) == -1 ) {
++ Con_DPrintf("ioctl CDIOCREADSUBCHANNEL failed\n");
+ playing = false;
+ return;
+ }
+- if (subchnl.cdsc_audiostatus != CDROM_AUDIO_PLAY &&
+- subchnl.cdsc_audiostatus != CDROM_AUDIO_PAUSED) {
++ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS &&
++ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED) {
+ playing = false;
+ if (playLooping)
+ CDAudio_Play(playTrack, true);
diff --git a/games/tenebrae/files/patch-common.c b/games/tenebrae/files/patch-common.c
new file mode 100644
index 000000000000..4da54a7ef122
--- /dev/null
+++ b/games/tenebrae/files/patch-common.c
@@ -0,0 +1,11 @@
+--- common.c.orig Sun Mar 14 13:16:07 2004
++++ common.c Sun Mar 14 13:17:40 2004
+@@ -2221,6 +2221,8 @@
+ if ((userdir[j-1] == '\\') || (userdir[j-1] == '/'))
+ userdir[j-1] = 0;
+ }
++
++ strncpy (com_prefdir, userdir, j);
+ COM_AddGameFS (userdir);
+ #endif
+
diff --git a/games/tenebrae/files/patch-common.h b/games/tenebrae/files/patch-common.h
new file mode 100644
index 000000000000..901bb81aeba5
--- /dev/null
+++ b/games/tenebrae/files/patch-common.h
@@ -0,0 +1,13 @@
+--- common.h.orig Sun Mar 14 13:19:04 2004
++++ common.h Sun Mar 14 13:19:50 2004
+@@ -169,6 +169,10 @@
+
+ extern char com_gamedir[MAX_OSPATH];
+
++#ifdef USERPREF_DIR
++extern char com_prefdir[MAX_OSPATH];
++#endif
++
+ void COM_WriteFile (char *filename, void *data, int len);
+ int COM_OpenFile (const char *filename, int *hndl);
+ int COM_FOpenFile (const char *filename, FILE **file);
diff --git a/games/tenebrae/files/patch-gl__common.c b/games/tenebrae/files/patch-gl__common.c
new file mode 100644
index 000000000000..9dbb358d94b2
--- /dev/null
+++ b/games/tenebrae/files/patch-gl__common.c
@@ -0,0 +1,16 @@
+--- gl_common.c.orig Sun Mar 14 12:33:12 2004
++++ gl_common.c Sun Mar 14 12:35:26 2004
+@@ -248,11 +248,11 @@
+ if (!strstr(gl_extensions, "GL_ARB_texture_env_dot3")) {
+ Sys_Error ("ARB_texture_env_dot3 not found.\nProbably your 3d-card is not supported.\n");
+ }
+-
++#if 0
+ if (!strstr(gl_extensions, "GL_ARB_texture_cube_map")) {
+ Sys_Error ("ARB_texture_cube_map not found.\nProbably your 3d-card is not supported.\n");
+ }
+-
++#endif
+ //Just spit a warning user prob has gl-1.2 or something
+ if (!strstr(gl_extensions, "GL_SGI_texture_edge_clamp") &&
+ !strstr(gl_extensions, "GL_EXT_texture_edge_clamp")) {
diff --git a/games/tenebrae/files/patch-gl__vidlinuxglx.c b/games/tenebrae/files/patch-gl__vidlinuxglx.c
new file mode 100644
index 000000000000..1a20b1d8d242
--- /dev/null
+++ b/games/tenebrae/files/patch-gl__vidlinuxglx.c
@@ -0,0 +1,10 @@
+--- gl_vidlinuxglx.c.orig Sun Mar 14 12:27:06 2004
++++ gl_vidlinuxglx.c Sun Mar 14 12:27:21 2004
+@@ -20,7 +20,6 @@
+ #include <termios.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+-#include <sys/vt.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <signal.h>
diff --git a/games/tenebrae/files/patch-linux_Makefile.i386linux b/games/tenebrae/files/patch-linux_Makefile.i386linux
new file mode 100644
index 000000000000..071a4b3608dc
--- /dev/null
+++ b/games/tenebrae/files/patch-linux_Makefile.i386linux
@@ -0,0 +1,80 @@
+--- linux/Makefile.i386linux.orig Sun Mar 14 15:07:08 2004
++++ linux/Makefile.i386linux Sun Mar 14 17:54:02 2004
+@@ -18,30 +18,30 @@
+
+ MOUNT_DIR = ../
+
+-MASTER_DIR = /usr/local/share/games/quake
++MASTER_DIR = ${DATADIR}
+
+ BUILD_DEBUG_DIR = debug$(ARCH)$(GLIBC)
+ BUILD_RELEASE_DIR = release$(ARCH)$(GLIBC)
+
+-LEX = /usr/bin/flex -i -Cfr
+-CC = /usr/bin/gcc
++LEX ?= /usr/bin/flex -i -Cfr
++#CC = /usr/bin/gcc
+
+-X11_LIBS = -L/usr/X11R6/lib -lpthread -lX11 -lXext -lXxf86dga -lXxf86vm
++X11_LIBS = -L${X11BASE}/lib ${PTHREAD_LIBS} -lX11 -lXext -lXxf86dga -lXxf86vm
+
+ # to enable OpenGL code in source
+-OPENGL_CFLAGS = -D__glx__ -DGLQUAKE
++OPENGL_CFLAGS = -D__glx__ -DGLQUAKE -I${X11BASE}/include
+ OPENGL_LIBS = -lGL -lGLU
+
+-PNG_LIBS = -lpng -lz
++PNG_LIBS = -L${LOCALBASE}/lib -lpng -lz
+
+ #OPENAL_LIBS = -lopenal
+-#OPENAL_CFLAGS = -DOPENAL -I/usr/local/include/AL
++#OPENAL_CFLAGS = -DOPENAL -I${LOCALBASE}/include/AL
+
+-BASE_CFLAGS = -DBASEDIR="$(MASTER_DIR)" -DUSERPREF_DIR $(OPENGL_CFLAGS) $(OPENAL_CFLAGS) -I$(MOUNT_DIR)
+-RELEASE_CFLAGS = $(BASE_CFLAGS) -mpentiumpro -O6 -ffast-math -funroll-loops \
++BASE_CFLAGS = -DBASEDIR="$(MASTER_DIR)" -DUSERPREF_DIR $(OPENGL_CFLAGS) $(OPENAL_CFLAGS) -I$(MOUNT_DIR) -I${LOCALBASE}/include `${SDL_CONFIG} --cflags`
++RELEASE_CFLAGS = $(BASE_CFLAGS) -ffast-math -funroll-loops \
+ -fomit-frame-pointer -fexpensive-optimizations
+ DEBUG_CFLAGS = $(BASE_CFLAGS) -g
+-LDFLAGS = -lm -ldl $(X11_LIBS) $(OPENGL_LIBS) $(PNG_LIBS) $(OPENAL_LIBS)
++LDFLAGS = -lm $(X11_LIBS) $(OPENGL_LIBS) $(PNG_LIBS) $(OPENAL_LIBS) `${SDL_CONFIG} --libs`
+
+ DO_GL_CC = $(CC) $(CFLAGS) -o $@ -c $<
+ DO_GL_AS = $(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
+@@ -57,15 +57,15 @@
+ @-mkdir -p $(BUILD_DEBUG_DIR) \
+ $(BUILD_DEBUG_DIR)/bin \
+ $(BUILD_DEBUG_DIR)/glquake
+- $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
++ $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS+="$(DEBUG_CFLAGS)"
+
+ build_release:
+ @-mkdir -p $(BUILD_RELEASE_DIR) \
+ $(BUILD_RELEASE_DIR)/bin \
+ $(BUILD_RELEASE_DIR)/glquake
+- $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)"
++ $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS+="$(RELEASE_CFLAGS)"
+
+-all: build_debug build_release
++all: build_debug
+
+ targets: $(TARGETS)
+
+@@ -143,7 +143,7 @@
+ $(BUILDDIR)/glquake/snd_dma.o \
+ $(BUILDDIR)/glquake/snd_mem.o \
+ $(BUILDDIR)/glquake/snd_mix.o \
+- $(BUILDDIR)/glquake/snd_linux.o \
++ $(BUILDDIR)/glquake/snd_sdl.o \
+ $(BUILDDIR)/glquake/gl_vidlinuxglx.o \
+ $(BUILDDIR)/glquake/math.o \
+ $(BUILDDIR)/glquake/worlda.o \
+@@ -361,7 +361,7 @@
+ $(BUILDDIR)/glquake/snd_mix.o : $(MOUNT_DIR)/snd_mix.c
+ $(DO_GL_CC)
+
+-$(BUILDDIR)/glquake/snd_linux.o : $(MOUNT_DIR)/snd_linux.c
++$(BUILDDIR)/glquake/snd_sdl.o : $(MOUNT_DIR)/snd_sdl.c
+ $(DO_GL_CC)
+
+ $(BUILDDIR)/glquake/math.o : $(MOUNT_DIR)/math.s
diff --git a/games/tenebrae/files/patch-net.h b/games/tenebrae/files/patch-net.h
new file mode 100644
index 000000000000..9f2e41d67fd7
--- /dev/null
+++ b/games/tenebrae/files/patch-net.h
@@ -0,0 +1,11 @@
+--- net.h.orig Wed Mar 17 10:25:22 2004
++++ net.h Wed Mar 17 10:25:37 2004
+@@ -239,7 +239,7 @@
+ extern int hostCacheCount;
+ extern hostcache_t hostcache[HOSTCACHESIZE];
+
+-#if !defined(_WIN32 ) && !defined (__linux__) && !defined (__sun__)
++#if !defined(_WIN32 ) && !defined (__linux__) && !defined (__sun__) && !defined (__FreeBSD__)
+ #ifndef htonl
+ extern unsigned long htonl (unsigned long hostlong);
+ #endif
diff --git a/games/tenebrae/files/patch-snd__linux.c b/games/tenebrae/files/patch-snd__linux.c
new file mode 100644
index 000000000000..610506a3ab8d
--- /dev/null
+++ b/games/tenebrae/files/patch-snd__linux.c
@@ -0,0 +1,11 @@
+--- snd_linux.c.orig Sun Mar 14 12:25:10 2004
++++ snd_linux.c Sun Mar 14 12:25:46 2004
+@@ -25,7 +25,7 @@
+ #include <sys/mman.h>
+ #include <sys/shm.h>
+ #include <sys/wait.h>
+-#include <linux/soundcard.h>
++#include <sys/soundcard.h>
+ #include <stdio.h>
+ #include "quakedef.h"
+
diff --git a/games/tenebrae/files/patch-snd__sdl.c b/games/tenebrae/files/patch-snd__sdl.c
new file mode 100644
index 000000000000..c247885e4112
--- /dev/null
+++ b/games/tenebrae/files/patch-snd__sdl.c
@@ -0,0 +1,15 @@
+--- snd_sdl.c.orig Sun Mar 14 17:59:19 2004
++++ snd_sdl.c Sun Mar 14 17:59:35 2004
+@@ -119,3 +119,12 @@
+ }
+ }
+
++/*
++==============
++SNDDMA_Submit
++Send sound to device if buffer isn't really the dma buffer
++===============
++*/
++void SNDDMA_Submit(void)
++{
++}
diff --git a/games/tenebrae/files/patch-sys__uxfindfirst.c b/games/tenebrae/files/patch-sys__uxfindfirst.c
new file mode 100644
index 000000000000..47f1d7e655bc
--- /dev/null
+++ b/games/tenebrae/files/patch-sys__uxfindfirst.c
@@ -0,0 +1,11 @@
+--- sys_uxfindfirst.c.orig Sun Mar 14 15:00:09 2004
++++ sys_uxfindfirst.c Sun Mar 14 15:06:52 2004
+@@ -36,7 +36,7 @@
+ #include "quakedef.h"
+ #include <errno.h>
+
+-#if !defined(__GLIBC__)
++#if !defined(__GLIBC__) && !defined(__FreeBSD__)
+
+ #include <dirent.h>
+ #include <fnmatch.h>
diff --git a/games/tenebrae/pkg-descr b/games/tenebrae/pkg-descr
new file mode 100644
index 000000000000..eacd76d36cc8
--- /dev/null
+++ b/games/tenebrae/pkg-descr
@@ -0,0 +1,17 @@
+Tenebrae is not quake1 anymore, it uses more advanced graphics algorithms so it
+requires a much faster system to run.
+These are the bare minimum reqs to run Tenebrae:
+
+PIII 600
+64 Mb RAM (More if you want to use some mods.)
+Geforce1
+Quake1 data (registered or shareware)
+Water vissed maps
+
+Recommended is a faster processor and a geforce4 / radeon 8500 class 3d card.
+Tenebrae_Readme.txt contains full list of supported video cards.
+
+WWW: http://tenebrae.sourceforge.net/
+
+- Igor Pokrovsky
+tiamat@comset.net
diff --git a/games/tenebrae/pkg-message b/games/tenebrae/pkg-message
new file mode 100644
index 000000000000..fde724fd65c7
--- /dev/null
+++ b/games/tenebrae/pkg-message
@@ -0,0 +1,5 @@
+*******************************************************************************
+* Before running Tenebrae copy Quake 1 data files (id1 directory)
+* into %%DATADIR%%.
+* Filenames should be in lower case!
+*******************************************************************************
diff --git a/games/tenebrae/pkg-plist b/games/tenebrae/pkg-plist
new file mode 100644
index 000000000000..fee49a93372e
--- /dev/null
+++ b/games/tenebrae/pkg-plist
@@ -0,0 +1,6 @@
+bin/tenebrae
+%%DATADIR%%/tenebrae/Pak0.pak
+@dirrm %%DATADIR%%/tenebrae
+@dirrm %%DATADIR%%
+%%PORTDOCS%%%%DOCSDIR%%/Tenebrae_Readme.txt
+%%PORTDOCS%%@dirrm %%DOCSDIR%%