Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37813686
en ru br
Репозитории ALT
4.0: r0.16.1-alt0.1
3.0: 0.3.0-alt1
www.altlinux.org/Changes

Группа :: Игры/Аркады
Пакет: quake2

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: quake2-r0.16.1-alt-optional-asm.patch
Скачать


diff --git a/quake2/Makefile b/quake2/Makefile
index 40c3019..866941c 100644
--- a/quake2/Makefile
+++ b/quake2/Makefile
@@ -30,6 +30,7 @@ BUILD_AA=NO		# build the ascii soft rend
 BUILD_QMAX=NO		# build the fancier GL graphics
 BUILD_RETEXTURE=NO	# build a version supporting retextured graphics
 BUILD_REDBLUE=NO	# build a red-blue 3d glasses renderer...
+BUILD_ASM=NO		# use ASM
 STATICSDL=NO
 SDLDIR=/usr/local/lib
 
@@ -129,6 +130,10 @@ else
 NET_UDP=net_udp
 endif
 
+ifeq ($(strip $(BUILD_ASM)),YES)
+	BASE_CFLAGS+=-DUSE_ASM
+endif
+
 ifeq ($(strip $(BUILD_QMAX)),YES)
 	BASE_CFLAGS+=-DQMAX
 endif
@@ -1588,6 +1593,7 @@ REF_SOFT_OBJS += $(BUILDDIR)/ref_soft/jo
 endif
 
 ifeq ($(ARCH),i386)
+ifeq ($(strip $(BUILD_ASM)),YES)
 REF_SOFT_OBJS += \
 	$(BUILDDIR)/ref_soft/r_aclipa.o \
 	$(BUILDDIR)/ref_soft/r_draw16.o \
@@ -1601,6 +1607,7 @@ REF_SOFT_OBJS += \
 	$(BUILDDIR)/ref_soft/r_varsa.o \
 	$(BUILDDIR)/ref_soft/sys_dosa.o
 endif
+endif
 
 REF_SOFT_SVGA_OBJS = \
 	$(BUILDDIR)/ref_soft/rw_svgalib.o \
