xdoom-1.10: a 3D shoot-em-up for 8-bit X11 displays.

Many thanks to Matthias Drochner for giving me his framework on the pkg
as a starting point.
This commit is contained in:
garbled 1998-08-28 12:53:03 +00:00
parent 0761d22ecc
commit c54bfe9f06
9 changed files with 557 additions and 0 deletions

36
games/xdoom/Makefile Normal file
View file

@ -0,0 +1,36 @@
# $NetBSD: Makefile,v 1.1 1998/08/28 12:53:03 garbled Exp $
DISTNAME= linuxdoom-1.10
PKGNAME= xdoom-1.10
CATEGORIES= games x11
MASTER_SITES= ftp://ftp.idsoftware.com/idstuff/source/
MASTER_SITES+= ftp://ftp.idsoftware.com/idstuff/doom/
DISTFILES= doomsrc.zip doom-1.8.wad.gz
MAINTAINER= root@garbled.net
HOMEPAGE= http://www.idsoftware.com/archives/doomarc.html
BUILD_DEPENDS= unzip:../../archivers/unzip
EXTRACT_CMD= unzip
EXTRACT_BEFORE_ARGS= -qo
EXTRACT_ONLY= doomsrc.zip
USE_X11= yes
USE_GMAKE= yes
post-extract:
(cd ${WRKDIR}; tar xzf linuxdoom-1.10.src.tgz)
post-patch:
@${MV} ${WRKSRC}/i_sound.c foo
@${SED} -e 's@XXXPREFIXXXX@${PREFIX}@' <foo> ${WRKSRC}/i_sound.c
@${MV} ${WRKSRC}/d_main.c foo
@${SED} -e 's@XXXPREFIXXXX@${PREFIX}@' <foo> ${WRKSRC}/d_main.c
@${RM} -f foo
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/linux/linuxxdoom ${PREFIX}/bin/xdoom
${MKDIR} ${PREFIX}/share/doom
${GUNZIP_CMD} -c ${DISTDIR}/doom-1.8.wad.gz > ${PREFIX}/share/doom/doom1.wad
.include "../../mk/bsd.pkg.mk"

4
games/xdoom/files/md5 Normal file
View file

@ -0,0 +1,4 @@
$NetBSD: md5,v 1.1 1998/08/28 12:53:04 garbled Exp $
MD5 (doomsrc.zip) = 80b3fe460c59ca7bb809c56eec876515
MD5 (doom-1.8.wad.gz) = 1dec41ad1850bd3574ef65dd21b8f5af

View file

@ -0,0 +1,17 @@
$NetBSD: patch-aa,v 1.1 1998/08/28 12:53:04 garbled Exp $
--- Makefile.orig Mon Dec 22 12:55:36 1997
+++ Makefile Fri Aug 28 05:16:43 1998
@@ -6,9 +6,10 @@
#
CC= gcc # gcc or g++
-CFLAGS=-g -Wall -DNORMALUNIX -DLINUX # -DUSEASM
-LDFLAGS=-L/usr/X11R6/lib
-LIBS=-lXext -lX11 -lnsl -lm
+CFLAGS=-g -Wall -DNORMALUNIX # -DUSEASM
+CFLAGS+= -I$(X11BASE)/include
+LDFLAGS=-Wl,-R$(X11BASE)/lib -L$(X11BASE)/lib
+LIBS=-lXext -lX11 -lm
# subdirectory for objects
O=linux

View file

