shithub: duke3d

Download patch

ref: e63a4a079eda660f5de81fcf66c0cda453cf1094
parent: 957ca0fed33028a6126ab5bdab60a09027cd0ce7
parent: 09ba7616f3ba9bf367aab25731191b96678ea492
author: Fabien Sanglard <fabien.sanglard@gmail.com>
date: Thu Dec 13 18:12:17 EST 2012

Merge branch 'master' of github.com:fabiensanglard/chocolate_duke3D

--- a/Engine/src/a.c
+++ b/Engine/src/a.c
@@ -17,10 +17,6 @@
 extern int32_t asm3;
 extern int32_t asm4;
 
-int32_t is_vmware_running(void)
-{
-    return 0;
-} /* is_vmware_running */
 
 /* #pragma aux mmxoverlay modify [eax ebx ecx edx] */
 int32_t mmxoverlay(void)
@@ -87,17 +83,17 @@
     rmach_ecx = i3;
     rmach_edx = i4;
     rmach_esi = i5;
-} /* setuprhlineasm4 */
+} 
 
 
-void rhlineasm4(int32_t i1, int32_t i2, int32_t i3, uint32_t i4, uint32_t i5, int32_t i6)
+void rhlineasm4(int32_t i1, int32_t i2, int32_t i3, uint32_t i4, uint32_t i5, int32_t numPixels)
 {
-    uint32_t ebp = i6 - i1;
+    uint32_t ebp = numPixels - i1;
     uint32_t rmach6b = ebp-1;
 
     if (i1 <= 0) return;
 
-    i6 = i1;
+    numPixels = i1;
     do {
 	    i3 = ((i3&0xffffff00)|(*((uint8_t *)i2)));
 	    i4 -= rmach_eax;
@@ -107,10 +103,10 @@
 	    else i2 -= rmach_ecx;
 	    ebp &= rmach_esi;
 	    i1 = ((i1&0xffffff00)|(((uint8_t *)i3)[rmach_edx]));
-	    ((uint8_t *)rmach6b)[i6] = (i1&0xff);
+	    ((uint8_t *)rmach6b)[numPixels] = (i1&0xff);
 	    i2 -= ebp;
-	    i6--;
-    } while (i6);
+	    numPixels--;
+    } while (numPixels);
 } /* rhlineasm4 */
 
 static int32_t rmmach_eax;
@@ -125,18 +121,18 @@
     rmmach_ecx = i3;
     rmmach_edx = i4;
     rmmach_esi = i5;
-} /* setuprmhlineasm4 */
+} 
 
-/* #pragma aux rmhlineasm4 parm [eax][ebx][ecx][edx][esi][edi] */
+
 //FCS: ????
-void rmhlineasm4(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
+void rmhlineasm4(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t numPixels)
 {
-    uint32_t ebp = i6 - i1;
+    uint32_t ebp = numPixels - i1;
     uint32_t rmach6b = ebp-1;
 
     if (i1 <= 0) return;
 
-    i6 = i1;
+    numPixels = i1;
     do {
 	    i3 = ((i3&0xffffff00)|(*((uint8_t *)i2)));
 	    i4 -= rmmach_eax;
@@ -147,44 +143,31 @@
 	    ebp &= rmmach_esi;
 	    if ((i3&0xff) != 255) {
 		    i1 = ((i1&0xffffff00)|(((uint8_t  *)i3)[rmmach_edx]));
-		    ((uint8_t  *)rmach6b)[i6] = (i1&0xff);
+		    ((uint8_t  *)rmach6b)[numPixels] = (i1&0xff);
 	    }
 	    i2 -= ebp;
-	    i6--;
-    } while (i6);
-} /* rmhlineasm4 */
+	    numPixels--;
+    } while (numPixels);
+} 
 
 
-/* #pragma aux setupqrhlineasm4 parm [eax][ebx][ecx][edx][esi][edi] */
-void setupqrhlineasm4(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
-{
-    setuprhlineasm4(i1,i2,i3,i4,i5,i6);
-} /* setupqrhlineasm4 */
 
-
-/* #pragma aux qrhlineasm4 parm [eax][ebx][ecx][edx][esi][edi] */
-void qrhlineasm4(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
-{
-    rhlineasm4(i1,i2,i3,i4,i5,i6);
-} /* qrhlineasm4 */
-
-/* #pragma aux setvlinebpl parm [eax] */
 static int32_t fixchain;
 void setvlinebpl(int32_t i1)
 {
     fixchain = i1;
-} /* setvlinebpl */
+} 
 
-/* #pragma aux fixtransluscence parm [eax] */
+
 static int32_t tmach;
 void fixtransluscence(int32_t i1)
 {
     tmach = i1;
-} /* fixtransluscence */
+} 
 
 int32_t vlineasm1(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6);
 