diff --git a/quake2/src/client/snd_mix.c b/quake2/src/client/snd_mix.c
index 803b1c2..019af61 100644
--- a/quake2/src/client/snd_mix.c
+++ b/quake2/src/client/snd_mix.c
@@ -31,7 +31,7 @@ short	*snd_out;
 void S_WriteLinearBlastStereo16 (void);
 
 #if !((defined __linux__ || defined __FreeBSD__) && defined __i386__) || defined C_ONLY
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 void S_WriteLinearBlastStereo16 (void)
 {
@@ -363,7 +363,7 @@ void S_InitScaletable (void)
 
 
 #if !((defined __linux__ || __FreeBSD__) && defined __i386__) || defined C_ONLY
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 void S_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int count, int offset)
 {
diff --git a/quake2/src/client/x86.c b/quake2/src/client/x86.c
index 82cb807..9dd03d8 100644
--- a/quake2/src/client/x86.c
+++ b/quake2/src/client/x86.c
@@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suit
 #include <stdlib.h>
 #include "client.h"
 
-#if id386
+#if id386 && defined USE_ASM
 
 static unsigned long bias;
 static unsigned long *histogram;
diff --git a/quake2/src/ctf/q_shared.c b/quake2/src/ctf/q_shared.c
index a14bbcc..b1959a1 100644
--- a/quake2/src/ctf/q_shared.c
+++ b/quake2/src/ctf/q_shared.c
@@ -345,7 +345,7 @@ BoxOnPlaneSide
 Returns 1, 2, or 1 + 2
 ==================
 */
-#if !id386 || defined __linux__ || defined __FreeBSD__
+#if !id386 || !defined USE_ASM || defined __linux__ || defined __FreeBSD__
 int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p)
 {
 	float	dist1, dist2;
diff --git a/quake2/src/game/q_shared.c b/quake2/src/game/q_shared.c
index 6e5ac79..5829443 100644
--- a/quake2/src/game/q_shared.c
+++ b/quake2/src/game/q_shared.c
@@ -345,7 +345,7 @@ BoxOnPlaneSide
 Returns 1, 2, or 1 + 2
 ==================
 */
-#if !id386 || defined __linux__ || defined __FreeBSD__ || defined __sun__
+#if !id386 || !defined USE_ASM || defined __linux__ || defined __FreeBSD__ || defined __sun__
 int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p)
 {
 	float	dist1, dist2;
diff --git a/quake2/src/irix/sys_irix.c b/quake2/src/irix/sys_irix.c
index 2f2cefc..aefb7bc 100644
--- a/quake2/src/irix/sys_irix.c
+++ b/quake2/src/irix/sys_irix.c
@@ -97,7 +97,7 @@ void Sys_Quit (void)
 
 void Sys_Init(void)
 {
-#if id386
+#if id386 && defined USE_ASM
 //	Sys_SetFPCW();
 #endif
 }
diff --git a/quake2/src/linux/sys_linux.c b/quake2/src/linux/sys_linux.c
index a595bc4..81daf10 100644
--- a/quake2/src/linux/sys_linux.c
+++ b/quake2/src/linux/sys_linux.c
@@ -92,7 +92,7 @@ void Sys_Quit (void)
 
 void Sys_Init(void)
 {
-#if id386
+#if id386 && defined USE_ASM
 //	Sys_SetFPCW();
 #endif
 }
diff --git a/quake2/src/ref_gl/gl_warp.c b/quake2/src/ref_gl/gl_warp.c
index 3a35d77..6005997 100644
--- a/quake2/src/ref_gl/gl_warp.c
+++ b/quake2/src/ref_gl/gl_warp.c
@@ -231,7 +231,7 @@ void EmitWaterPolys (msurface_t *fa)
 			os = v[3];
 			ot = v[4];
 
-#if !id386
+#if !id386 || !defined USE_ASM
 			s = os + r_turbsin[(int)((ot*0.125+r_newrefdef.time) * TURBSCALE) & 255];
 #else
 			s = os + r_turbsin[Q_ftol( ((ot*0.125+rdt) * TURBSCALE) ) & 255];
@@ -239,7 +239,7 @@ #endif
 			s += scroll;
 			s *= (1.0/64);
 
-#if !id386
+#if !id386 || !defined USE_ASM
 			t = ot + r_turbsin[(int)((os*0.125+rdt) * TURBSCALE) & 255];
 #else
 			t = ot + r_turbsin[Q_ftol( ((os*0.125+rdt) * TURBSCALE) ) & 255];
diff --git a/quake2/src/ref_soft/r_aclip.c b/quake2/src/ref_soft/r_aclip.c
index 3d42125..fb21cf5 100644
--- a/quake2/src/ref_soft/r_aclip.c
+++ b/quake2/src/ref_soft/r_aclip.c
@@ -60,7 +60,7 @@ void R_Alias_clip_z (finalvert_t *pfv0, 
 }
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 void R_Alias_clip_left (finalvert_t *pfv0, finalvert_t *pfv1, finalvert_t *out)
 {
diff --git a/quake2/src/ref_soft/r_alias.c b/quake2/src/ref_soft/r_alias.c
index 4002063..1170bee 100644
--- a/quake2/src/ref_soft/r_alias.c
+++ b/quake2/src/ref_soft/r_alias.c
@@ -418,7 +418,7 @@ void R_AliasSetUpTransform (void)
 R_AliasTransformFinalVerts
 ================
 */
-#if id386 && !defined __linux__ && !defined __FreeBSD__
+#if id386 && defined USE_ASM && !defined __linux__ && !defined __FreeBSD__
 void R_AliasTransformFinalVerts( int numpoints, finalvert_t *fv, dtrivertx_t *oldv, dtrivertx_t *newv )
 {
 	float  lightcos;
diff --git a/quake2/src/ref_soft/r_edge.c b/quake2/src/ref_soft/r_edge.c
index 389dc10..6f91921 100644
--- a/quake2/src/ref_soft/r_edge.c
+++ b/quake2/src/ref_soft/r_edge.c
@@ -140,7 +140,7 @@ void R_BeginEdgeFrame (void)
 }
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 ==============
@@ -186,7 +186,7 @@ addedge:
 #endif	// !id386
 	
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 ==============
@@ -206,7 +206,7 @@ void R_RemoveEdges (edge_t *pedge)
 #endif	// !id386
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 ==============
@@ -429,7 +429,7 @@ void R_TrailingEdge (surf_t *surf, edge_
 }
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 ==============
diff --git a/quake2/src/ref_soft/r_main.c b/quake2/src/ref_soft/r_main.c
index 3d90dbc..b0456fd 100644
--- a/quake2/src/ref_soft/r_main.c
+++ b/quake2/src/ref_soft/r_main.c
@@ -143,7 +143,7 @@ cvar_t	*sw_lockpvs;
 #define	STRINGER(x) "x"
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 // r_vars.c
 
@@ -317,7 +317,7 @@ int R_Init( void *hInstance, void *wndPr
 	r_refdef.yOrigin = YCENTERING;
 
 // TODO: collect 386-specific code in one place
-#if	id386
+#if	id386 && defined USE_ASM
 	Sys_MakeCodeWriteable ((long)R_EdgeCodeStart,
 					     (long)R_EdgeCodeEnd - (long)R_EdgeCodeStart);
 	Sys_SetFPCW ();		// get bit masks for FPCW	(FIXME: is this id386?)
diff --git a/quake2/src/ref_soft/r_misc.c b/quake2/src/ref_soft/r_misc.c
index 0ef2fe1..a9b6b0c 100644
--- a/quake2/src/ref_soft/r_misc.c
+++ b/quake2/src/ref_soft/r_misc.c
@@ -49,7 +49,7 @@ D_Patch
 */
 void D_Patch (void)
 {
-#if id386
+#if id386 && defined USE_ASM
 	extern void D_Aff8Patch( void );
 	static qboolean protectset8 = false;
 	extern void D_PolysetAff8Start( void );
@@ -206,7 +206,7 @@ void R_TransformFrustum (void)
 }
 
 
-#if !id386
+#if !id386 || !defined USE_ASM
 /*
 ================
 TransformVector
@@ -514,7 +514,7 @@ void R_SetupFrame (void)
 }
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 ================
diff --git a/quake2/src/ref_soft/r_part.c b/quake2/src/ref_soft/r_part.c
index 4dd1195..ed5bb1e 100644
--- a/quake2/src/ref_soft/r_part.c
+++ b/quake2/src/ref_soft/r_part.c
@@ -34,7 +34,7 @@ typedef struct
 
 static partparms_t partparms;
 
-#if id386 && !defined __linux__ && !defined __FreeBSD__
+#if id386 && defined USE_ASM && !defined __linux__ && !defined __FreeBSD__
 
 static unsigned s_prefetch_address;
 
@@ -598,7 +598,7 @@ void R_DrawParticles (void)
 	particle_t *p;
 	int         i;
 
-#if id386 && !defined __linux__ && !defined __FreeBSD__
+#if id386 && defined USE_ASM && !defined __linux__ && !defined __FreeBSD__
 	extern unsigned long fpu_sp24_cw, fpu_chop_cw;
 #endif
 
@@ -606,7 +606,7 @@ #endif
 	VectorScale( vup, yscaleshrink, r_pup );
 	VectorCopy( vpn, r_ppn );
 
-#if id386 && !defined __linux__ && !defined __FreeBSD__
+#if id386 && defined USE_ASM && !defined __linux__ && !defined __FreeBSD__
 	__asm fldcw word ptr [fpu_sp24_cw]
 #endif
 
@@ -623,7 +623,7 @@ #endif
 		partparms.particle = p;
 		partparms.color    = p->color;
 
-#if id386 && !defined __linux__ && !defined __FreeBSD__
+#if id386 && defined USE_ASM && !defined __linux__ && !defined __FreeBSD__
 		if ( i < r_newrefdef.num_particles-1 )
 			s_prefetch_address = ( unsigned int ) ( p + 1 );
 		else
@@ -633,7 +633,7 @@ #endif
 		R_DrawParticle();
 	}
 
-#if id386 && !defined __linux__ && !defined __FreeBSD__
+#if id386 && defined USE_ASM && !defined __linux__ && !defined __FreeBSD__
 	__asm fldcw word ptr [fpu_chop_cw]
 #endif
 
diff --git a/quake2/src/ref_soft/r_polyse.c b/quake2/src/ref_soft/r_polyse.c
index 713c2f0..ca7bf1d 100644
--- a/quake2/src/ref_soft/r_polyse.c
+++ b/quake2/src/ref_soft/r_polyse.c
@@ -411,7 +411,7 @@ void R_PolysetSetUpForLineScan(fixed8_t 
 R_PolysetCalcGradients
 ================
 */
-#if id386 && !defined __linux__ && !defined __FreeBSD__
+#if id386 && defined USE_ASM && !defined __linux__ && !defined __FreeBSD__
 void R_PolysetCalcGradients( int skinwidth )
 {
 	static float xstepdenominv, ystepdenominv, t0, t1;
@@ -716,7 +716,7 @@ void R_PolysetCalcGradients (int skinwid
 			ystepdenominv);
 
 //#if	id386ALIAS
-#if id386
+#if id386 && defined USE_ASM
 	if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 	{
 		a_sstepxfrac = r_sstepx << 16;
@@ -1034,7 +1034,7 @@ void R_PolysetDrawSpansConstant8_66( spa
 	} while (pspanpackage->count != -999999);
 }
 
-#if !id386
+#if !id386 || !defined USE_ASM
 void R_PolysetDrawSpans8_Opaque (spanpackage_t *pspanpackage)
 {
 	int		lcount;
@@ -1183,7 +1183,7 @@ void R_RasterizeAliasPolySmooth (void)
 	d_ptex = (byte *)r_affinetridesc.pskin + (plefttop[2] >> 16) +
 			(plefttop[3] >> 16) * r_affinetridesc.skinwidth;
 //#if	id386ALIAS
-#if id386
+#if id386 && defined USE_ASM
 	if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 	{
 		d_sfrac = (plefttop[2] & 0xFFFF) << 16;
@@ -1226,7 +1226,7 @@ #endif
 							  pleftbottom[0], pleftbottom[1]);
 
 //#if	id386ALIAS
-#if id386
+#if id386 && defined USE_ASM
 		if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 		{
 			d_pzbasestep = (d_zwidth + ubasestep) << 1;
@@ -1259,7 +1259,7 @@ #endif
 				((r_tstepy + r_tstepx * ubasestep) >> 16) *
 				r_affinetridesc.skinwidth;
 //#if	id386ALIAS
-#if id386
+#if id386 && defined USE_ASM
 		if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 		{
 			d_sfracbasestep = (r_sstepy + r_sstepx * ubasestep) << 16;
@@ -1280,7 +1280,7 @@ #endif
 				((r_tstepy + r_tstepx * d_countextrastep) >> 16) *
 				r_affinetridesc.skinwidth;
 //#if	id386ALIAS
-#if id386
+#if id386 && defined USE_ASM
 		if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 		{
 			d_sfracextrastep = (r_sstepy + r_sstepx*d_countextrastep) << 16;
@@ -1297,7 +1297,7 @@ #endif
 		d_lightextrastep = d_lightbasestep + working_lstepx;
 		d_ziextrastep = d_zibasestep + r_zistepx;
 
-#if id386
+#if id386 && defined USE_ASM
 		if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 		{
 			R_PolysetScanLeftEdge (initialleftheight);
@@ -1360,7 +1360,7 @@ #endif
 			d_pdestextrastep = d_pdestbasestep + 1;
 
 //#if	id386ALIAS
-#if id386
+#if id386 && defined USE_ASM
 			if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 			{
 				d_pzbasestep = (d_zwidth + ubasestep) << 1;
@@ -1385,7 +1385,7 @@ #endif
 					((r_tstepy + r_tstepx * ubasestep) >> 16) *
 					r_affinetridesc.skinwidth;
 //#if	id386ALIAS
-#if id386
+#if id386 && defined USE_ASM
 			if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 			{
 				d_sfracbasestep = (r_sstepy + r_sstepx * ubasestep) << 16;
@@ -1406,7 +1406,7 @@ #endif
 					((r_tstepy + r_tstepx * d_countextrastep) >> 16) *
 					r_affinetridesc.skinwidth;
 //#if	id386ALIAS
-#if id386
+#if id386 && defined USE_ASM
 			if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 			{
 				d_sfracextrastep = ((r_sstepy+r_sstepx*d_countextrastep) & 0xFFFF)<<16;
@@ -1423,7 +1423,7 @@ #endif
 			d_lightextrastep = d_lightbasestep + working_lstepx;
 			d_ziextrastep = d_zibasestep + r_zistepx;
 
-#if id386
+#if id386 && defined USE_ASM
 			if ( d_pdrawspans == R_PolysetDrawSpans8_Opaque )
 			{
 				R_PolysetScanLeftEdge (height);
diff --git a/quake2/src/ref_soft/r_rast.c b/quake2/src/ref_soft/r_rast.c
index ddcb5df..f086201 100644
--- a/quake2/src/ref_soft/r_rast.c
+++ b/quake2/src/ref_soft/r_rast.c
@@ -209,7 +209,7 @@ void R_EmitSkyBox (void)
 }
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 ================
diff --git a/quake2/src/ref_soft/r_scan.c b/quake2/src/ref_soft/r_scan.c
index af95576..6fc7027 100644
--- a/quake2/src/ref_soft/r_scan.c
+++ b/quake2/src/ref_soft/r_scan.c
@@ -92,7 +92,7 @@ void D_WarpScreen (void)
 }
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 =============
@@ -387,7 +387,7 @@ void NonTurbulent8 (espan_t *pspan)
 //====================
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 =============
@@ -527,7 +527,7 @@ void D_DrawSpans16 (espan_t *pspan)
 #endif
 
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 =============
diff --git a/quake2/src/ref_soft/r_surf.c b/quake2/src/ref_soft/r_surf.c
index 0f309d8..13958a5 100644
--- a/quake2/src/ref_soft/r_surf.c
+++ b/quake2/src/ref_soft/r_surf.c
@@ -163,7 +163,7 @@ void R_DrawSurface (void)
 
 //=============================================================================
 
-#if	!id386
+#if	!id386 || !defined USE_ASM
 
 /*
 ================
diff --git a/quake2/src/solaris/sys_solaris.c b/quake2/src/solaris/sys_solaris.c
index 053578d..801d617 100644
--- a/quake2/src/solaris/sys_solaris.c
+++ b/quake2/src/solaris/sys_solaris.c
@@ -122,7 +122,7 @@ void Sys_Quit (void)
 
 void Sys_Init(void)
 {
-#if id386
+#if id386 && defined USE_ASM
 //	Sys_SetFPCW();
 #endif
 }
diff --git a/quake2/src/win32/rw_imp.c b/quake2/src/win32/rw_imp.c
index fa2d8e7..900db76 100644
--- a/quake2/src/win32/rw_imp.c
+++ b/quake2/src/win32/rw_imp.c
@@ -433,7 +433,7 @@ void Sys_MakeCodeWriteable (unsigned lon
 ** RR = 11 = round to zero (truncate/towards 0)
 **
 */
-#if !id386
+#if !id386 || !defined USE_ASM
 void Sys_SetFPCW (void)
 {
 }
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin