shithub: duke3d

Download patch

ref: 4c510b80e7330e4cb77b1b564483f1b5c3a2dd0f
parent: 61d6c987e9f4c792d403175f955a6878f772b1c8
author: unknown <fabien@fabien-PC.(none)>
date: Sat Dec 15 15:05:04 EST 2012

Added engine SlowDown tool

--- a/Engine/src/a.c
+++ b/Engine/src/a.c
@@ -7,7 +7,9 @@
 
 #include "platform.h"
 #include "build.h"
+#include "a.h"
 
+int pixelsAllowed;
 
 #define shrd(a,b,c) (((b)<<(32-(c))) | ((a)>>(c)))
 #define shld(a,b,c) (((b)>>(32-(c))) | ((a)<<(c)))
@@ -28,7 +30,7 @@
 } 
 
 static uint8_t* pal_eax;
-void setuphlineasm4(int32_t i1, int32_t i2) { }
+
 void setpalookupaddress(uint8_t *i1) { pal_eax = i1; }
 
 //FCS:   Draw ceiling/floors
@@ -52,6 +54,12 @@
 		return;
 
     while (count) {
+
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
+
 	    source = i5 >> shifter;
 	    source = shld(source,i4,bits);
 	    source = lookup[source];
@@ -60,6 +68,7 @@
 	    i5 -= _asm1;
 	    i4 -= _asm2;
 	    count--;
+		
     }
 }
 