@ -0,0 +1,461 @@
$NetBSD: patch-ab,v 1.1 1998/08/28 12:53:05 garbled Exp $
*** 1.1.1.1 1998/07/03 16:32:29
--- d_net.h 1998/07/03 16:33:37
***************
*** 80,84 ****
{
// Supposed to be DOOMCOM_ID?
! long id;
// DOOM executes an int to execute commands.
--- 80,84 ----
{
// Supposed to be DOOMCOM_ID?
! int id;
// DOOM executes an int to execute commands.
Index: doomtype.h
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/doomtype.h,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 doomtype.h
*** 1.1.1.1 1998/07/03 16:32:16
--- doomtype.h 1998/07/15 21:12:05
***************
*** 47,51 ****
// Max pos 32-bit int.
#define MAXINT ((int)0x7fffffff)
- #define MAXLONG ((long)0x7fffffff)
#define MINCHAR ((char)0x80)
#define MINSHORT ((short)0x8000)
--- 47,50 ----
***************
*** 53,57 ****
// Max negative 32-bit integer.
#define MININT ((int)0x80000000)
- #define MINLONG ((long)0x80000000)
#endif
--- 52,55 ----
Index: info.h
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/info.h,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 info.h
*** 1.1.1.1 1998/07/03 16:32:20
--- info.h 1998/07/03 16:33:41
***************
*** 1148,1157 ****
{
spritenum_t sprite;
! long frame;
! long tics;
// void (*action) ();
actionf_t action;
statenum_t nextstate;
! long misc1, misc2;
} state_t;
--- 1148,1157 ----
{
spritenum_t sprite;
! int frame;
! int tics;
// void (*action) ();
actionf_t action;
statenum_t nextstate;
! int misc1, misc2;
} state_t;
Index: m_bbox.h
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/m_bbox.h,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 m_bbox.h
*** 1.1.1.1 1998/07/03 16:32:20
--- m_bbox.h 1998/07/03 16:33:42
***************
*** 24,28 ****
#define __M_BBOX__
! #include <values.h>
#include "m_fixed.h"
--- 24,28 ----
#define __M_BBOX__
! #include "doomtype.h"
#include "m_fixed.h"
Index: m_swap.h
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/m_swap.h,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 m_swap.h
*** 1.1.1.1 1998/07/03 16:32:29
--- m_swap.h 1998/07/15 21:08:17
***************
*** 34,40 ****
#ifdef __BIG_ENDIAN__
short SwapSHORT(short);
! long SwapLONG(long);
#define SHORT(x) ((short)SwapSHORT((unsigned short) (x)))
! #define LONG(x) ((long)SwapLONG((unsigned long) (x)))
#else
#define SHORT(x) (x)
--- 34,40 ----
#ifdef __BIG_ENDIAN__
short SwapSHORT(short);
! int SwapLONG(int);
#define SHORT(x) ((short)SwapSHORT((unsigned short) (x)))
! #define LONG(x) ((int)SwapLONG((unsigned int) (x)))
#else
#define SHORT(x) (x)
Index: i_net.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/i_net.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 i_net.c
*** 1.1.1.1 1998/07/03 16:32:18
--- i_net.c 1998/07/15 21:11:38
***************
*** 51,69 ****
-
- // For some odd reason...
- #define ntohl(x) \
- ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \
- (((unsigned long int)(x) & 0x0000ff00U) << 8) | \
- (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \
- (((unsigned long int)(x) & 0xff000000U) >> 24)))
-
- #define ntohs(x) \
- ((unsigned short int)((((unsigned short int)(x) & 0x00ff) << 8) | \
- (((unsigned short int)(x) & 0xff00) >> 8))) \
-
- #define htonl(x) ntohl(x)
- #define htons(x) ntohs(x)
-
void NetSend (void);
boolean NetListen (void);
--- 51,54 ----
***************
*** 74,78 ****
//
! int DOOMPORT = (IPPORT_USERRESERVED +0x1d );
int sendsocket;
--- 59,63 ----
//
! int DOOMPORT = (IPPORT_RESERVED +0x1d );
int sendsocket;
Index: i_sound.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/i_sound.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 i_sound.c
*** 1.1.1.1 1998/07/03 16:32:18
--- i_sound.c 1998/07/15 20:05:49
***************
*** 42,47 ****
--- 42,49 ----
#include <sys/ioctl.h>
+ #ifdef LINUX
// Linux voxware output.
#include <linux/soundcard.h>
+ #endif
// Timer stuff. Experimental.
Index: i_video.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/i_video.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 i_video.c
*** 1.1.1.1 1998/07/03 16:32:18
--- i_video.c 1998/07/15 20:40:59
***************
*** 37,41 ****
// Had to dig up XShm.c for this one.
// It is in the libXext, but not in the XFree86 headers.
! #ifdef LINUX
int XShmGetEventBase( Display* dpy ); // problems with g++?
#endif
--- 37,41 ----
// Had to dig up XShm.c for this one.
// It is in the libXext, but not in the XFree86 headers.
! #if defined(LINUX) || defined (__NetBSD__)
int XShmGetEventBase( Display* dpy ); // problems with g++?
#endif
***************
*** 47,51 ****
#include <netinet/in.h>
! #include <errnos.h>
#include <signal.h>
--- 47,51 ----
#include <netinet/in.h>
! #include <errno.h>
#include <signal.h>
Index: m_menu.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/m_menu.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 m_menu.c
*** 1.1.1.1 1998/07/03 16:32:21
--- m_menu.c 1998/07/03 16:33:58
***************
*** 530,534 ****
continue;
}
! count = read (handle, &savegamestrings[i], SAVESTRINGSIZE);
close (handle);
LoadMenu[i].status = 1;
--- 530,534 ----
continue;
}
! count = read (handle, savegamestrings[i], SAVESTRINGSIZE);
close (handle);
LoadMenu[i].status = 1;
Index: m_misc.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/m_misc.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 m_misc.c
*** 1.1.1.1 1998/07/03 16:32:21
--- m_misc.c 1998/07/03 16:33:58
***************
*** 227,231 ****
char* name;
int* location;
! int defaultvalue;
int scantranslate; // PC scan code hack
int untranslated; // lousy hack
--- 227,231 ----
char* name;
int* location;
! long defaultvalue;
int scantranslate; // PC scan code hack
int untranslated; // lousy hack
***************
*** 255,260 ****
// UNIX hack, to be removed.
#ifdef SNDSERV
! {"sndserver", (int *) &sndserver_filename, (int) "sndserver"},
! {"mb_used", &mb_used, 2},
#endif
--- 255,260 ----
// UNIX hack, to be removed.
#ifdef SNDSERV
! {"sndserver", (int *) &sndserver_filename, (long) "sndserver"},
! {"mb_used", &mb_used, 12},
#endif
***************
*** 286,299 ****
{"usegamma",&usegamma, 0},
! {"chatmacro0", (int *) &chat_macros[0], (int) HUSTR_CHATMACRO0 },
! {"chatmacro1", (int *) &chat_macros[1], (int) HUSTR_CHATMACRO1 },
! {"chatmacro2", (int *) &chat_macros[2], (int) HUSTR_CHATMACRO2 },
! {"chatmacro3", (int *) &chat_macros[3], (int) HUSTR_CHATMACRO3 },
! {"chatmacro4", (int *) &chat_macros[4], (int) HUSTR_CHATMACRO4 },
! {"chatmacro5", (int *) &chat_macros[5], (int) HUSTR_CHATMACRO5 },
! {"chatmacro6", (int *) &chat_macros[6], (int) HUSTR_CHATMACRO6 },
! {"chatmacro7", (int *) &chat_macros[7], (int) HUSTR_CHATMACRO7 },
! {"chatmacro8", (int *) &chat_macros[8], (int) HUSTR_CHATMACRO8 },
! {"chatmacro9", (int *) &chat_macros[9], (int) HUSTR_CHATMACRO9 }
};
--- 286,299 ----
{"usegamma",&usegamma, 0},
! {"chatmacro0", (int *) &chat_macros[0], (long) HUSTR_CHATMACRO0 },
! {"chatmacro1", (int *) &chat_macros[1], (long) HUSTR_CHATMACRO1 },
! {"chatmacro2", (int *) &chat_macros[2], (long) HUSTR_CHATMACRO2 },
! {"chatmacro3", (int *) &chat_macros[3], (long) HUSTR_CHATMACRO3 },
! {"chatmacro4", (int *) &chat_macros[4], (long) HUSTR_CHATMACRO4 },
! {"chatmacro5", (int *) &chat_macros[5], (long) HUSTR_CHATMACRO5 },
! {"chatmacro6", (int *) &chat_macros[6], (long) HUSTR_CHATMACRO6 },
! {"chatmacro7", (int *) &chat_macros[7], (long) HUSTR_CHATMACRO7 },
! {"chatmacro8", (int *) &chat_macros[8], (long) HUSTR_CHATMACRO8 },
! {"chatmacro9", (int *) &chat_macros[9], (long) HUSTR_CHATMACRO9 }
};
Index: m_swap.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/m_swap.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 m_swap.c
*** 1.1.1.1 1998/07/03 16:32:31
--- m_swap.c 1998/07/15 20:56:48
***************
*** 43,47 ****
// Swapping 32bit.
! unsigned long SwapLONG( unsigned long x)
{
return
--- 43,47 ----
// Swapping 32bit.
! unsigned int SwapLONG( unsigned int x)
{
return
Index: p_setup.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/p_setup.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 p_setup.c
*** 1.1.1.1 1998/07/03 16:32:23
--- p_setup.c 1998/07/03 16:34:02
***************
*** 534,538 ****
// build line tables for each sector
! linebuffer = Z_Malloc (total*4, PU_LEVEL, 0);
sector = sectors;
for (i=0 ; i<numsectors ; i++, sector++)
--- 534,538 ----
// build line tables for each sector
! linebuffer = Z_Malloc (total*sizeof(line_t*), PU_LEVEL, 0);
sector = sectors;
for (i=0 ; i<numsectors ; i++, sector++)
Index: r_data.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/r_data.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 r_data.c
*** 1.1.1.1 1998/07/03 16:32:24
--- r_data.c 1998/07/15 20:54:12
***************
*** 42,47 ****
#include "r_sky.h"
! #ifdef LINUX
#include <alloca.h>
#endif
--- 42,49 ----
#include "r_sky.h"
! #if 0
#include <alloca.h>
+ #else
+ #include <stdlib.h>
#endif
***************
*** 479,490 ****
}
numtextures = numtextures1 + numtextures2;
!
! textures = Z_Malloc (numtextures*4, PU_STATIC, 0);
! texturecolumnlump = Z_Malloc (numtextures*4, PU_STATIC, 0);
! texturecolumnofs = Z_Malloc (numtextures*4, PU_STATIC, 0);
! texturecomposite = Z_Malloc (numtextures*4, PU_STATIC, 0);
! texturecompositesize = Z_Malloc (numtextures*4, PU_STATIC, 0);
! texturewidthmask = Z_Malloc (numtextures*4, PU_STATIC, 0);
! textureheight = Z_Malloc (numtextures*4, PU_STATIC, 0);
totalwidth = 0;
--- 481,492 ----
}
numtextures = numtextures1 + numtextures2;
! textures = Z_Malloc (numtextures*sizeof(texture_t*), PU_STATIC, 0);
! texturecolumnlump = Z_Malloc (numtextures*sizeof(short*), PU_STATIC, 0);
! texturecolumnofs = Z_Malloc (numtextures*sizeof(unsigned short*),
! PU_STATIC, 0);
! texturecomposite = Z_Malloc (numtextures*sizeof(byte*), PU_STATIC, 0);
! texturecompositesize = Z_Malloc (numtextures*sizeof(int), PU_STATIC, 0);
! texturewidthmask = Z_Malloc (numtextures*sizeof(int), PU_STATIC, 0);
! textureheight = Z_Malloc (numtextures*sizeof(fixed_t), PU_STATIC, 0);
totalwidth = 0;
***************
*** 640,644 ****
length = W_LumpLength (lump) + 255;
colormaps = Z_Malloc (length, PU_STATIC, 0);
! colormaps = (byte *)( ((int)colormaps + 255)&~0xff);
W_ReadLump (lump,colormaps);
}
--- 642,646 ----
length = W_LumpLength (lump) + 255;
colormaps = Z_Malloc (length, PU_STATIC, 0);
! colormaps = (byte *)( ((long)colormaps + 255)&~0xffL);
W_ReadLump (lump,colormaps);
}
Index: r_draw.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/r_draw.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 r_draw.c
*** 1.1.1.1 1998/07/03 16:32:24
--- r_draw.c 1998/07/03 16:34:04
***************
*** 462,466 ****
translationtables = Z_Malloc (256*3+255, PU_STATIC, 0);
! translationtables = (byte *)(( (int)translationtables + 255 )& ~255);
// translate just the 16 green colors
--- 462,466 ----
translationtables = Z_Malloc (256*3+255, PU_STATIC, 0);
! translationtables = (byte *)(( (long)translationtables + 255 )& ~255L);
// translate just the 16 green colors
Index: w_wad.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/w_wad.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 w_wad.c
*** 1.1.1.1 1998/07/03 16:32:27
--- w_wad.c 1998/07/15 20:22:25
***************
*** 35,39 ****
--- 35,43 ----
#include <fcntl.h>
#include <sys/stat.h>
+ #if 0
#include <alloca.h>
+ #else
+ #include <stdlib.h>
+ #endif
#define O_BINARY 0
#endif
Index: z_zone.c
===================================================================
RCS file: /ca1/div/cvsroot/extern/doom/z_zone.c,v
retrieving revision 1.1.1.1
diff -c -2 -r1.1.1.1 z_zone.c
*** 1.1.1.1 1998/07/03 16:32:29
--- z_zone.c 1998/07/15 20:44:56
***************
*** 193,198 ****
memblock_t* base;
size = (size + 3) & ~3;
!
// scan through the block list,
// looking for the first free block
--- 193,202 ----
memblock_t* base;
+ #ifdef __alpha
+ size = (size + 7) & ~7;
+ #else
size = (size + 3) & ~3;
! #endif
!
// scan through the block list,
// looking for the first free block

