diff -u --new-file sndserv.old/Makefile sndserv/Makefile
--- sndserv.old/Makefile	Mon Dec 22 21:17:10 1997
+++ sndserv/Makefile	Sat Apr  4 11:06:13 1998
@@ -13,7 +13,9 @@
 
 O=linux
 
-all:	 $(O)/sndserver
+all:	$(O)/sndserver $(O)/sndserver.8bit $(O)/sndserver.8bitMono
+	strip $(O)/sndserver*
+	echo make complete.
 
 clean:
 	rm -f *.o *~ *.flc
@@ -30,7 +32,26 @@
 	$(O)/sounds.o \
 	$(O)/wadread.o \
 	$(O)/linux.o -o $(O)/sndserver $(LIBS)
-	echo make complete.
+$(O)/sndserver.8bit: \
+	$(O)/soundsrv.o \
+	$(O)/sounds.o \
+	$(O)/wadread.o \
+	$(O)/linux8bS.o
+	$(CC) $(CFLAGS) $(LDFLAGS) \
+	$(O)/soundsrv.o \
+	$(O)/sounds.o \
+	$(O)/wadread.o \
+	$(O)/linux8bS.o -o $(O)/sndserver.8bit $(LIBS)
+$(O)/sndserver.8bitMono: \
+	$(O)/soundsrv.o \
+	$(O)/sounds.o \
+	$(O)/wadread.o \
+	$(O)/linux8bM.o
+	$(CC) $(CFLAGS) $(LDFLAGS) \
+	$(O)/soundsrv.o \
+	$(O)/sounds.o \
+	$(O)/wadread.o \
+	$(O)/linux8bM.o -o $(O)/sndserver.8bitMono $(LIBS)
 
 # Rule
 $(O)/%.o: %.c