-/* #pragma aux prevlineasm1 parm [eax][ebx][ecx][edx][esi][edi] */
+
 static uint8_t  mach3_al;
 
 //FCS:  RENDER TOP AND BOTTOM COLUMN
@@ -210,14 +193,11 @@
     } else {
 	    return vlineasm1(i1,i2,i3,i4,i5,i6);
     }
-} /* prevlineasm1 */
+}
 
-//FCS:Debug
-//extern uint8_t  * get_framebuffer(void);
 
-/* #pragma aux vlineasm1 parm [eax][ebx][ecx][edx][esi][edi] */
 //FCS: This is used to draw wall border vertical lines
-int32_t vlineasm1(int32_t vince, int32_t palookupoffse, int32_t i3, int32_t vplce, int32_t bufplce, int32_t i6)
+int32_t vlineasm1(int32_t vince, int32_t palookupoffse, int32_t numPixels, int32_t vplce, int32_t bufplce, int32_t i6)
 {
     uint32_t temp;
     uint8_t  *dest = (uint8_t  *)i6;
@@ -225,8 +205,8 @@
     if (!RENDER_DRAW_WALL_BORDERS)
 		return vplce;
 
-    i3++;
-    while (i3)
+    numPixels++;
+    while (numPixels)
     {
 	    temp = ((unsigned)vplce) >> mach3_al;
         
@@ -235,27 +215,27 @@
         *dest = ((uint8_t *)palookupoffse)[temp];
 	    vplce += vince;
 	    dest += fixchain;
-	    i3--;
+	    numPixels--;
     }
     return vplce;
-} /* vlineasm1 */
+} 
 
-/* #pragma aux setuptvlineasm parm [eax] */
+
 static uint8_t  transmach3_al = 32;
 void setuptvlineasm(int32_t i1)
 {
     transmach3_al = (i1 & 0x1f);
-} /* setuptvlineasm */
+}
 
-/* #pragma aux tvlineasm1 parm [eax][ebx][ecx][edx][esi][edi] */
+
 static int transrev = 0;
-int32_t tvlineasm1(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
+int32_t tvlineasm1(int32_t i1, int32_t i2, int32_t numPixels, int32_t i4, int32_t i5, int32_t i6)
 {
 	uint8_t  *source = (uint8_t  *)i5;
 	uint8_t  *dest = (uint8_t  *)i6;
 
-	i3++;
-	while (i3)
+	numPixels++;
+	while (numPixels)
 	{
 		uint32_t temp = i4;
 		temp >>= transmach3_al;
@@ -270,7 +250,7 @@
 		}
 		i4 += i1;
 		dest += fixchain;
-		i3--;
+		numPixels--;
 	}
 	return i4;
 } /* tvlineasm1 */
@@ -286,7 +266,7 @@
 	tran2pal_ecx = i3;
 } /* */
 
-/* #pragma aux tvlineasm2 parm [eax][ebx][ecx][edx][esi][edi] */
+
 void tvlineasm2(uint32_t i1, uint32_t i2, uint32_t i3, uint32_t i4, uint32_t i5, uint32_t i6)
 {
 	uint32_t ebp = i1;
@@ -340,10 +320,10 @@
 	} while (i6 > i6 - fixchain);
 	asm1 = i5;
 	asm2 = ebp;
-} /* tvlineasm2 */
+} 
 
 
-/* #pragma aux mvlineasm1 parm [eax][ebx][ecx][edx][esi][edi] */
+
 static uint8_t  machmv;
 int32_t mvlineasm1(int32_t vince, int32_t palookupoffse, int32_t i3, int32_t vplce, int32_t bufplce, int32_t i6)
 {
@@ -362,11 +342,11 @@
     return vplce;
 } /* mvlineasm1 */
 
-/* #pragma aux setupvlineasm parm [eax] */
+
 void setupvlineasm(int32_t i1)
 {
     mach3_al = (i1&0x1f);
-} /* setupvlineasm */
+}
 
 extern int32_t vplce[4], vince[4], palookupoffse[4], bufplce[4];
 
@@ -415,12 +395,11 @@
 }
 #endif
 
-/* #pragma aux vlineasm4 parm [ecx][edi] modify [eax ebx ecx edx esi edi] */
+
 //FCS This is used to fill the inside of a wall
 void vlineasm4(int32_t i1, int32_t i2)
 {
 
-	
 	if (!RENDER_DRAW_WALL_INSIDE)
 		return ;
 
@@ -447,13 +426,13 @@
     }
 } /* vlineasm4 */
 