@@ -87,6 +96,12 @@
 
     numPixels = i1;
     do {
+		
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
+
 	    i3 = ((i3&0xffffff00)|(*((uint8_t *)i2)));
 	    i4 -= rmach_eax;
 	    ebp = (((i4+rmach_eax) < i4) ? -1 : 0);
@@ -126,6 +141,12 @@
 
     numPixels = i1;
     do {
+
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
+
 	    i3 = ((i3&0xffffff00)|(*((uint8_t *)i2)));
 	    i4 -= rmmach_eax;
 	    ebp = (((i4+rmmach_eax) < i4) ? -1 : 0);
@@ -157,9 +178,6 @@
     tmach = i1;
 } 
 
-int32_t vlineasm1(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6);
-
-
 static uint8_t  mach3_al;
 
 //FCS:  RENDER TOP AND BOTTOM COLUMN
@@ -175,6 +193,11 @@
 		if (!RENDER_DRAW_TOP_AND_BOTTOM_COLUMN)
 		return 0;
 
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
+
 	    i1 += i4;
         //FCS
         //((uint32_t)i4) >>= mach3_al;
@@ -200,6 +223,12 @@
     numPixels++;
     while (numPixels)
     {
+		if (pixelsAllowed <= 0)
+			return vplce;
+
+		pixelsAllowed--;
+
+
 	    temp = ((unsigned)vplce) >> mach3_al;
         
 	    temp = ((uint8_t  *)bufplce)[temp];
@@ -232,6 +261,15 @@
 		uint32_t temp = i4;
 		temp >>= transmach3_al;
 		temp = source[temp];
+
+		
+		if (pixelsAllowed <= 0)
+			return i4;
+
+		pixelsAllowed--;
+
+		
+
 		if (temp != 255)
 		{
 			unsigned short val;
@@ -272,6 +310,11 @@
 	i6 -= asm2;
 
 	do {
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
+
 		i1 = i5 >> tran2shr;
 		i2 = ebp >> tran2shr;
 		i5 += tran2inca;
@@ -325,9 +368,19 @@
 	// FIX_00087: 1024x768 mode being slow. Undone FIX_00070 and fixed font issue again
     for(;i3>=0;i3--)
     {
+		if (pixelsAllowed <= 0)
+			return vplce;
+
+		pixelsAllowed--;
+
 	    temp = ((unsigned)vplce) >> machmv;
 	    temp = ((uint8_t  *)bufplce)[temp];
-	    if (temp != 255) *dest = ((uint8_t *)palookupoffse)[temp];
+
+	    if (temp != 255) 
+		{
+			*dest = ((uint8_t *)palookupoffse)[temp];
+			pixelsAllowed--;
+		}
 	    vplce += vince;
 	    dest += fixchain;
     }
@@ -342,52 +395,8 @@
 
 extern int32_t vplce[4], vince[4], palookupoffse[4], bufplce[4];
 
-#if HAVE_POWERPC
-/* About 25% faster than the scalar version on my 12" Powerbook. --ryan. */
-static void vlineasm4_altivec(int32_t i1, int32_t i2)
-{
-    uint32_t mach_array[4] = { (uint32_t) mach3_al,
-                                   (uint32_t) mach3_al,
-                                   (uint32_t) mach3_al,
-                                   (uint32_t) mach3_al };
 
-    uint32_t temp[4];
-    uint32_t index = (i2 + ylookup[i1]);
-    uint8_t  *dest = (uint8_t *)(-ylookup[i1]);
 
-    uint32_t vec_temp;
-    int32_t vec_vplce;
-    int32_t vec_vince;
-    int32_t vec_bufplce;
-    uint32_t vec_shifter;
-
-    uint8_t  *pal0 = (uint8_t  *) palookupoffse[0];
-    uint8_t  *pal1 = (uint8_t  *) palookupoffse[1];
-    uint8_t  *pal2 = (uint8_t  *) palookupoffse[2];
-    uint8_t  *pal3 = (uint8_t  *) palookupoffse[3];
-
-    vec_shifter = vec_ld(0, mach_array);
-    vec_vplce = vec_ld(0, vplce);
-    vec_vince = vec_ld(0, vince);
-    vec_bufplce = vec_ld(0, bufplce);
-
-    do {
-        vec_temp = ( uint32_t) vec_sr(vec_vplce, vec_shifter);
-        vec_temp = ( uint32_t) vec_add(vec_bufplce, (vector signed int) vec_temp);
-        vec_st(vec_temp, 0x00, temp);
-        vec_vplce = vec_add(vec_vplce, vec_vince);
-	    dest[index] = pal0[*((uint8_t  *) temp[0])];
-	    dest[index+1] = pal1[*((uint8_t  *) temp[1])];
-	    dest[index+2] = pal2[*((uint8_t  *) temp[2])];
-	    dest[index+3] = pal3[*((uint8_t  *) temp[3])];
-        dest += fixchain;
-    } while (((unsigned)dest - fixchain) < ((unsigned)dest));
-
-    vec_st(vec_vplce, 0, vplce);
-}
-#endif
-
-
 //FCS This is used to fill the inside of a wall
 void vlineasm4(int32_t i1, int32_t i2)
 {
@@ -395,11 +404,6 @@
 	if (!RENDER_DRAW_WALL_INSIDE)
 		return ;
 
-#if HAVE_POWERPC
-    if (has_altivec)
-        vlineasm4_altivec(i1, i2);
-    else
-#endif
     {
         int i;
         uint32_t temp;
@@ -408,6 +412,11 @@
         do {
             for (i = 0; i < 4; i++)
             {
+				if (pixelsAllowed <= 0)
+			        return;
+
+		        pixelsAllowed--;
+
         	    temp = ((unsigned)vplce[i]) >> mach3_al;
         	    temp = (((uint8_t *)(bufplce[i]))[temp]);
         	    dest[index+i] = ((uint8_t *)(palookupoffse[i]))[temp];
@@ -416,13 +425,13 @@
             dest += fixchain;
         } while (((unsigned)dest - fixchain) < ((unsigned)dest));
     }
-} /* vlineasm4 */
+} 
 
 
 void setupmvlineasm(int32_t i1)
 {
     machmv = (i1&0x1f);
-} /* setupmvlineasm */
+} 
 
 
 void mvlineasm4(int32_t i1, int32_t i2)
@@ -433,15 +442,25 @@
     uint8_t  *dest = (uint8_t *)(-ylookup[i1]);
 
     do {
+
+		if (pixelsAllowed <= 0)
+			return;
+
         for (i = 0; i < 4; i++)
         {
-	    temp = ((unsigned)vplce[i]) >> machmv;
-	    temp = (((uint8_t *)(bufplce[i]))[temp]);
-	    if (temp != 255)
-		    dest[index+i] = ((uint8_t *)(palookupoffse[i]))[temp];
-	    vplce[i] += vince[i];
+			if (pixelsAllowed == 0)
+			   continue;
+
+		    pixelsAllowed--;
+
+	      temp = ((unsigned)vplce[i]) >> machmv;
+	      temp = (((uint8_t *)(bufplce[i]))[temp]);
+	      if (temp != 255)
+		      dest[index+i] = ((uint8_t *)(palookupoffse[i]))[temp];
+	      vplce[i] += vince[i];
         }
         dest += fixchain;
+
     } while (((unsigned)dest - fixchain) < ((unsigned)dest));
 } /* mvlineasm4 */
 
@@ -470,23 +489,35 @@
 
     i2 += smach_eax;
     i1 = (i1&0xffffff00) | (*source&0xff);
-    if ((i2 - smach_eax) > i2) source += smach2_eax + 1;
-    else source += smach2_eax;
+    if ((i2 - smach_eax) > i2) 
+		source += smach2_eax + 1;
+    else 
+		source += smach2_eax;
 
 draw:
     i1 = (i1&0xffffff00) | (((uint8_t  *)spal_eax)[i1]&0xff);
     *dest = i1;
+
+	if (pixelsAllowed <= 0) return;
+	pixelsAllowed--;
+
     dest += fixchain;
 
     i4 += smach_ecx;
     i4--;
+
     if (!((i4 - smach_ecx) > i4) && i4 != 0)
 	    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;
+
+    if ((i2 - smach_eax) > i2) 
+		source += smach5_eax + 1;
+    else 
+		source += smach5_eax;
+
     goto draw;
 } /* spritevline */
 
@@ -522,6 +553,11 @@
     {
 	    i1 = (i1&0xffffff00) | (((uint8_t  *)spal_eax)[i1]&0xff);
 	    *dest = i1;
+
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
     }
     dest += fixchain;
 
@@ -573,12 +609,20 @@
 				unsigned short val;
 				val = ((uint8_t *)tspal)[i1];
 				val |= ((*((uint8_t  *)i6))<<8);
-				if (transrev) val = ((val>>8)|(val<<8));
+
+				if (transrev) 
+					val = ((val>>8)|(val<<8));
+
 				i1 = ((uint8_t  *)tmach)[val];
 				*((uint8_t  *)i6) = (i1&0xff);
 			}
 			i6 += fixchain;
 		}