View file

@ -0,0 +1,12 @@
$NetBSD: patch-ac,v 1.1 1998/08/28 12:53:05 garbled Exp $
--- d_main.c.orig Fri Aug 28 04:27:47 1998
+++ d_main.c Fri Aug 28 04:28:42 1998
@@ -577,7 +577,7 @@
char *doomwaddir;
doomwaddir = getenv("DOOMWADDIR");
if (!doomwaddir)
- doomwaddir = ".";
+ doomwaddir = "XXXPREFIXXXX/share/doom";
// Commercial.
doom2wad = malloc(strlen(doomwaddir)+1+9+1);

View file

@ -0,0 +1,12 @@
$NetBSD: patch-ad,v 1.1 1998/08/28 12:53:05 garbled Exp $
--- i_sound.c.orig Fri Aug 28 04:29:07 1998
+++ i_sound.c Fri Aug 28 04:30:33 1998
@@ -747,7 +747,7 @@
getenv("DOOMWADDIR"),
sndserver_filename);
else
- sprintf(buffer, "%s", sndserver_filename);
+ sprintf(buffer, "XXXPREFIXXXX/bin/%s", sndserver_filename);
// start sound process
if ( !access(buffer, X_OK) )

1
games/xdoom/pkg/COMMENT Normal file
View file

@ -0,0 +1 @@
a 3D shoot-em-up for 8-bit X11 displays.

10
games/xdoom/pkg/DESCR Normal file
View file

@ -0,0 +1,10 @@
DOOM is a lightning-fast virtual reality adventure where you're the
toughest space trooper ever to suck vacuum. Your mission is to shoot
your way through a monster-infested holocaust. Living to tell the tale if
possible.
The gameplay for DOOM is quite simple. This is not a cumbersome
adventure game, but an action-oriented slugathon. You don't need the
reflexes of a hyperactive eight-year-old to win, either--using your wits is
IMPORTANT. To escape DOOM, you need both brains and the killer
instinct.

4
games/xdoom/pkg/PLIST Normal file
View file

@ -0,0 +1,4 @@
@comment $NetBSD: PLIST,v 1.1 1998/08/28 12:53:06 garbled Exp $
bin/xdoom
share/doom/doom1.wad
@dirrm share/doom