diff options
author | erich <erich@FreeBSD.org> | 1996-12-11 20:54:58 +0000 |
---|---|---|
committer | erich <erich@FreeBSD.org> | 1996-12-11 20:54:58 +0000 |
commit | 2cf79e1362029fc3f8b03a49d146694c8bbfdca6 (patch) | |
tree | f74d01a2d1c964e93e9ace6bc5e9849a4c42025d /games/doom | |
parent | 53b694506e1fea4b6f2224efb3fda19298fef279 (diff) | |
download | FreeBSD-ports-2cf79e1362029fc3f8b03a49d146694c8bbfdca6.zip FreeBSD-ports-2cf79e1362029fc3f8b03a49d146694c8bbfdca6.tar.gz |
new port of linux Doom, this has most (maybe all) of Amancio's
joystick/music/sound stuff!
Diffstat (limited to 'games/doom')
-rw-r--r-- | games/doom/Makefile | 35 | ||||
-rw-r--r-- | games/doom/distinfo | 4 | ||||
-rw-r--r-- | games/doom/files/patch-aa | 781 | ||||
-rw-r--r-- | games/doom/pkg-comment | 1 | ||||
-rw-r--r-- | games/doom/pkg-descr | 7 | ||||
-rw-r--r-- | games/doom/pkg-plist | 12 |
6 files changed, 840 insertions, 0 deletions
diff --git a/games/doom/Makefile b/games/doom/Makefile new file mode 100644 index 0000000..0eb20f5 --- /dev/null +++ b/games/doom/Makefile @@ -0,0 +1,35 @@ +# New ports collection makefile for: games +# Version required: 1.8 +# Date created: Mon Dec 9 09:42:37 CST 1996 +# Whom: erich@rrnet.com +# +# $Id$ +# + +DISTNAME= doom-1.8 +CATEGORIES= games +MASTER_SITES= ${MASTER_SITE_SUNSITE} +MASTER_SITE_SUBDIR= games/doom +DISTFILES= linux-doom-1.8.tar.gz musserver.tgz smooth-joystick4doom.tgz +EXTRACT_SUFX= .tgz + +MANINAINER= erich@FreeBSD.org + +RUN_DEPENDS= /compat/linux/lib/libc.so.5:${PORTSDIR}/emulators/linux_lib + +NO_WRKSUBDIR= yes + +post-patch: + @(cd ${WRKSRC}/joystick4doom; make clean) + @(cd ${WRKSRC}/musserver; make clean) + +pre-install: + @sed 's,@PREFIX@,${PREFIX},' ${PKGDIR}/INSTALL.in > ${PKGDIR}/INSTALL + +post-install: + @/bin/sh ${PKGDIR}/INSTALL ${PKGNAME} POST-INSTALL + +pre-clean: + @rm -f ${PKGDIR}/INSTALL + +.include <bsd.port.mk> diff --git a/games/doom/distinfo b/games/doom/distinfo new file mode 100644 index 0000000..6abdf69 --- /dev/null +++ b/games/doom/distinfo @@ -0,0 +1,4 @@ +MD5 (linux-doom-1.8.tar.gz) = 001ef27d21857092a4bca59168c0a6d4 +MD5 (musserver.tgz) = 485127ba03066955b3af822e921ad9f1 +MD5 (smooth-joystick4doom.tgz) = 06d8c4e053b90037584d6d750e53aef2 +MD5 (sndserver.gz) = 62f21cc6d54df7388ba2fa5981463531 diff --git a/games/doom/files/patch-aa b/games/doom/files/patch-aa new file mode 100644 index 0000000..981e4f4 --- /dev/null +++ b/games/doom/files/patch-aa @@ -0,0 +1,781 @@ +diff -ruN ../virgin/Makefile ./Makefile +--- ../virgin/Makefile Wed Dec 31 18:00:00 1969 ++++ ./Makefile Tue Dec 10 11:42:20 1996 +@@ -0,0 +1,24 @@ ++ ++SUBDIR+= joystick4doom ++SUBDIR+= musserver ++ ++all: doom.sh ++ ++install: ++ mkdir -p ${PREFIX}/libexec/doom ++ mkdir -p ${PREFIX}/share/doom ++ install -c -m 755 doom.sh ${PREFIX}/bin/doom ++ for i in xdoom sndserver; do \ ++ install -c -m 755 doom-1.8/$$i ${PREFIX}/libexec/doom; \ ++ done ++ for i in doom1.wad README README.config README.linuxx; do \ ++ install -c -m 644 doom-1.8/$$i ${PREFIX}/share/doom; \ ++ done ++ (cd musserver; make install) ++ (cd joystick4doom; make install) ++ ++.include <bsd.subdir.mk> ++ ++doom.sh: ++ sed "s,@PREFIX@,${PREFIX}," doom.sh.in >doom.sh ++ +Binary files ../virgin/doom-1.8/pat and ./doom-1.8/pat differ +Binary files ../virgin/doom-1.8/sdoom and ./doom-1.8/sdoom differ +Binary files ../virgin/doom-1.8/xdoom and ./doom-1.8/xdoom differ +diff -ruN ../virgin/doom.sh.in ./doom.sh.in +--- ../virgin/doom.sh.in Wed Dec 31 18:00:00 1969 ++++ ./doom.sh.in Wed Dec 11 09:58:06 1996 +@@ -0,0 +1,20 @@ ++#!/bin/sh ++ ++if [ -e /dev/joy0 ]; then ++ if sh -c 'exec 9</dev/joy0' 2>/dev/null; then ++ echo using joystick ++ exec 9>&- ++ [ -f /tmp/joystick4doom.pid ] && @PREFIX@/libexec/doom/joystick4xdoom -k ++ @PREFIX@/libexec/doom/joystick4xdoom /dev/joy0 Control Space & ++ fi ++fi ++ ++DOOMWADDIR=@PREFIX@/share/doom; export DOOMWADDIR ++PATH=@PREFIX@/libexec/doom:${PATH} ++ ++cd @PREFIX@/libexec/doom ++@PREFIX@/libexec/doom/xdoom $* ++[ -f /tmp/joystick4doom.pid ] && @PREFIX@/libexec/doom/joystick4xdoom -k ++ ++ipcrm $(ipcs -m |sed -n 's,^\(m *[0-9][0-9]*\).*,-\1,p') ++ +diff -ruN ../virgin/joystick4doom/Makefile ./joystick4doom/Makefile +--- ../virgin/joystick4doom/Makefile Wed Dec 14 01:27:14 1994 ++++ ./joystick4doom/Makefile Tue Dec 10 11:39:26 1996 +@@ -13,8 +13,8 @@ + # Define this to be the file where the joystick settings are saved. + DATFILE = \"/usr/local/lib/joystick.dat\" + +-CFLAGS = -O2 $(DEBUG) $(THRESHOLD) -I. -DJOYSTICK_DAT=$(DATFILE) +-XLDPATH = -L/usr/X11R6/lib ++CFLAGS = -O2 $(DEBUG) $(THRESHOLD) -I${X11BASE}/include -DJOYSTICK_DAT=$(DATFILE) ++XLDPATH = -L${X11BASE}/lib + LDFLAGS = -s + XLIBS = -lX11 + +@@ -22,15 +22,16 @@ + OBJS = joystick4doom.o + XBIN = joystick4xdoom + SBIN = joystick4sdoom +-PRGS = $(XBIN) $(SBIN) ++PRGS = $(XBIN) + + all: $(PRGS) $(SRCS) + + $(XBIN): + $(CC) -DX11 $(CFLAGS) $(LDFLAGS) $(SRCS) -o $(XBIN) $(XLDPATH) $(XLIBS) + +-$(SBIN): +- $(CC) $(CFLAGS) $(LDFLAGS) $(SRCS) -o $(SBIN) +- + clean: + $(RM) $(OBJS) $(PRGS) ++ ++install: ++ install -cs ${XBIN} ${PREFIX}/libexec/doom ++ +diff -ruN ../virgin/joystick4doom/README.FreeBSD ./joystick4doom/README.FreeBSD +--- ../virgin/joystick4doom/README.FreeBSD Wed Dec 31 18:00:00 1969 ++++ ./joystick4doom/README.FreeBSD Tue Dec 10 11:20:58 1996 +@@ -0,0 +1,27 @@ ++Sun Nov 12 23:52:35 PST 1995 ++Hi, ++ ++The Linux Joystick for doom has been ported to FreeBSD and it is at: ++rah.star-gate.com:/pub/joystick4doom.tar.gz ++ ++I have included in the tar file the original FreeBSD joystick.c ++test program . joystick.c is not part of the original linux's ++joystick tar distribution. ++ ++to compile the joystick4doom: ++ ++ cc -o joystick4doom -I/usr/X11R6/include -DX11 joystick4doom.c -L/usr/X11R6/lib -lX11 -lm ++ ++now calibrate it: ++./joystick4doom -c /dev/joy0 ++ ++To run, I use the following command: ++./joystick4doom /dev/joy0 Control Space ++ ++Now run xdoom and have a ball 8) ++ ++ Amancio ++ ++ ++ ++ +diff -ruN ../virgin/joystick4doom/joystick.c ./joystick4doom/joystick.c +--- ../virgin/joystick4doom/joystick.c Wed Dec 31 18:00:00 1969 ++++ ./joystick4doom/joystick.c Tue Dec 10 11:20:58 1996 +@@ -0,0 +1,320 @@ ++/* ++ * Joystick test program for FreeBSD ++ * ++ * Compile with: cc -o joystick joystick.c -lncurses ++ * ++ * ++ * (C) Copyright 1995 Dave Bodenstab ++ * All rights reserved. ++ * ++ * This program and/or source code may be used or distributed without ++ * restriction provided this copyright notice is preserved, no fee is ++ * charged, and this source code is included with any binary distribution. ++ * Commercial use (i.e. you make money using this software) is prohibited ++ * without the express written consent of the author. The author may be ++ * contacted at the following address: ++ * ++ * Dave Bodenstab ++ * 22W451 Oldwoods Drive ++ * Naperville, Illinois 60565 ++ * USA ++ */ ++#include <stdio.h> ++#include <fcntl.h> ++#include <ncurses.h> ++#include <machine/joystick.h> ++ ++const char m_align_ul[] ="Move stick to upper left corner and press a button"; ++const char m_align_lr[] ="Move stick to lower right corner and press a button"; ++const char m_button[] ="Press a button to continue"; ++ ++main( int argc, char **argv ) ++{ ++ int js, x, y, button1, button2; ++ int xLeft, xRight, yTop, yBotton; ++ int quitLeftX, quitTopY, quitRightX, quitBottomY; ++ WINDOW *winMovement, *winButton1Outline, *winButton2Outline, *winButton1, *winButton2, *winQuit; ++ struct joystick joystick; ++ char buffer[100]; ++ ++ if ( (js = open("/dev/joy0",O_RDONLY)) == -1 ) ++ { ++ perror( "/dev/joy0" ); ++ exit( 1 ); ++ } ++ ++ initscr(); ++ curs_set( 0 ); ++ leaveok( stdscr, TRUE ); ++ border( 0, 0, 0, 0, 0, 0, 0, 0 ); ++ ++ /* ++ * Align the stick... ++ */ ++ x = (COLS - 2 - strlen( m_align_ul )) / 2; ++ y = (LINES - 2) / 2; ++ mvaddstr( y, x, (char*)m_align_ul ); ++ refresh(); ++ ++ for( ; ; napms(100) ) /* Wait for a button press... */ ++ { ++ if ( read(js,&joystick,sizeof(joystick)) != sizeof(joystick) ) ++ { ++ endwin(); ++ perror( "read /dev/joy0" ); ++ exit( 1 ); ++ } ++ ++ if ( joystick.b1 || joystick.b2 ) ++ { ++ xLeft = joystick.x; ++ yTop = joystick.y; ++ ++ /* Wait for the button(s) to be released... */ ++ for( ; ; napms(100) ) ++ { ++ if ( read(js,&joystick,sizeof(joystick)) != sizeof(joystick) ) ++ { ++ endwin(); ++ perror( "read /dev/joy0" ); ++ exit( 1 ); ++ } ++ ++ if ( ! (joystick.b1 || joystick.b2) ) ++ break; ++ } ++ ++ break; ++ } ++ } ++ ++ x = (COLS - 2 - strlen( m_align_lr )) / 2; ++ mvaddstr( y + 1, x, (char*)m_align_lr ); ++ refresh(); ++ ++ for( ; ; napms(100) ) /* Wait for a button press... */ ++ { ++ if ( read(js,&joystick,sizeof(joystick)) != sizeof(joystick) ) ++ { ++ endwin(); ++ perror( "read /dev/joy0" ); ++ exit( 1 ); ++ } ++ ++ if ( joystick.b1 || joystick.b2 ) ++ { ++ xRight = joystick.x; ++ yBotton = joystick.y; ++ ++ /* Wait for the button(s) to be released... */ ++ for( ; ; napms(100) ) ++ { ++ if ( read(js,&joystick,sizeof(joystick)) != sizeof(joystick) ) ++ { ++ endwin(); ++ perror( "read /dev/joy0" ); ++ exit( 1 ); ++ } ++ ++ if ( ! (joystick.b1 || joystick.b2) ) ++ break; ++ } ++ ++ break; ++ } ++ } ++ ++ sprintf( buffer, "Upper left = (%d,%d)", xLeft, yTop ); ++ x = (COLS - 2 - strlen( buffer )) / 2; ++ mvaddstr( y+2, x, buffer ); ++ sprintf( buffer, "Lower right = (%d,%d)", xRight, yBotton ); ++ x = (COLS - 2 - strlen( buffer )) / 2; ++ mvaddstr( y+3, x, buffer ); ++ x = (COLS - 2 - strlen( m_button )) / 2; ++ mvaddstr( y+4, x, (char*)m_button ); ++ refresh(); ++ ++ if ( xLeft >= xRight || yTop >= yBotton ) ++ { ++ endwin(); ++ ++ printf( "The stick cannot be aligned properly. Either you didn't align the\n" ++ "stick properly in the upper-left and lower-right corners, or your\n" ++ "hardware is not working.\n" ); ++ ++ exit( 1 ); ++ } ++ ++ /* Wait for a button press... */ ++ for( ; ; napms(100) ) ++ { ++ if ( read(js,&joystick,sizeof(joystick)) != sizeof(joystick) ) ++ { ++ endwin(); ++ perror( "read /dev/joy0" ); ++ exit( 1 ); ++ } ++ ++ if ( joystick.b1 || joystick.b2 ) ++ { ++ /* Wait for the button(s) to be released... */ ++ for( ; ; napms(100) ) ++ { ++ if ( read(js,&joystick,sizeof(joystick)) != sizeof(joystick) ) ++ { ++ endwin(); ++ perror( "read /dev/joy0" ); ++ exit( 1 ); ++ } ++ ++ if ( ! (joystick.b1 || joystick.b2) ) ++ break; ++ } ++ ++ break; ++ } ++ } ++ ++ /* ++ * Create the button windows, the movement window, and the QUIT window ++ */ ++ x = (COLS - 2 - 2*7) / 3; ++ winButton1Outline = subwin( stdscr, 3, 7, LINES-3, x+1 ); ++ wborder( winButton1Outline, 0, 0, 0, 0, 0, 0, ACS_BTEE, ACS_BTEE ); ++ winButton1 = derwin( winButton1Outline, 1, 5, 1, 1 ); ++ ++ winButton2Outline = subwin( stdscr, 3, 7, LINES-3, COLS-1 - x - 1 - (7 - 1) ); ++ wborder( winButton2Outline, 0, 0, 0, 0, 0, 0, ACS_BTEE, ACS_BTEE ); ++ winButton2 = derwin( winButton2Outline, 1, 5, 1, 1 ); ++ ++ winMovement = subwin( stdscr, LINES-4, COLS-2, 1, 1 ); ++ werase( winMovement ); ++ ++ winQuit = newwin( 5, 10, (LINES-4)/3 - 5/2, (COLS-2)/2 - 10/2 ); ++ getbegyx( winQuit, quitTopY, quitLeftX ); ++ getmaxyx( winQuit, quitBottomY, quitRightX ); ++ quitRightX += quitLeftX - 1; ++ quitBottomY += quitTopY - 1; ++ wborder( winQuit, 0, 0, 0, 0, 0, 0, 0, 0 ); ++ mvwaddstr( winQuit, 2, 3, "QUIT" ); ++ overwrite( winQuit, winMovement ); ++ ++ touchwin( stdscr ); ++ refresh(); ++ ++ /* ++ * Read the joystick, moving an '*' around the movement window. When a ++ * button is pressed, highlight the corresponding button window. If the ++ * current position is within the QUIT window and a button is pressed, ++ * exit the program. ++ */ ++ button1 = 0; ++ button2 = 0; ++ x = (COLS-2) / 2; ++ y = (LINES-4) / 2; ++ mvwaddch( winMovement, y, x, '*' ); ++ wrefresh( winMovement ); ++ ++ for( ; ; napms(100) ) ++ { ++ if ( read(js,&joystick,sizeof(joystick)) != sizeof(joystick) ) ++ { ++ endwin(); ++ perror( "read /dev/joy0" ); ++ exit( 1 ); ++ } ++ ++ if ( button1 != joystick.b1 ) /* Check for button 1 */ ++ { ++ touchwin( winMovement ); ++ ++ switch( button1 = joystick.b1 ) ++ { ++ case 0: ++ wattroff( winButton1, A_REVERSE ); ++ break; ++ case 1: ++ wattron( winButton1, A_REVERSE ); ++ break; ++ } ++ ++ mvwaddstr( winButton1, 0, 0, " " ); ++ wrefresh( winButton1 ); ++ } ++ ++ if ( button2 != joystick.b2 ) /* Check for button 2 */ ++ { ++ touchwin( winMovement ); ++ ++ switch( button2 = joystick.b2 ) ++ { ++ case 0: ++ wattroff( winButton2, A_REVERSE ); ++ break; ++ case 1: ++ wattron( winButton2, A_REVERSE ); ++ break; ++ } ++ ++ mvwaddstr( winButton2, 0, 0, " " ); ++ wrefresh( winButton2 ); ++ } ++ ++ if ( joystick.x != x || joystick.y != y ) /* Check for movement */ ++ { ++ int nx, ny; ++ ++ /* Scale the actual coordinates to the nearest character coordinate */ ++ nx = ((joystick.x - xLeft) * (COLS-2 - 1)) / (xRight - xLeft); ++ if ( nx < 0 ) ++ nx = 0; ++ else ++ if ( nx > COLS-2 - 1 ) ++ nx = COLS-2 - 1; ++ ++ ny = ((joystick.y - yTop) * (LINES-4 - 1)) / (yBotton - yTop); ++ if ( ny < 0 ) ++ ny = 0; ++ else ++ if ( ny > LINES-4 - 1 ) ++ ny = LINES-4 - 1; ++ ++ if ( x != nx || y != ny ) /* Check for visible movement */ ++ { ++ mvwaddch( winMovement, y, x, ' ' ); ++ ++ /* ++ * If the old (x,y) was within the QUIT window, then it must be ++ * refreshed to restore any character that was overwritten by the ++ * '*' ++ */ ++ if ( x+1 >= quitLeftX && x+1 <= quitRightX && y+1 >= quitTopY && y+1 <= quitBottomY ) ++ { ++ touchwin( stdscr ); ++ overwrite( winQuit, winMovement ); ++ } ++ ++ mvwaddch( winMovement, y = ny, x = nx, '*' ); ++ wrefresh( winMovement ); ++ ++ /* Show the current coordinates */ ++ sprintf( buffer, "[%3d,%3d]", x, y ); ++ mvaddstr( LINES-2, COLS-1 -3 - strlen(buffer), buffer ); ++ refresh(); ++ } ++ ++ /* ++ * If (x,y) is within the QUIT window, then we exit if either button ++ * is pressed ++ */ ++ if ( x+1 >= quitLeftX && x+1 <= quitRightX && y+1 >= quitTopY && y+1 <= quitBottomY ) ++ { ++ if ( button1 || button2 ) ++ break; ++ } ++ } ++ } ++ ++ endwin(); ++ exit( 0 ); ++} +diff -ruN ../virgin/joystick4doom/joystick4doom.c ./joystick4doom/joystick4doom.c +--- ../virgin/joystick4doom/joystick4doom.c Wed Dec 14 01:26:42 1994 ++++ ./joystick4doom/joystick4doom.c Tue Dec 10 11:20:58 1996 +@@ -24,7 +24,7 @@ + #include <unistd.h> + #include <string.h> + #include <signal.h> +- ++#include <machine/joystick.h> + #ifdef X11 + #define XK_MISCELLANY + #define XK_LATIN1 +@@ -41,19 +41,19 @@ + #define FALSE 0 + #endif /* X11 */ + +-#include <linux/joystick.h> ++/*#include <linux/joystick.h> */ + + #define PIDFILE "/tmp/joystick4doom.pid" + #ifndef JOYSTICK_DAT +-#define JOYSTICK_DAT "/usr/local/lib/joystick.dat" ++#define JOYSTICK_DAT "/usr/local/share/doom/joystick.dat" + #endif + + #define PAUSETIME 100000 + + #define RELEASED 0 + #define PRESSED 1 +-#define HOLDDOWN 2 +-#define UNPRESSED 3 ++#define HOLDDOWN 1 ++#define UNPRESSED -1 + + #define FIRST_BUTTON 0 + #define SECOND_BUTTON 1 +@@ -99,13 +99,15 @@ + char *progname; + int joystick_device; + char *device_name; +-struct JS_DATA_TYPE js; ++/*struct JS_DATA_TYPE js; */ ++ struct joystick js; + int button[2]; + int xpos_left, xpos_middle, xpos_right, xpos_actual; + int ypos_upper,ypos_middle, ypos_lower, ypos_actual; + int i,j; + + /* Keep track of where the joystick is */ ++#define JS_RETURN 16 + #define CENTERED 0x00 + #define CUTRIGHT 0x01 + #define CUTLEFT 0x02 +@@ -182,9 +184,10 @@ + "left", 0x69, 0xe9, + }; + #endif /* X11 */ +- ++ + fprintf(stdout, "Joystick4Doom, 1994 by Artsoft Development\n"); +- ++ button[0] = 0; ++ button[1] = 0; + /* Kill an existing joystick process if requested */ + if ( (argc == 2) && (strcmp(argv[1], "-k") == 0) ) { + if ( (pidfile=fopen(PIDFILE, "r")) != NULL ) { +@@ -300,7 +303,7 @@ + + for(i=0;i<2;i++) + { +- if (button[i]==PRESSED) ++ if (button[i]==1) + { + #ifdef X11 + SendKeyEvent(KeyPress,joykey[key[i]].pressed,joykey[key[i]].key); +@@ -321,7 +324,7 @@ + #endif + } + } +- if (button[i]==RELEASED) ++ if (button[i]==0) + { + #ifdef X11 + SendKeyEvent(KeyRelease,joykey[key[i]].released,joykey[key[i]].key); +@@ -492,7 +495,7 @@ + WaitButton(); + xpos_left =js.x; + ypos_upper=js.y; +- fprintf(stdout, "xpos_left = %d\nypos_upper = %d\n", js.x, js.y); ++ + + fprintf(stdout, "Move joystick to the lower right and press any button!\n"); + WaitButton(); +@@ -524,13 +527,14 @@ + exit(-1); + } + +- for(i=0;i<2;i++) +- { +- if (js.buttons & (1<<i)) +- button[i] = (JB_UNPRESSED(i) ? PRESSED : HOLDDOWN); +- else +- button[i] = (JB_PRESSED(i) ? RELEASED : UNPRESSED); +- } ++ if (button[0] == 0 && js.b1 == 0 ) { ++ button[0] = -1; ++ } else button[0]= js.b1; ++ ++ if (button[1] == 0 && js.b2 == 0 ) { ++ button[1] = -1; ++ } else button[1]= js.b2; ++ + + xpos_actual=js.x; + ypos_actual=js.y; +@@ -583,8 +587,11 @@ + #else + void SendKeyEvent(char key) + { ++ + if ( ioctl(console, TIOCSTI, &key) < 0 ) + perror("ioctl(TIOCSTI)"); + } + #endif /* X11 */ ++ ++ + +Binary files ../virgin/joystick4doom/joystick4sdoom and ./joystick4doom/joystick4sdoom differ +Binary files ../virgin/joystick4doom/joystick4xdoom and ./joystick4doom/joystick4xdoom differ +diff -ruN ../virgin/joystick4doom/linux/joystick.h ./joystick4doom/linux/joystick.h +--- ../virgin/joystick4doom/linux/joystick.h Tue Nov 8 02:11:32 1994 ++++ ./joystick4doom/linux/joystick.h Tue Dec 10 11:20:59 1996 +@@ -1,12 +1,11 @@ + +-#include <linux/sched.h> +-#include <linux/errno.h> +-#include <linux/major.h> +-#include <asm/io.h> ++/*#include <linux/sched.h> */ ++#include <errno.h> ++/*#include <asm/io.h> + #include <asm/segment.h> + #include <asm/system.h> + #include <linux/module.h> +- ++*/ + #define JS_RETURN sizeof(struct JS_DATA_TYPE) /*number of bytes returned by js_read*/ + #define JS_TRUE 1 + #define JS_FALSE 0 +diff -ruN ../virgin/joystick4doom/linux/joystick.h~ ./joystick4doom/linux/joystick.h~ +--- ../virgin/joystick4doom/linux/joystick.h~ Wed Dec 31 18:00:00 1969 ++++ ./joystick4doom/linux/joystick.h~ Tue Dec 10 11:20:59 1996 +@@ -0,0 +1,58 @@ ++ ++#include <linux/sched.h> ++#include <linux/errno.h> ++#include <linux/major.h> ++#include <asm/io.h> ++#include <asm/segment.h> ++#include <asm/system.h> ++#include <linux/module.h> ++ ++#define JS_RETURN sizeof(struct JS_DATA_TYPE) /*number of bytes returned by js_read*/ ++#define JS_TRUE 1 ++#define JS_FALSE 0 ++#define JS_PORT 0x201 /*io port for joystick operations*/ ++#define JS_DEF_TIMEOUT 0x1300 /*default timeout value for js_read()*/ ++#define JS_DEF_CORR 0 /*default correction factor*/ ++#define JS_DEF_TIMELIMIT 10L /*default data valid time =10 jiffies == 100ms*/ ++#define JS_X_0 0x01 /*bit mask for x-axis js0*/ ++#define JS_Y_0 0x02 /*bit mask for y-axis js0*/ ++#define JS_X_1 0x04 /*bit mask for x-axis js1*/ ++#define JS_Y_1 0x08 /*bit mask for y-axis js1*/ ++#define JS_MAX 2 /*Max number of joysticks*/ ++#define PIT_MODE 0x43 /*io port for timer 0*/ ++#define PIT_COUNTER_0 0x40 /*io port for timer 0*/ ++#define JS_SET_CAL 0x01 /*ioctl cmd to set joystick correction factor*/ ++#define JS_GET_CAL 0x02 /*ioctl cmd to get joystick correction factor*/ ++#define JS_SET_TIMEOUT 0x03 /*ioctl cmd to set maximum number of iterations ++ to wait for a timeout*/ ++#define JS_GET_TIMEOUT 0x04 /*as above, to get*/ ++#define JS_SET_TIMELIMIT 0x05 /*set data retention time*/ ++#define JS_GET_TIMELIMIT 0x06 /*get data retention time*/ ++#define JS_GET_ALL 0x07 /*get the whole JS_DATA[minor] struct*/ ++#define JS_SET_ALL 0x08 /*set the whole JS_DATA[minor] struct ++ except JS_BUSY!*/ ++ ++/*This union is used for the ioctl to set the scaling factor and to return ++ the current values for a joystick. 'buttons' is ignored on the ioctl call*/ ++ ++struct JS_DATA_TYPE { ++ int buttons; ++ int x; ++ int y; ++}; ++ ++/* This struct is used for misc data about the joystick*/ ++struct JS_DATA_SAVE_TYPE { ++ int JS_TIMEOUT; /*timeout*/ ++ int BUSY; /*joystick is in use*/ ++ long JS_EXPIRETIME; /*Time when stick after which stick must be re-read*/ ++ long JS_TIMELIMIT; /*Max time before data is invalid*/ ++ struct JS_DATA_TYPE JS_SAVE; /*last read data*/ ++ struct JS_DATA_TYPE JS_CORR; /*correction factor*/ ++}; ++ ++#define LATCH (1193180L/HZ) /*initial timer 0 value*/ ++#define DELTA_TIME(X,Y) ((X)-(Y)+(((X)>=(Y))?0:LATCH)) ++#define CURRENT_JIFFIES (jiffies) ++ ++#define JOYSTICK_MAJOR 15 +diff -ruN ../virgin/musserver/Makefile ./musserver/Makefile +--- ../virgin/musserver/Makefile Fri Jul 28 01:30:47 1995 ++++ ./musserver/Makefile Tue Dec 10 11:43:30 1996 +@@ -7,12 +7,12 @@ + + # Uncomment this line for extra debugging output + #CFLAGS = -g -DDEBUG -I. -Wall -O2 -m486 +-CFLAGS = -g -I. -Wall -O2 -m486 ++CFLAGS = -I. -Wall -O2 -m486 + #CFLAGS = -I. -Wall + LIBS = -s + + INSTALL = install +-DESTDIR = /usr/local/bin ++DESTDIR = /usr/local/libexec/doom + SHELL = /bin/sh + + ############################################# +@@ -21,16 +21,25 @@ + + OBJS = musserver.o readwad.o playmus.o sequencer.o + +-musserver: $(OBJS) ++musserver.bin: $(OBJS) + $(CC) $(LIBS) -o $@ $(OBJS) + ++musserver.sh: musserver.sh.in ++ sed "s,@PREFIX@,${PREFIX}," musserver.sh.in >$@ ++ + clean: +- rm -f $(OBJS) ipc.o ipc musserver ++ rm -f $(OBJS) ipc.o ipc musserver.bin + +-all: musserver ++all: musserver.bin musserver.sh doom-patch + + install: all +- $(INSTALL) musserver $(DESTDIR) ++ $(INSTALL) -cs musserver.bin $(DESTDIR) ++ ${INSTALL} -c -m 755 musserver.sh ${DESTDIR}/musserver + + ipc: ipc.o + $(CC) -o $@ ipc.o ++ ++doom-patch: ++ zcat doompat.tgz |(cd ../doom-1.8; pax -rv) ++ @(cd ../doom-1.8; env PATH=$${PATH}:. sh muspat) ++ touch doom-patch +Binary files ../virgin/musserver/musserver and ./musserver/musserver differ +diff -ruN ../virgin/musserver/musserver.c ./musserver/musserver.c +--- ../virgin/musserver/musserver.c Tue Aug 22 20:50:56 1995 ++++ ./musserver/musserver.c Tue Dec 10 11:20:57 1996 +@@ -28,6 +28,7 @@ + #include <sys/ipc.h> + #include <sys/msg.h> + #include "musserver.h" ++#include <sys/errno.h> + + extern int use_synth; + extern int seqfd; +diff -ruN ../virgin/musserver/musserver.h ./musserver/musserver.h +--- ../virgin/musserver/musserver.h Wed Aug 9 04:18:00 1995 ++++ ./musserver/musserver.h Tue Dec 10 11:20:57 1996 +@@ -18,7 +18,7 @@ + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + *************************************************************************/ + +-#include <sys/soundcard.h> ++#include <machine/soundcard.h> + + struct mus_header { /* header of music lump */ + char id[4]; +diff -ruN ../virgin/musserver/musserver.sh.in ./musserver/musserver.sh.in +--- ../virgin/musserver/musserver.sh.in Wed Dec 31 18:00:00 1969 ++++ ./musserver/musserver.sh.in Tue Dec 10 11:20:57 1996 +@@ -0,0 +1,2 @@ ++#!/bin/sh ++exec @PREFIX@/libexec/doom/musserver.bin -f $* +diff -ruN ../virgin/musserver/playmus.c ./musserver/playmus.c +--- ../virgin/musserver/playmus.c Tue Aug 22 20:14:30 1995 ++++ ./musserver/playmus.c Tue Dec 10 11:20:57 1996 +@@ -29,6 +29,7 @@ + #include <string.h> + #include <ctype.h> + #include "musserver.h" ++#include <sys/errno.h> + + void seqbuf_dump(void); + void reset_midi(void); +@@ -52,6 +53,8 @@ + + int returnval = 0; + ++#define msgbuf mymsg ++ + static char *doom2names[] = { + "D_RUNNIN", "D_STALKS", "D_COUNTD", "D_BETWEE", "D_DOOM", "D_THE_DA", + "D_SHAWN", "D_DDTBLU", "D_IN_CIT", "D_DEAD", "D_STLKS2", "D_THEDA2", +@@ -152,6 +155,7 @@ + } + cleanup(1); + break; ++#if 0 + case EIDRM: + if (verbose) + { +@@ -160,6 +164,7 @@ + } + cleanup(1); + break; ++#endif + case EINTR: + if (verbose) + printf("Could not receive IPC message: received an interrupt signal\n"); +@@ -172,8 +177,10 @@ + } + cleanup(1); + break; ++#if 0 + case ENOMSG: + break; ++#endif + } + free(recv); + } diff --git a/games/doom/pkg-comment b/games/doom/pkg-comment new file mode 100644 index 0000000..c1e4a62 --- /dev/null +++ b/games/doom/pkg-comment @@ -0,0 +1 @@ +Id Software's Doom for linux diff --git a/games/doom/pkg-descr b/games/doom/pkg-descr new file mode 100644 index 0000000..da31315 --- /dev/null +++ b/games/doom/pkg-descr @@ -0,0 +1,7 @@ +This package contains all of the items you'll need to play DOOM +under Linux/FreeBSD, except for an X server if you want to use the X +version. These files are for Linux DOOM version 1.8. + +doom1.wad is the shareware DOOM wad for version 1.8. If you have +DOOM or DOOM II for MS-DOS, then you can use those files instead. + diff --git a/games/doom/pkg-plist b/games/doom/pkg-plist new file mode 100644 index 0000000..83df9dc --- /dev/null +++ b/games/doom/pkg-plist @@ -0,0 +1,12 @@ +bin/doom +share/doom/doom1.wad +share/doom/README +share/doom/README.config +share/doom/README.linuxx +libexec/doom/xdoom +libexec/doom/sndserver +libexec/doom/musserver.bin +libexec/doom/musserver +libexec/doom/joystick4xdoom +@dirrm share/doom +@dirrm libexec/doom |