+
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
 	}
 } 
 
@@ -587,7 +631,7 @@
 static int32_t mmach_asm3;
 static int32_t mmach_asm1;
 static int32_t mmach_asm2;
-void mhlineskipmodify(int32_t i1, uint32_t i2, uint32_t i3, int32_t i4, int32_t i5, int32_t i6);
+
 void mhline(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
 {
     mmach_eax = i1;
@@ -616,6 +660,11 @@
 	    i5 += mmach_asm2;
 	    i6++;
 	    counter--;
+
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
     }
 }
 
@@ -632,7 +681,7 @@
 static int32_t tmach_asm3;
 static int32_t tmach_asm1;
 static int32_t tmach_asm2;
-void thlineskipmodify(int32_t i1, uint32_t i2, uint32_t i3, int32_t i4, int32_t i5, int32_t i6);
+
 void thline(int32_t i1, int32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
 {
     tmach_eax = i1;
@@ -665,6 +714,11 @@
 	    i5 += tmach_asm2;
 	    i6++;
 	    counter--;
+
+		if (pixelsAllowed <= 0)
+			return;
+
+		pixelsAllowed--;
     }
 } 
 
@@ -705,9 +759,6 @@
 #define low32(a) ((a&0xffffffff))
 #define high32(a) ((int)(((__int64)a&(__int64)0xffffffff00000000)>>32))
 