-/* #pragma aux setupmvlineasm parm [eax] */
+
 void setupmvlineasm(int32_t i1)
 {
     machmv = (i1&0x1f);
 } /* setupmvlineasm */
 
-/* #pragma aux mvlineasm4 parm [ecx][edi] modify [eax ebx ecx edx esi edi] */
+
 void mvlineasm4(int32_t i1, int32_t i2)
 {
     int i;
@@ -474,7 +453,7 @@
     } while (((unsigned)dest - fixchain) < ((unsigned)dest));
 } /* mvlineasm4 */
 
-/* #pragma aux setupspritevline parm [eax][ebx][ecx][edx][esi][edi] */
+
 static int32_t spal_eax;
 static int32_t smach_eax;
 static int32_t smach2_eax;
@@ -487,20 +466,22 @@
     smach2_eax = (i5>>16)+i2;
     smach5_eax = smach2_eax + i4;
     smach_ecx = i3;
-} /* setupspritevline */
+} 
 
-/* #pragma aux spritevline parm [eax][ebx][ecx][edx][esi][edi] */
+
 void spritevline(int32_t i1, uint32_t i2, int32_t i3, uint32_t i4, int32_t i5, int32_t i6)
 {
     uint8_t  *source = (uint8_t  *)i5;
     uint8_t  *dest = (uint8_t  *)i6;
 
-dumblabel1:
+setup:
+
     i2 += smach_eax;
     i1 = (i1&0xffffff00) | (*source&0xff);
     if ((i2 - smach_eax) > i2) source += smach2_eax + 1;
     else source += smach2_eax;
-dumblabel2:
+
+draw:
     i1 = (i1&0xffffff00) | (((uint8_t  *)spal_eax)[i1]&0xff);
     *dest = i1;
     dest += fixchain;
@@ -508,16 +489,16 @@
     i4 += smach_ecx;
     i4--;
     if (!((i4 - smach_ecx) > i4) && i4 != 0)
-	    goto dumblabel1;
+	    goto setup;
     if (i4 == 0) return;
     i2 += smach_eax;
     i1 = (i1&0xffffff00) | (*source&0xff);
     if ((i2 - smach_eax) > i2) source += smach5_eax + 1;
     else source += smach5_eax;
-    goto dumblabel2;
+    goto draw;
 } /* spritevline */
 
-/* #pragma aux msetupspritevline parm [eax][ebx][ecx][edx][esi][edi] */
+
 static int32_t mspal_eax;
 static int32_t msmach_eax;
 static int32_t msmach2_eax;
@@ -530,20 +511,21 @@
     msmach2_eax = (i5>>16)+i2;
     msmach5_eax = smach2_eax + i4;
     msmach_ecx = i3;
-} /* msetupspritevline */
+} 
 
-/* #pragma aux mspritevline parm [eax][ebx][ecx][edx][esi][edi] */
+
 void mspritevline(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
 {
     uint8_t  *source = (uint8_t  *)i5;
     uint8_t  *dest = (uint8_t  *)i6;
 
-msdumblabel1:
+setup:
     i2 += smach_eax;
     i1 = (i1&0xffffff00) | (*source&0xff);
     if ((i2 - smach_eax) > i2) source += smach2_eax + 1;
     else source += smach2_eax;
-msdumblabel2:
+
+	draw:
     if ((i1&0xff) != 255)
     {
 	    i1 = (i1&0xffffff00) | (((uint8_t  *)spal_eax)[i1]&0xff);
@@ -554,16 +536,16 @@
     i4 += smach_ecx;
     i4--;
     if (!((i4 - smach_ecx) > i4) && i4 != 0)
-	    goto msdumblabel1;
+	    goto setup;
     if (i4 == 0) return;
     i2 += smach_eax;
     i1 = (i1&0xffffff00) | (*source&0xff);
     if ((i2 - smach_eax) > i2) source += smach5_eax + 1;
     else source += smach5_eax;
-    goto msdumblabel2;
-} /* mspritevline */
+    goto draw;
+}
 
-/* #pragma aux tsetupspritevline parm [eax][ebx][ecx][edx][esi][edi] */
+
 uint32_t tspal;
 uint32_t tsmach_eax1;
 uint32_t tsmach_eax2;
@@ -576,15 +558,15 @@
 	tsmach_eax2 = (i5 >> 16) + i2;
 	tsmach_eax3 = tsmach_eax2 + i4;
 	tsmach_ecx = i3;
-} /* tsetupspritevline */
+} 
 
