1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-23 09:10:43 +00:00

Add tenebrae 1.04,

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.

PR:		ports/64320
Submitted by:	Igor Pokrovsky <tiamat@comset.net>
This commit is contained in:
Kirill Ponomarev 2004-03-17 09:30:31 +00:00
parent 305f53d791
commit 279b014f86
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=104266
16 changed files with 449 additions and 0 deletions

View File

@ -401,6 +401,7 @@
SUBDIR += tank
SUBDIR += taxipilot
SUBDIR += teg
SUBDIR += tenebrae
SUBDIR += tetrinet
SUBDIR += tetrinet-x
SUBDIR += textmaze

54
games/tenebrae/Makefile Normal file
View File

@ -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>

4
games/tenebrae/distinfo Normal file
View File

@ -0,0 +1,4 @@
MD5 (tenebrae_src.zip) = 132899bfcaf065b8cfd1bdf7f5a00787
SIZE (tenebrae_src.zip) = 1580702
MD5 (tenebraedata.zip) = b0769654088b4b9f46e69503ff453ec2
SIZE (tenebraedata.zip) = 3989498

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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")) {

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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)
+{
+}

View File

@ -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>

17
games/tenebrae/pkg-descr Normal file
View File

@ -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

View File

@ -0,0 +1,5 @@
*******************************************************************************
* Before running Tenebrae copy Quake 1 data files (id1 directory)
* into %%DATADIR%%.
* Filenames should be in lower case!
*******************************************************************************

6
games/tenebrae/pkg-plist Normal file
View File

@ -0,0 +1,6 @@
bin/tenebrae
%%DATADIR%%/tenebrae/Pak0.pak
@dirrm %%DATADIR%%/tenebrae
@dirrm %%DATADIR%%
%%PORTDOCS%%%%DOCSDIR%%/Tenebrae_Readme.txt
%%PORTDOCS%%@dirrm %%DOCSDIR%%