-
-
-/* #pragma aux slopevlin parm [eax][ebx][ecx][edx][esi][edi] */
 //FCS: Render RENDER_SLOPPED_CEILING_AND_FLOOR
 void slopevlin(int32_t i1, uint32_t i2, int32_t i3, int32_t i4, int32_t i5, int32_t i6)
 {
@@ -765,9 +816,17 @@
 		    *((uint8_t  *)i1) = (eax&0xff);
 		    edx = edi;
 		    ecx = ((ecx&0xffffff00)|((ecx-1)&0xff));
+
+			if (pixelsAllowed <= 0)
+			return;
+
+			pixelsAllowed--;
 	    }
 	    ebx = asm4;
 	    ebx -= 8;	// BITSOFPRECISIONPOW
+
+		
+
     } while ((int32_t)ebx > 0);
 }
 
--- a/Engine/src/a.h
+++ b/Engine/src/a.h
@@ -19,29 +19,29 @@
 #endif
 
 
-int32_t sethlinesizes(int32_t,int32_t,int32_t);
-int32_t setpalookupaddress(uint8_t  *);
-int32_t setuphlineasm4(int32_t,int32_t);
-int32_t hlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t setuprhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-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);
+void sethlinesizes(int32_t,int32_t,int32_t);
+void setpalookupaddress(uint8_t  *);
 