-/* #pragma aux tspritevline parm [eax][ebx][ecx][edx][esi][edi] */
-void tspritevline(int32_t i1, int32_t i2, int32_t i3, uint32_t i4, int32_t i5, int32_t i6)
+
+void tspritevline(int32_t i1, int32_t i2, int32_t numPixels, uint32_t i4, int32_t i5, int32_t i6)
 {
-	while (i3)
+	while (numPixels)
 	{
-		i3--;
-		if (i3 != 0)
+		numPixels--;
+		if (numPixels != 0)
 		{
 			uint32_t adder = tsmach_eax2;
 			i4 += tsmach_ecx;
@@ -606,9 +588,9 @@
 			i6 += fixchain;
 		}
 	}
-} /* tspritevline */
+} 
 
-/* #pragma aux mhline parm [eax][ebx][ecx][edx][esi][edi] */
+
 static int32_t mmach_eax;
 static int32_t mmach_asm3;
 static int32_t mmach_asm1;
@@ -621,9 +603,9 @@
     mmach_asm1 = asm1;
     mmach_asm2 = asm2;
     mhlineskipmodify(asm2,i2,i3,i4,i5,i6);
-} /* mhline */
+}
 
-/* #pragma aux mhlineskipmodify parm [eax][ebx][ecx][edx][esi][edi] */
+
 static uint8_t  mshift_al = 26;
 static uint8_t  mshift_bl = 6;
 void mhlineskipmodify(int32_t i1, uint32_t i2, uint32_t i3, int32_t i4, int32_t i5, int32_t i6)
@@ -643,9 +625,9 @@
 	    i6++;
 	    counter--;
     }
-} /* mhlineskipmodify */
+}
 
-/* #pragma aux msethlineshift parm [eax][ebx] */
+
 void msethlineshift(int32_t i1, int32_t i2)
 {
     i1 = 256-i1;
@@ -653,7 +635,7 @@
     mshift_bl = (i2&0x1f);
 } /* msethlineshift */
 
-/* #pragma aux thline parm [eax][ebx][ecx][edx][esi][edi] */
+
 static int32_t tmach_eax;
 static int32_t tmach_asm3;
 static int32_t tmach_asm1;
@@ -666,9 +648,8 @@
     tmach_asm1 = asm1;
     tmach_asm2 = asm2;
     thlineskipmodify(asm2,i2,i3,i4,i5,i6);
-} /* thline */
+}
 
-/* #pragma aux thlineskipmodify parm [eax][ebx][ecx][edx][esi][edi] */
 static uint8_t  tshift_al = 26;
 static uint8_t  tshift_bl = 6;
 void thlineskipmodify(int32_t i1, uint32_t i2, uint32_t i3, int32_t i4, int32_t i5, int32_t i6)
@@ -693,17 +674,17 @@
 	    i6++;
 	    counter--;
     }
-} /* thlineskipmodify */
+} 
 
-/* #pragma aux tsethlineshift parm [eax][ebx] */
+
 void tsethlineshift(int32_t i1, int32_t i2)
 {
     i1 = 256-i1;
     tshift_al = (i1&0x1f);
     tshift_bl = (i2&0x1f);
-} /* tsethlineshift */
+}
 
-/* #pragma aux setupslopevlin parm [eax][ebx][ecx] modify [edx] */
+
 static int32_t slopemach_ebx;
 static int32_t slopemach_ecx;
 static int32_t slopemach_edx;
@@ -722,7 +703,7 @@
     slopemach_ah2 = (slopemach_ah1 - (i1&0x1f)) & 0x1f;
     c.f = asm2_f = (float)asm1;
     asm2 = c.i;
-} /* setupslopevlin */
+}
 
 extern int32_t reciptable[2048];
 extern int32_t globalx3, globaly3;
@@ -794,46 +775,15 @@
     } while ((int32_t)ebx > 0);
 } /* slopevlin */
 
-/* #pragma aux settransnormal parm */
+
 void settransnormal(void)
 {
 	transrev = 0;
-} /* settransnormal */
+} 
 
-/* #pragma aux settransreverse parm */
+
 void settransreverse(void)
 {
 	transrev = 1;
-} /* settransreverse */
-
-/* #pragma aux setupdrawslab parm [eax][ebx] */
-int32_t setupdrawslab(int32_t i1, int32_t i2)
-{
-    int32_t retval = 0;
-  
-    return(retval);
-
-} /* setupdrawslab */
-
-/* #pragma aux drawslab parm [eax][ebx][ecx][edx][esi][edi] */
-int32_t drawslab(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
-{
-    int32_t retval = 0;
-    /*
-    __asm__ __volatile__ (
-        "call _asm_drawslab   \n\t"
-       : "=a" (retval)
-        : "a" (i1), "b" (i2), "c" (i3), "d" (i4), "S" (i5), "D" (i6)
-        : "cc", "memory");
-	*/
-    return(retval);
-} /* drawslab */
-
-/* #pragma aux stretchhline parm [eax][ebx][ecx][edx][esi][edi] */
-int32_t stretchhline(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
-{
-    int32_t retval = 0;
-   
-    return(retval);
-} /* stretchhline */
+} 
 
--- a/Engine/src/a.h
+++ b/Engine/src/a.h
@@ -27,8 +27,8 @@
 int32_t rhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 int32_t setuprmhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 int32_t rmhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t setupqrhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t qrhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+
+
 int32_t setvlinebpl(int32_t);
 int32_t fixtransluscence(int32_t);
 int32_t prevlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
--- a/Engine/src/cache1d.c
+++ b/Engine/src/cache1d.c
@@ -207,7 +207,7 @@
 	}
 }
 