Common subdirectories: sndserv.old/linux and sndserv/linux
diff -u --new-file sndserv.old/linux8bM.c sndserv/linux8bM.c
--- sndserv.old/linux8bM.c	Thu Jan  1 00:00:00 1970
+++ sndserv/linux8bM.c	Sat Apr  4 10:50:58 1998
@@ -0,0 +1,126 @@
+// Emacs style mode select   -*- C++ -*- 
+//-----------------------------------------------------------------------------
+//
+// $Id: linux.c,v 1.3 1997/01/26 07:45:01 b1 Exp $
+//
+// Copyright (C) 1993-1996 by id Software, Inc.
+//
+// This source is available for distribution and/or modification
+// only under the terms of the DOOM Source Code License as
+// published by id Software. All rights reserved.
+//
+// The source is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
+// for more details.
+//
+//
+// $Log: linux.c,v $
+// Revision 1.3  1997/01/26 07:45:01  b1
+// 2nd formatting run, fixed a few warnings as well.
+//
+// Revision 1.2  1997/01/21 19:00:01  b1
+// First formatting run:
+//  using Emacs cc-mode.el indentation for C++ now.
+//
+// Revision 1.1  1997/01/19 17:22:45  b1
+// Initial check in DOOM sources as of Jan. 10th, 1997
+//
+//
+// DESCRIPTION:
+//	UNIX, soundserver for Linux i386.
+//
+//-----------------------------------------------------------------------------
+
+static const char rcsid[] = "$Id: linux.c,v 1.3 1997/01/26 07:45:01 b1 Exp $";
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include <linux/soundcard.h>
+
+#include "soundsrv.h"
+
+int	audio_fd;
+
+void
+myioctl
+( int	fd,
+  int	command,
+  int*	arg )
+{   
+    int		rc;
+    extern int	errno;
+    
+    rc = ioctl(fd, command, arg);  
+    if (rc < 0)
+    {
+	fprintf(stderr, "ioctl(dsp,%d,arg) failed\n", command);
+	fprintf(stderr, "errno=%d\n", errno);
+	exit(-1);
+    }
+}
+
+void I_InitMusic(void)
+{
+}
+
+void
+I_InitSound
+( int	samplerate,
+  int	samplesize )
+{
+
+    int i;
+                
+    audio_fd = open("/dev/dsp", O_WRONLY);
+    if (audio_fd<0)
+        fprintf(stderr, "Could not open /dev/dsp\n");
+         
+                     
+    i = 11 | (2<<16);                                           
+    myioctl(audio_fd, SNDCTL_DSP_SETFRAGMENT, &i);
+                    
+    myioctl(audio_fd, SNDCTL_DSP_RESET, 0);
+    i=11025;
+    myioctl(audio_fd, SNDCTL_DSP_SPEED, &i);
+    i=0;    
+    myioctl(audio_fd, SNDCTL_DSP_STEREO, &i);
+            
+    myioctl(audio_fd, SNDCTL_DSP_GETFMTS, &i);
+    if (i&=AFMT_U8)    
+        myioctl(audio_fd, SNDCTL_DSP_SETFMT, &i);
+    else
+        fprintf(stderr, "Could not play unsigned 8bit mono data\n");
+
+}
+
+void
+I_SubmitOutputBuffer
+( void*	samples,
+  int	samplecount )
+{
+  unsigned short *s=(unsigned short*)samples;
+  unsigned char   b[samplecount*2];
+  int i,j;
+
+  for(i=0,j=0;i<samplecount*2;i++,j++)
+  {
+	  b[j]	= (( (s[i]^0x8000) >>8) + ( (s[++i]^0x8000) >>8)) >>1;
+	}
+  write(audio_fd, b, samplecount);
+}
+
+void I_ShutdownSound(void)
+{
+
+    close(audio_fd);
+
+}
+
+void I_ShutdownMusic(void)
+{
+}
diff -u --new-file sndserv.old/linux8bS.c sndserv/linux8bS.c
--- sndserv.old/linux8bS.c	Thu Jan  1 00:00:00 1970
+++ sndserv/linux8bS.c	Sat Apr  4 10:43:13 1998
@@ -0,0 +1,126 @@
+// Emacs style mode select   -*- C++ -*- 
+//-----------------------------------------------------------------------------
+//
+// $Id: linux.c,v 1.3 1997/01/26 07:45:01 b1 Exp $
+//
+// Copyright (C) 1993-1996 by id Software, Inc.
+//
+// This source is available for distribution and/or modification
+// only under the terms of the DOOM Source Code License as
+// published by id Software. All rights reserved.
+//
+// The source is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
+// for more details.
+//
+//
+// $Log: linux.c,v $
+// Revision 1.3  1997/01/26 07:45:01  b1
+// 2nd formatting run, fixed a few warnings as well.
+//
+// Revision 1.2  1997/01/21 19:00:01  b1
+// First formatting run:
+//  using Emacs cc-mode.el indentation for C++ now.
+//
+// Revision 1.1  1997/01/19 17:22:45  b1
+// Initial check in DOOM sources as of Jan. 10th, 1997
+//
+//
+// DESCRIPTION:
+//	UNIX, soundserver for Linux i386.
+//
+//-----------------------------------------------------------------------------
+
+static const char rcsid[] = "$Id: linux.c,v 1.3 1997/01/26 07:45:01 b1 Exp $";
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include <linux/soundcard.h>
+
+#include "soundsrv.h"
+
+int	audio_fd;
+
+void
+myioctl
+( int	fd,
+  int	command,
+  int*	arg )
+{   
+    int		rc;
+    extern int	errno;
+    
+    rc = ioctl(fd, command, arg);  
+    if (rc < 0)
+    {
+	fprintf(stderr, "ioctl(dsp,%d,arg) failed\n", command);
+	fprintf(stderr, "errno=%d\n", errno);
+	exit(-1);
+    }
+}
+
+void I_InitMusic(void)
+{
+}
+
+void
+I_InitSound
+( int	samplerate,
+  int	samplesize )
+{
+
+    int i;
+                
+    audio_fd = open("/dev/dsp", O_WRONLY);
+    if (audio_fd<0)
+        fprintf(stderr, "Could not open /dev/dsp\n");
+         
+                     
+    i = 11 | (2<<16);                                           
+    myioctl(audio_fd, SNDCTL_DSP_SETFRAGMENT, &i);
+                    
+    myioctl(audio_fd, SNDCTL_DSP_RESET, 0);
+    i=11025;
+    myioctl(audio_fd, SNDCTL_DSP_SPEED, &i);
+    i=1;    
+    myioctl(audio_fd, SNDCTL_DSP_STEREO, &i);
+            
+    myioctl(audio_fd, SNDCTL_DSP_GETFMTS, &i);
+    if (i&=AFMT_U8)    
+        myioctl(audio_fd, SNDCTL_DSP_SETFMT, &i);
+    else
+        fprintf(stderr, "Could not play unsigned 8bit data\n");
+
+}
+
+void
+I_SubmitOutputBuffer
+( void*	samples,
+  int	samplecount )
+{
+  unsigned short *s=(unsigned short*)samples;
+  unsigned char   b[samplecount*2];
+  int i;
+
+  for(i=0;i<samplecount*2;i++)
+  {
+	  b[i]	= ( (s[i]^0x8000) >>8);
+	}
+  write(audio_fd, b, samplecount*2);
+}
+
+void I_ShutdownSound(void)
+{
+
+    close(audio_fd);
+
+}
+
+void I_ShutdownMusic(void)
+{
+}