+void hlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void setuprhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void rhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void setuprmhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void rmhlineasm4(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 
-int32_t setvlinebpl(int32_t);
-int32_t fixtransluscence(int32_t);
+
+void setvlinebpl(int32_t);
+void fixtransluscence(int32_t);
 int32_t prevlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 int32_t vlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t setuptvlineasm(int32_t);
+void setuptvlineasm(int32_t);
 int32_t tvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t setuptvlineasm2(int32_t,int32_t,int32_t);
-int32_t tvlineasm2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void setuptvlineasm2(int32_t,int32_t,int32_t);
+void tvlineasm2(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 int32_t mvlineasm1(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t setupvlineasm(int32_t);
-int32_t vlineasm4(int32_t,int32_t);
-int32_t setupmvlineasm(int32_t);
-int32_t mvlineasm4(int32_t,int32_t);
+void setupvlineasm(int32_t);
+void vlineasm4(int32_t,int32_t);
+void setupmvlineasm(int32_t);
+void mvlineasm4(int32_t,int32_t);
 void setupspritevline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 void spritevline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 void msetupspritevline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
@@ -48,17 +48,17 @@
 void mspritevline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 void tsetupspritevline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 void tspritevline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t mhline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t mhlineskipmodify(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t msethlineshift(int32_t,int32_t);
-int32_t thline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t thlineskipmodify(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
-int32_t tsethlineshift(int32_t,int32_t);
-int32_t setupslopevlin(int32_t,int32_t,int32_t);
-int32_t slopevlin(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void mhline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void mhlineskipmodify(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void msethlineshift(int32_t,int32_t);
+void thline(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void thlineskipmodify(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
+void tsethlineshift(int32_t,int32_t);
+void setupslopevlin(int32_t,int32_t,int32_t);
+void slopevlin(int32_t,int32_t,int32_t,int32_t,int32_t,int32_t);
 #define TRANS_NORMAL  0
 #define TRANS_REVERSE 1
-int32_t settrans(int32_t type);
+void settrans(int32_t type);
 
 
 
@@ -68,6 +68,25 @@
 #ifdef __cplusplus
 }
 #endif
+
+//FCS: In order to see how the engine renders different part of the screen you can set the following macros
+//VISUALIZE RENDERER
+
+#define MAX_PIXEL_RENDERERED (800*600)
+extern int pixelsAllowed;
+
+#define RENDER_DRAW_WALL_BORDERS 1
+#define RENDER_DRAW_WALL_INSIDE 1
+#define RENDER_DRAW_CEILING_AND_FLOOR 1
+#define RENDER_DRAW_TOP_AND_BOTTOM_COLUMN 1
+#define RENDER_SLOPPED_CEILING_AND_FLOOR 1
+
+#if RENDER_DRAW_WALL_BORDERS && RENDER_DRAW_WALL_INSIDE && RENDER_DRAW_CEILING_AND_FLOOR  && RENDER_DRAW_TOP_AND_BOTTOM_COLUMN && RENDER_SLOPPED_CEILING_AND_FLOOR && MAX_PIXEL_RENDERERED!=0
+   #define CLEAR_FRAMEBUFFER 1
+#else
+   #define CLEAR_FRAMEBUFFER 1
+#endif
+//END VISUALIZE RENDERER
 
 #endif /* include-once-blocker. */
 
--- a/Engine/src/build.h
+++ b/Engine/src/build.h
@@ -313,22 +313,6 @@
 
 #define PORTSIG  "Port by Ryan C. Gordon, Andrew Henderson, Dan Olson, Fabien Sanglard and a cast of thousands."
 
-
-//FCS: In order to see how the engine renders different part of the screen you can set the following macros
-//VISUALIZE RENDERER
-#define RENDER_DRAW_WALL_BORDERS 1
-#define RENDER_DRAW_WALL_INSIDE 1
-#define RENDER_DRAW_CEILING_AND_FLOOR 1
-#define RENDER_DRAW_TOP_AND_BOTTOM_COLUMN 1
-#define RENDER_SLOPPED_CEILING_AND_FLOOR 1
-
-#if RENDER_DRAW_WALL_BORDERS && RENDER_DRAW_WALL_INSIDE && RENDER_DRAW_CEILING_AND_FLOOR  && RENDER_DRAW_TOP_AND_BOTTOM_COLUMN && RENDER_SLOPPED_CEILING_AND_FLOOR
-   #define CLEAR_FRAMEBUFFER 0
-#else
-   #define CLEAR_FRAMEBUFFER 1
-#endif
-//END VISUALIZE RENDERER
-
 //Global.c
 void Error (int errorType, char  *error, ...);
 int FindDistance2D(int ix, int iy);
--- a/Engine/src/engine.c
+++ b/Engine/src/engine.c
@@ -150,7 +150,12 @@
 static int32_t spritesz[MAXSPRITESONSCREEN];
 static spritetype *tspriteptr[MAXSPRITESONSCREEN];
 
-short umost[MAXXDIM+1], dmost[MAXXDIM+1];
+//FCS: (up-most pixel on column x that can still be drawn to)
+short umost[MAXXDIM+1];
+
+//FCS: (down-most pixel +1 on column x that can still be drawn to)
+short dmost[MAXXDIM+1];
+
 static short bakumost[MAXXDIM+1], bakdmost[MAXXDIM+1];
 short uplc[MAXXDIM+1], dplc[MAXXDIM+1];
 static short uwall[MAXXDIM+1], dwall[MAXXDIM+1];
@@ -2029,7 +2034,8 @@
         andwstat2 &= wallmost(dplc,z,sectnum,(uint8_t )1);
     }
 
-    if ((andwstat1&3) != 3)     /* draw ceilings */
+	/* draw ceilings */
+    if ((andwstat1&3) != 3)     
     {
         if ((sec->ceilingstat&3) == 2)
             grouscan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum,0);
@@ -2038,7 +2044,9 @@
         else
             parascan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum,0,bunch);
     }
-    if ((andwstat2&12) != 12)   /* draw floors */
+
+	/* draw floors */
+    if ((andwstat2&12) != 12)   
     {
         if ((sec->floorstat&3) == 2)
             grouscan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum,1);
@@ -2048,6 +2056,8 @@
             parascan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum,1,bunch);
     }
 
+	//return;
+
     /* DRAW WALLS SECTION! */
     for(z=bunchfirst[bunch]; z>=0; z=p2[z])
     {
@@ -2055,8 +2065,11 @@
         x2 = xb2[z];
         if (umost[x2] >= dmost[x2])
         {
+
             for(x=x1; x<x2; x++)
-                if (umost[x] < dmost[x]) break;
+                if (umost[x] < dmost[x]) 
+					break;
+
             if (x >= x2)
             {
                 smostwall[smostwallcnt] = z;
@@ -2436,7 +2449,7 @@
     }
 }
 
-//FCS: Geez one more horrible algorithm to decipher :/ :( cry smiley.....
+//FCS: Geez one more horrible algorithm to decipher :| :/ :( cry smiley.....
 int wallfront(int32_t l1, int32_t l2)
 {
     walltype *wal;
@@ -2459,10 +2472,13 @@
     dy = y21-y11;
     t1 = dmulscale2(x12-x11,dy,-dx,y12-y11); /* p1(l2) vs. l1 */
     t2 = dmulscale2(x22-x11,dy,-dx,y22-y11); /* p2(l2) vs. l1 */
+
     if (t1 == 0) {
         t1 = t2;
-        if (t1 == 0) return(-1);
+        if (t1 == 0) 
+			return(-1);
     }
+
     if (t2 == 0) t2 = t1;
     if ((t1^t2) >= 0)
     {
@@ -2515,7 +2531,7 @@
     return(wallfront(i,b2f));
 }
 
-
+int pixelRenderable = 100000000;
 void drawrooms(int32_t daposx, int32_t daposy, int32_t daposz,
                short daang, int32_t dahoriz, short dacursectnum)
 {
@@ -2522,6 +2538,14 @@
     int32_t i, j, z, cz, fz, closest;
     short *shortptr1, *shortptr2;
 
+	pixelRenderable+=10;
+	if (pixelRenderable >= MAX_PIXEL_RENDERERED)
+		pixelRenderable =  0 ;
+
+	//pixelsAllowed = pixelRenderable;
+	pixelsAllowed = 100000000;
+	printf("%d\n",pixelsAllowed);
+
     beforedrawrooms = 0;
     totalarea += (windowx2+1-windowx1)*(windowy2+1-windowy1);
 
@@ -8096,7 +8120,7 @@
     globalposx += oy*globalx1;
     globalposy += oy*globaly2;
 
-    setuphlineasm4(asm1,asm2);
+    
 
     ptr = smost;
     for(y=miny; y<=maxy; y++)
--- a/Game/src/gamedefs.h
+++ b/Game/src/gamedefs.h
@@ -124,61 +124,6 @@
 
 #define BASECONTROLSCALEVALUE (1<<16)
 
-enum
-   {
-   gametype_network=3,
-   gametype_serial=1,
-   gametype_modem=2
-   };
-
-enum
-   {
-   connecttype_dialing=0,
-   connecttype_answer=1,
-   connecttype_alreadyconnected=2
-   };
-
-enum
-   {
-   screenbuffer_320x200,
-   screenbuffer_640x400,
-   screenbuffer_640x480,
-   screenbuffer_800x600,
-   screenbuffer_1024x768,
-   screenbuffer_1280x1024,
-   screenbuffer_1600x1200
-   };
-
-enum
-   {
-   vesa_320x200,
-   vesa_360x200,
-   vesa_320x240,
-   vesa_360x240,
-   vesa_320x400,
-   vesa_360x400,
-   vesa_640x350,
-   vesa_640x400,
-   vesa_640x480,
-   vesa_800x600,
-   vesa_1024x768,
-   vesa_1280x1024,
-   vesa_1600x1200
-   };
-
-enum
-   {
-   screenmode_chained,
-   screenmode_vesa,
-   screenmode_buffered,
-   screenmode_tseng,
-   screenmode_paradise,
-   screenmode_s3,
-   screenmode_crystal,
-   screenmode_redblue,
-   };
-
-
 #ifdef __cplusplus
 };
 #endif