-void reportandexit(uint8_t  *errormessage)
+void reportandexit(char  *errormessage)
 {
 	int32_t i, j;
 
--- a/Engine/src/cache1d.h
+++ b/Engine/src/cache1d.h
@@ -24,7 +24,7 @@
 void allocache (int32_t *newhandle, int32_t newbytes, uint8_t  *newlockptr);
 void suckcache (int32_t *suckptr);
 void agecache(void);
-void reportandexit(uint8_t  *errormessage);
+void reportandexit(char  *errormessage);
 int32_t initgroupfile(const uint8_t  *filename);
 void uninitgroupfile(void);
 unsigned short crc16(uint8_t  *data_p, unsigned short length);
--- a/Engine/src/engine.c
+++ b/Engine/src/engine.c
@@ -3378,7 +3378,7 @@
 				if ((xv2&0x0000ffff) == 0)
 				{
 					qlinemode = 1;
-					setupqrhlineasm4(0L,yv2<<16,(xv2>>16)*ysiz+(yv2>>16),palookupoffs,0L,0L);
+					setuprhlineasm4(0L,yv2<<16,(xv2>>16)*ysiz+(yv2>>16),palookupoffs,0L,0L);
 				}
 				else
 				{
@@ -3411,7 +3411,7 @@
 
 								/* x,y1 */
 							bx += xv*(y1-oy); by += yv*(y1-oy); oy = y1;
-							if (dastat&64) {  if (qlinemode) qrhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y1]+x+frameplace);
+							if (dastat&64) {  if (qlinemode) rhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y1]+x+frameplace);
 																  else rhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y1]+x+frameplace);
 															  } else rmhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y1]+x+frameplace);
 						}
@@ -3425,7 +3425,7 @@
 
 								/* x,y1 */
 							bx += xv*(y1-oy); by += yv*(y1-oy); oy = y1;
-							if (dastat&64) {  if (qlinemode) qrhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y1]+x+frameplace);
+							if (dastat&64) {  if (qlinemode) rhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y1]+x+frameplace);
 																  else rhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y1]+x+frameplace);
 															  } else rmhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y1]+x+frameplace);
 						}
@@ -3437,7 +3437,7 @@
 
 							/* x,y2 */
 						bx += xv*(y2-oy); by += yv*(y2-oy); oy = y2;
-						if (dastat&64) {  if (qlinemode) qrhlineasm4(x-lastx[y2],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y2]+x+frameplace);
+						if (dastat&64) {  if (qlinemode) rhlineasm4(x-lastx[y2],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y2]+x+frameplace);
 															  else rhlineasm4(x-lastx[y2],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y2]+x+frameplace);
 														  } else rmhlineasm4(x-lastx[y2],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y2]+x+frameplace);
 					}
@@ -3451,7 +3451,7 @@
 
 							/* x,y1 */
 						bx += xv*(y1-oy); by += yv*(y1-oy); oy = y1;
-						if (dastat&64) {  if (qlinemode) qrhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y1]+x+frameplace);
+						if (dastat&64) {  if (qlinemode) rhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y1]+x+frameplace);
 															  else rhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y1]+x+frameplace);
 														  } else rmhlineasm4(x-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y1]+x+frameplace);
 					}
@@ -3468,7 +3468,7 @@
 
 					/* x2,y1 */
 				bx += xv*(y1-oy); by += yv*(y1-oy); oy = y1;
-				if (dastat&64) {  if (qlinemode) qrhlineasm4(x2-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y1]+x2+frameplace);
+				if (dastat&64) {  if (qlinemode) rhlineasm4(x2-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,0L    ,by<<16,ylookup[y1]+x2+frameplace);
 													  else rhlineasm4(x2-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y1]+x2+frameplace);
 												  } else rmhlineasm4(x2-lastx[y1],(bx>>16)*ysiz+(by>>16)+bufplc,0L,bx<<16,by<<16,ylookup[y1]+x2+frameplace);
 			}
@@ -4178,219 +4178,6 @@
 	while (y1 < y2-1) ceilspritehline(x2,++y1);
 	faketimerhandler();
 }
-
-
-#ifdef SUPERBUILD
-static void drawvox(int32_t dasprx, int32_t daspry, int32_t dasprz, int32_t dasprang,
-		  int32_t daxscale, int32_t dayscale, uint8_t  daindex,
-		  int8_t dashade, uint8_t  dapal, int32_t *daumost, int32_t *dadmost)
-{
-	int32_t i, j, k, x, y, syoff, ggxstart, ggystart, nxoff;
-	int32_t cosang, sinang, sprcosang, sprsinang, backx, backy, gxinc, gyinc;
-	int32_t daxsiz, daysiz, dazsiz, daxpivot, daypivot, dazpivot;
-	int32_t daxscalerecip, dayscalerecip, cnt, gxstart, gystart, odayscale;
-	int32_t l1, l2, slabxoffs, xyvoxoffs, *longptr;
-	int32_t lx, rx, nx, ny, x1=0, y1=0, z1, x2=0, y2=0, z2, yplc, yinc=0;
-	int32_t yoff, xs=0, ys=0, xe, ye, xi=0, yi=0, cbackx, cbacky, dagxinc, dagyinc;
-	short *shortptr;
-	uint8_t  *voxptr, *voxend, *davoxptr, oand, oand16, oand32;
-
-	cosang = sintable[(globalang+512)&2047];
-	sinang = sintable[globalang&2047];
-	sprcosang = sintable[(dasprang+512)&2047];
-	sprsinang = sintable[dasprang&2047];
-
-	i = klabs(dmulscale6(dasprx-globalposx,cosang,daspry-globalposy,sinang));
-	j = (long)(getpalookup((long)mulscale21(globvis,i),(long)dashade)<<8);
-	setupdrawslab(ylookup[1],(long)FP_OFF(palookup[dapal])+j);
-	j = 1310720;
-	j *= min(daxscale,dayscale); j >>= 6;  /* New hacks (for sized-down voxels) */
-	for(k=0;k<MAXVOXMIPS;k++)
-	{
-		if (i < j) { i = k; break; }
-		j <<= 1;
-	}
-	if (k >= MAXVOXMIPS) i = MAXVOXMIPS-1;
-
-	davoxptr = (uint8_t  *)voxoff[daindex][i]; if (!davoxptr) return;
-
-	daxscale <<= (i+8); dayscale <<= (i+8);
-	odayscale = dayscale;
-	daxscale = mulscale16(daxscale,xyaspect);
-	daxscale = scale(daxscale,xdimenscale,xdimen<<8);
-	dayscale = scale(dayscale,mulscale16(xdimenscale,viewingrangerecip),xdimen<<8);
-
-	daxscalerecip = (1<<30)/daxscale;
-	dayscalerecip = (1<<30)/dayscale;
-
-	longptr = (int32_t *)davoxptr;
-	daxsiz = longptr[0]; daysiz = longptr[1]; dazsiz = longptr[2];
-	daxpivot = longptr[3]; daypivot = longptr[4]; dazpivot = longptr[5];
-	davoxptr += (6<<2);
-
-	x = mulscale16(globalposx-dasprx,daxscalerecip);
-	y = mulscale16(globalposy-daspry,daxscalerecip);
-	backx = ((dmulscale10(x,sprcosang,y,sprsinang)+daxpivot)>>8);
-	backy = ((dmulscale10(y,sprcosang,x,-sprsinang)+daypivot)>>8);
-	cbackx = min(max(backx,0),daxsiz-1);
-	cbacky = min(max(backy,0),daysiz-1);
-
-	sprcosang = mulscale14(daxscale,sprcosang);
-	sprsinang = mulscale14(daxscale,sprsinang);
-
-	x = (dasprx-globalposx) - dmulscale18(daxpivot,sprcosang,daypivot,-sprsinang);
-	y = (daspry-globalposy) - dmulscale18(daypivot,sprcosang,daxpivot,sprsinang);
-
-	cosang = mulscale16(cosang,dayscalerecip);
-	sinang = mulscale16(sinang,dayscalerecip);
-
-	gxstart = y*cosang - x*sinang;
-	gystart = x*cosang + y*sinang;
-	gxinc = dmulscale10(sprsinang,cosang,sprcosang,-sinang);
-	gyinc = dmulscale10(sprcosang,cosang,sprsinang,sinang);
-
-	x = 0; y = 0; j = max(daxsiz,daysiz);
-	for(i=0;i<=j;i++)
-	{
-		ggxinc[i] = x; x += gxinc;
-		ggyinc[i] = y; y += gyinc;
-	}
-
-	if ((klabs(globalposz-dasprz)>>10) >= klabs(odayscale)) return;
-	syoff = divscale21(globalposz-dasprz,odayscale) + (dazpivot<<7);
-	yoff = ((klabs(gxinc)+klabs(gyinc))>>1);
-	longptr = (int32_t *)davoxptr;
-	xyvoxoffs = ((daxsiz+1)<<2);
-
-	for(cnt=0;cnt<8;cnt++)
-	{
-		switch(cnt)
-		{
-			case 0: xs = 0;        ys = 0;        xi = 1;  yi = 1;  break;
-			case 1: xs = daxsiz-1; ys = 0;        xi = -1; yi = 1;  break;
-			case 2: xs = 0;        ys = daysiz-1; xi = 1;  yi = -1; break;
-			case 3: xs = daxsiz-1; ys = daysiz-1; xi = -1; yi = -1; break;
-			case 4: xs = 0;        ys = cbacky;   xi = 1;  yi = 2;  break;
-			case 5: xs = daxsiz-1; ys = cbacky;   xi = -1; yi = 2;  break;
-			case 6: xs = cbackx;   ys = 0;        xi = 2;  yi = 1;  break;
-			case 7: xs = cbackx;   ys = daysiz-1; xi = 2;  yi = -1; break;
-		}
-		xe = cbackx; ye = cbacky;
-		if (cnt < 4)
-		{
-			if ((xi < 0) && (xe >= xs)) continue;
-			if ((xi > 0) && (xe <= xs)) continue;
-			if ((yi < 0) && (ye >= ys)) continue;
-			if ((yi > 0) && (ye <= ys)) continue;
-		}
-		else
-		{
-			if ((xi < 0) && (xe > xs)) continue;
-			if ((xi > 0) && (xe < xs)) continue;
-			if ((yi < 0) && (ye > ys)) continue;
-			if ((yi > 0) && (ye < ys)) continue;
-			xe += xi; ye += yi;
-		}
-
-		i = ksgn(ys-backy)+ksgn(xs-backx)*3+4;
-		switch(i)
-		{
-			case 6: case 7: x1 = 0; y1 = 0; break;
-			case 8: case 5: x1 = gxinc; y1 = gyinc; break;
-			case 0: case 3: x1 = gyinc; y1 = -gxinc; break;
-			case 2: case 1: x1 = gxinc+gyinc; y1 = gyinc-gxinc; break;
-		}
-		switch(i)
-		{
-			case 2: case 5: x2 = 0; y2 = 0; break;
-			case 0: case 1: x2 = gxinc; y2 = gyinc; break;
-			case 8: case 7: x2 = gyinc; y2 = -gxinc; break;
-			case 6: case 3: x2 = gxinc+gyinc; y2 = gyinc-gxinc; break;
-		}
-		oand = pow2char[(xs<backx)+0]+pow2char[(ys<backy)+2];
-		oand16 = oand+16;
-		oand32 = oand+32;
-
-		if (yi > 0) { dagxinc = gxinc; dagyinc = mulscale16(gyinc,viewingrangerecip); }
-				 else { dagxinc = -gxinc; dagyinc = -mulscale16(gyinc,viewingrangerecip); }
-
-			/* Fix for non 90 degree viewing ranges */
-		nxoff = mulscale16(x2-x1,viewingrangerecip);
-		x1 = mulscale16(x1,viewingrangerecip);
-
-		ggxstart = gxstart+ggyinc[ys];
-		ggystart = gystart-ggxinc[ys];
-
-		for(x=xs;x!=xe;x+=xi)
-		{
-			slabxoffs = (long)&davoxptr[longptr[x]];
-			shortptr = (short *)&davoxptr[((x*(daysiz+1))<<1)+xyvoxoffs];
-
-			nx = mulscale16(ggxstart+ggxinc[x],viewingrangerecip)+x1;
-			ny = ggystart+ggyinc[x];
-			for(y=ys;y!=ye;y+=yi,nx+=dagyinc,ny-=dagxinc)
-			{
-				if ((ny <= nytooclose) || (ny >= nytoofar)) continue;
-				voxptr = (uint8_t  *)(shortptr[y]+slabxoffs);
-				voxend = (uint8_t  *)(shortptr[y+1]+slabxoffs);
-				if (voxptr == voxend) continue;
-
-				lx = mulscale32(nx>>3,distrecip[(ny+y1)>>14])+halfxdimen;
-				if (lx < 0) lx = 0;
-				rx = mulscale32((nx+nxoff)>>3,distrecip[(ny+y2)>>14])+halfxdimen;
-				if (rx > xdimen) rx = xdimen;
-				if (rx <= lx) continue;
-				rx -= lx;
-
-				l1 = distrecip[(ny-yoff)>>14];
-				l2 = distrecip[(ny+yoff)>>14];
-				for(;voxptr<voxend;voxptr+=voxptr[1]+3)
-				{
-					j = (voxptr[0]<<15)-syoff;
-					if (j < 0)
-					{
-						k = j+(voxptr[1]<<15);
-						if (k < 0)
-						{
-							if ((voxptr[2]&oand32) == 0) continue;
-							z2 = mulscale32(l2,k) + globalhoriz;     /* Below slab */
-						}
-						else
-						{
-							if ((voxptr[2]&oand) == 0) continue;    /* Middle of slab */
-							z2 = mulscale32(l1,k) + globalhoriz;
-						}
-						z1 = mulscale32(l1,j) + globalhoriz;
-					}
-					else
-					{
-						if ((voxptr[2]&oand16) == 0) continue;
-						z1 = mulscale32(l2,j) + globalhoriz;        /* Above slab */
-						z2 = mulscale32(l1,j+(voxptr[1]<<15)) + globalhoriz;
-					}
-
-					if (voxptr[1] == 1)
-					{
-						yplc = 0; yinc = 0;
-						if (z1 < daumost[lx]) z1 = daumost[lx];
-					}
-					else
-					{
-						if (z2-z1 >= 1024) yinc = divscale16(voxptr[1],z2-z1);
-						else if (z2 > z1) yinc = (lowrecip[z2-z1]*voxptr[1]>>8);
-						if (z1 < daumost[lx]) { yplc = yinc*(daumost[lx]-z1); z1 = daumost[lx]; } else yplc = 0;
-					}
-					if (z2 > dadmost[lx]) z2 = dadmost[lx];
-					z2 -= z1; if (z2 <= 0) continue;
-
-					drawslab(rx,yplc,z2,yinc,(long)&voxptr[3],ylookup[z1]+lx+frameoffset);
-				}
-			}
-		}
-	}
-}
-#endif
-
 
 static void drawsprite (int32_t snum)
 {
--- a/Engine/src/engine_protos.h
+++ b/Engine/src/engine_protos.h
@@ -29,7 +29,7 @@
 extern void allocache(int32_t *newhandle, int32_t newbytes, uint8_t  *newlockptr);
 extern void suckcache(int32_t *suckptr);
 extern void agecache(void);
-extern void reportandexit(uint8_t  *errormessage);
+extern void reportandexit(char  *errormessage);
 extern int32_t initgroupfile(const uint8_t  *filename);
 extern void uninitgroupfile(void);
 extern int32_t kopen4load(const char  *filename,int readfromGRP);
--- a/Engine/src/sdl_driver.c
+++ b/Engine/src/sdl_driver.c
@@ -1055,21 +1055,6 @@
 } /* output_sdl_versions */
 
 
-static int in_vmware = 0;
-static __inline void detect_vmware(void)
-{
-#if 1
-    in_vmware = 0;  /* oh well. */
-#else
-    /* !!! need root access to touch i/o ports on Linux. */
-    #if (!defined __linux__)
-        in_vmware = (int) is_vmware_running();
-    #endif
-    sdldebug("vmWare %s running.", (in_vmware) ? "is" : "is not");
-#endif
-} /* detect_vmware */
-
-
 /* lousy -ansi flag.  :) */
 static char  *string_dupe(const char  *str)
 {
@@ -1373,7 +1358,7 @@
 
     output_sdl_versions();
     output_driver_info();
-    detect_vmware();
+    
 
 	printf("Video Driver [directx or windib]? -> %s \n", SDL_VideoDriverName(dummyString, 20));
 
@@ -2480,7 +2465,7 @@
 
 
 //Timer on windows 98 used to be really poor but now it is very accurate
-// We can just used what SDL uses, now need for QueryPerformanceFrequency or QueryPerformanceCounter
+// We can just use what SDL uses, no need for QueryPerformanceFrequency or QueryPerformanceCounter
 // (which I bet SDL is using anyway).
 #if 0//PLATFORM_WIN32 
 int TIMER_GetPlatformTicksInOneSecond(int64_t* t)
--- a/Game/src/sounds.c
+++ b/Game/src/sounds.c
@@ -676,14 +676,14 @@
 {
     int32_t i;
     
-    printf("FCS: Warning, cleaning sound lock in unproper way. THIS MUST BE FIXED ON MACOSX.\n");
+   
 
     for(i=0;i<NUM_SOUNDS;i++)
-     //   if(Sound[i].lock >= 200)
+ 
             Sound[i].lock = 199;
 
     for(i=0;i<11;i++)
-       // if(lumplockbyte[i] >= 200)
+ 
             lumplockbyte[i] = 199;
 }