diff --git a/Makefile.wfx b/Makefile.wfx
new file mode 100644
index 0000000..14ab00c
--- /dev/null
+++ b/Makefile.wfx
@@ -0,0 +1,87 @@
+# Mesa 3-D graphics library
+# Version:  5.1
+#
+# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# Win32/FX makefile for Mesa
+#
+#  Copyright (c) 2003 - Hiroshi Morii
+#  Email : koolsmoky@users.sourceforge.net
+#  URL   : http://www.3dfxzone.it/koolsmoky
+
+# Debug build                : nmake -f Makefile.wfx debug
+# Optimized build            : nmake -f Makefile.wfx
+# Remove objects             : nmake -f Makefile.wfx clean
+# Remove files in bin, lib   : nmake -f Makefile.wfx clobber
+# Remove all generated files : nmake -f Makefile.wfx realclean
+
+# Build the libs
+SUBDIRS	  = src\mesa.dir
+DBGBUILD  = $(SUBDIRS:.dir=.debug)
+CLEAN	  = $(SUBDIRS:.dir=.clean)
+CLOBBER	  = $(SUBDIRS:.dir=.clobber)
+REALCLEAN = $(SUBDIRS:.dir=.realclean)
+LIBDIR    = lib
+
+# default rule
+default	  : $(LIBDIR) $(SUBDIRS)
+
+# debug build rules
+debug     : $(LIBDIR) $(DBGBUILD)
+
+# cleanup rules
+clean	  : $(CLEAN)
+clobber	  : $(CLOBBER)
+realclean : $(REALCLEAN)
+
+# inference rules
+$(LIBDIR):
+	@echo.
+	@mkdir $(LIBDIR)
+
+$(SUBDIRS):
+	@echo.
+	@cd $*
+	@nmake -f Makefile.wfx
+	@cd ..
+
+$(DBGBUILD):
+	@echo.
+	@cd $*
+	@nmake -f Makefile.wfx DEBUG=1
+	@cd ..
+
+$(CLEAN):
+	@echo.
+	@cd $*
+	@nmake -f Makefile.wfx clean
+	@cd ..
+
+$(CLOBBER):
+	@echo.
+	@cd $*
+	@nmake -f Makefile.wfx clobber
+	@cd ..
+
+$(REALCLEAN):
+	@echo.
+	@cd $*
+	@nmake -f Makefile.wfx realclean
+	@cd ..
diff --git a/docs/README.3DFX b/docs/README.3DFX
index 1ccb766..2b6b2e9 100644
--- a/docs/README.3DFX
+++ b/docs/README.3DFX
@@ -9,18 +9,59 @@
 1) Glide2 support has been ceased; in order to keep Voodoo Graphics, Voodoo2
    and Voodoo Rush compatibility, please visit the Glide SourceForge and help
    us to fix Glide3 for those cards.
-2) The non-DRI Linux build is currently broken. Any help will be appreciated.
+2) The current release is a WIP; among other things, the Linux build works
+   only to some extent. Any help will be appreciated.
 3) Glide3 can be found at http://sourceforge.net/projects/glide/
 
-Known supported HW: Voodoo Banshee, Voodoo3, Voodoo4, Voodoo5 5500
-Known supported OS: DOS (DJGPP), Windows9x/2k (MinGW/MSVC), Linux+DRI
 
-Comments, notes, flames:
+
+Known supported HW/OS:
+----------------------
+
+Voodoo Banshee, Voodoo3, Voodoo4, Voodoo5 5500
+DOS (DJGPP), Windows9x/2k (MinGW/MSVC), Linux
+
+
+
+How to compile:
+---------------
+
+DJGPP/MinGW/MSVC:
+   Place the Glide3 SDK in the top Mesa directory:
+	$(MESA)/glide3/include/*.h
+	$(MESA)/glide3/lib/
+   Required headers:
+	3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h
+   Required libraries:
+	OS specific
+   Type:
+	make -f Makefile.DJ HAVE_MMX=1 HAVE_3DNOW=1 FX=1
+	or
+	make -f Makefile.mgw HAVE_MMX=1 HAVE_3DNOW=1 FX=1
+	or
+	nmake -f Makefile.wfx
+   Look into the corresponding makefiles for further information.
+
+Linux:
+   Place the Glide3 SDK in /usr/local/glide
+   Type:
+	make linux-glide
+
+
+
+Contact:
+--------
+
 Daniel Borca <dborca@users.sourceforge.net>
 Hiroshi Morii <koolsmoky@users.sourceforge.net>
 
 
 
+The info below this line is outdated. You have been warned...
+*************************************************************
+
+
+
 Info for Mesa 4.1
 -----------------
 
diff --git a/include/GL/fxmesa.h b/include/GL/fxmesa.h
index 24c3827..fd3dbae 100644
--- a/include/GL/fxmesa.h
+++ b/include/GL/fxmesa.h
@@ -22,7 +22,7 @@
 /*
  * FXMesa - 3Dfx Glide driver for Mesa.  Contributed by David Bucciarelli
  *
- * NOTE: This version requires Glide 2.3 or later.
+ * NOTE: This version requires Glide3 (http://sourceforge.net/projects/glide)
  */
 
 
diff --git a/src/mesa/Makefile.wfx b/src/mesa/Makefile.wfx
new file mode 100644
index 0000000..afc17de
--- /dev/null
+++ b/src/mesa/Makefile.wfx
@@ -0,0 +1,433 @@
+# Mesa 3-D graphics library
+# Version:  5.1
+#
+# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+# Win32/FX core makefile for Mesa
+#
+#  Copyright (c) 2003 - Hiroshi Morii
+#  Email : koolsmoky@users.sourceforge.net
+#  URL   : http://www.3dfxzone.it/koolsmoky
+
+# Debug build                : nmake -f Makefile.fx.win32 DEBUG=1
+# Optimized build            : nmake -f Makefile.fx.win32
+# Remove objects             : nmake -f Makefile.fx.win32 clean
+# Remove files in bin, lib   : nmake -f Makefile.fx.win32 clobber
+# Remove all generated files : nmake -f Makefile.fx.win32 realclean
+
+.SUFFIXES: .S
+##################################
+# general
+##################################
+BUILDROOT = ..\..
+
+!if "$(GLIDE3SDK)"==""
+GLIDE3SDK = $(BUILDROOT)\glide3
+!endif
+
+!if "$(GLIDE3SDK)"==""
+!error GLIDE3SDK undefined! Need to specify Glide3x SDK path!
+!endif
+
+GLIDE3LIB = $(GLIDE3SDK)\lib\glide3x.lib
+TEXUS2LIB = #$(GLIDE3SDK)\lib\texus2.lib
+LIBDIR    = $(BUILDROOT)\lib
+GL_DLL    = Mesa.dll
+
+HAVE_X86   = 1
+HAVE_MMX   = 1
+HAVE_SSE   =
+HAVE_3DNOW = 1
+
+##################################
+# build flags
+##################################
+FLAGS = -DH3 -DFX_GLIDE_NAPALM=1 -DH4=1 -DFX_GLIDE_H5_CSIM=1 -DGLIDE3=1 -DGLIDE3_ALPHA=1 -DBUILD_GL32 -DFX #-DGLX_DIRECT_RENDERING
+
+!if "$(USE_IEEE)"=="1"
+FLAGS = $(FLAGS) -D__i386__
+!endif
+
+!if "$(HAVE_MMX)"=="1"
+FLAGS = $(FLAGS) -DUSE_MMX_ASM
+!endif
+!if "$(HAVE_SSE)"=="1"
+FLAGS = $(FLAGS) -DUSE_SSE_ASM
+!endif
+!if "$(HAVE_3DNOW)"=="1"
+FLAGS = $(FLAGS) -DUSE_3DNOW_ASM
+!endif
+!if "$(HAVE_X86)"=="1"
+FLAGS = $(FLAGS) -DUSE_X86_ASM
+!endif
+
+!if "$(DEBUG)" == "1"
+FLAGS = $(FLAGS) -DMESA_DEBUG -DFX_DEBUG
+!endif
+
+##################################
+# compiler setup
+##################################
+CC   = cl
+LINK = link
+AR   = lib
+AS   = nasm
+
+CFLAGS  = -G6 -c -D__MSC__ -D_MSC_VER=1200 -D_WIN32 -DWIN32 -DSTRICT -W3 #-WX -D__WIN32__
+LFLAGS  = -nologo /DLL /OPT:WIN98 /MACHINE:IX86 /NODEFAULTLIB #/SUBSYSTEM:WINDOWS,4.00
+ARFLAGS = -nologo
+ASFLAGS = -O2 -fwin32
+
+!if "$(DEBUG)"== "1"
+CFLAGS  = $(CFLAGS) -Od -MDd -DDEBUG=1 -D_DEBUG -D_MT -Zi #-D_DLL conflicts with BUILD_GL32
+LFLAGS  = $(LFLAGS) -debugtype:both /DEBUG
+ARFLAGS = $(ARFLAGS) -debugtype:both
+ASFLAGS = $(ASFLAGS) -g -DDEBUG=1
+!else
+CFLAGS  = $(CFLAGS) -Ox -MD -D_MT
+!endif
+
+#################################
+# OS commands
+#################################
+RM = @del
+MV = mv
+
+#################################
+# sources
+#################################
+MAIN_SOURCES = \
+	main\api_arrayelt.c \
+	main\api_loopback.c \
+	main\api_noop.c \
+	main\api_validate.c \
+	main\accum.c \
+	main\arbprogram.c \
+	main\arbfragparse.c \
+	main\arbvertparse.c \
+	main\attrib.c \
+	main\blend.c \
+	main\bufferobj.c \
+	main\buffers.c \
+	main\clip.c \
+	main\colortab.c \
+	main\context.c \
+	main\convolve.c \
+	main\debug.c \
+	main\depth.c \
+	main\dispatch.c \
+	main\dlist.c \
+	main\drawpix.c \
+	main\enable.c \
+	main\enums.c \
+	main\eval.c \
+	main\extensions.c \
+	main\feedback.c \
+	main\fog.c \
+	main\get.c \
+	main\hash.c \
+	main\hint.c \
+	main\histogram.c \
+	main\image.c \
+	main\imports.c \
+	main\light.c \
+	main\lines.c \
+	main\matrix.c \
+	main\nvprogram.c \
+	main\nvfragparse.c \
+	main\nvvertexec.c \
+	main\nvvertparse.c \
+	main\occlude.c \
+	main\pixel.c \
+	main\points.c \
+	main\polygon.c \
+	main\program.c \
+	main\rastpos.c \
+	main\state.c \
+	main\stencil.c \
+	main\texcompress.c \
+	main\texformat.c \
+	main\teximage.c \
+	main\texobj.c \
+	main\texstate.c \
+	main\texstore.c \
+	main\texutil.c \
+	main\varray.c \
+	main\vtxfmt.c
+
+GLAPI_SOURCES = \
+	glapi\glapi.c \
+	glapi\glthread.c
+
+MATH_SOURCES = \
+	math\m_debug_clip.c \
+	math\m_debug_norm.c \
+	math\m_debug_xform.c \
+	math\m_eval.c \
+	math\m_matrix.c \
+	math\m_translate.c \
+	math\m_vector.c \
+	math\m_xform.c
+
+ARRAY_CACHE_SOURCES = \
+	array_cache\ac_context.c \
+	array_cache\ac_import.c
+
+SWRAST_SOURCES = \
+	swrast\s_aaline.c \
+	swrast\s_aatriangle.c \
+	swrast\s_accum.c \
+	swrast\s_alpha.c \
+	swrast\s_alphabuf.c \
+	swrast\s_bitmap.c \
+	swrast\s_blend.c \
+	swrast\s_buffers.c \
+	swrast\s_copypix.c \
+	swrast\s_context.c \
+	swrast\s_depth.c \
+	swrast\s_drawpix.c \
+	swrast\s_feedback.c \
+	swrast\s_fog.c \
+	swrast\s_imaging.c \
+	swrast\s_lines.c \
+	swrast\s_logic.c \
+	swrast\s_masking.c \
+	swrast\s_nvfragprog.c \
+	swrast\s_pixeltex.c \
+	swrast\s_points.c \
+	swrast\s_readpix.c \
+	swrast\s_span.c \
+	swrast\s_stencil.c \
+	swrast\s_texture.c \
+	swrast\s_texstore.c \
+	swrast\s_triangle.c \
+	swrast\s_zoom.c
+
+SWRAST_SETUP_SOURCES = \
+	swrast_setup\ss_context.c \
+	swrast_setup\ss_triangle.c \
+	swrast_setup\ss_vb.c
+
+TNL_SOURCES = \
+	tnl\t_array_api.c \
+	tnl\t_array_import.c \
+	tnl\t_context.c \
+	tnl\t_eval_api.c \
+	tnl\t_imm_alloc.c \
+	tnl\t_imm_api.c \
+	tnl\t_imm_debug.c \
+	tnl\t_imm_dlist.c \
+	tnl\t_imm_elt.c \
+	tnl\t_imm_eval.c \
+	tnl\t_imm_exec.c \
+	tnl\t_imm_fixup.c \
+	tnl\t_pipeline.c \
+	tnl\t_vb_fog.c \
+	tnl\t_vb_light.c \
+	tnl\t_vb_normals.c \
+	tnl\t_vb_points.c \
+	tnl\t_vb_program.c \
+	tnl\t_vb_render.c \
+	tnl\t_vb_texgen.c \
+	tnl\t_vb_texmat.c \
+	tnl\t_vb_vertex.c
+
+DRIVER_SOURCES = \
+	drivers\glide\fxapi.c \
+	drivers\glide\fxdd.c \
+	drivers\glide\fxddspan.c \
+	drivers\glide\fxddtex.c \
+	drivers\glide\fxsetup.c \
+	drivers\glide\fxtexman.c \
+	drivers\glide\fxtris.c \
+	drivers\glide\fxvb.c \
+	drivers\glide\fxglidew.c \
+	drivers\glide\fxwgl.c \
+	drivers\glide\fxg.c
+
+X86_SOURCES = \
+	x86\x86.c \
+	x86\glapi_x86.S \
+	x86\common_x86.c \
+	x86\common_x86_asm.S \
+	x86\x86_xform2.S \
+	x86\x86_xform3.S \
+	x86\x86_xform4.S \
+	x86\x86_cliptest.S
+
+MMX_SOURCES = \
+	x86\mmx_blend.S
+
+SSE_SOURCES = \
+	x86\sse.c \
+	x86\sse_xform2.S \
+	x86\sse_xform3.S \
+	x86\sse_xform4.S \
+	x86\sse_normal.S
+
+K3D_SOURCES = \
+	x86\3dnow.c \
+	x86\3dnow_xform2.S \
+	x86\3dnow_xform3.S \
+	x86\3dnow_xform4.S \
+	x86\3dnow_normal.S
+
+!if "$(HAVE_MMX)"=="1"
+X86_SOURCES = $(X86_SOURCES) $(MMX_SOURCES)
+HAVE_X86 = 1
+!endif
+!if "$(HAVE_SSE)"=="1"
+X86_SOURCES = $(X86_SOURCES) $(SSE_SOURCES)
+HAVE_X86 = 1
+!endif
+!if "$(HAVE_3DNOW)"=="1"
+X86_SOURCES = $(X86_SOURCES) $(K3D_SOURCES)
+HAVE_X86 = 1
+!endif
+!if "$(HAVE_X86)"=="1"
+!else
+X86_SOURCES =
+!endif
+
+EXPORTS = drivers\glide\fxopengl.def
+
+MAIN_OBJS         = $(MAIN_SOURCES:.c=.obj)
+GLAPI_OBJS        = $(GLAPI_SOURCES:.c=.obj)
+MATH_OBJS         = $(MATH_SOURCES:.c=.obj)
+ARRAY_CACHE_OBJS  = $(ARRAY_CACHE_SOURCES:.c=.obj)
+SWRAST_OBJS       = $(SWRAST_SOURCES:.c=.obj)
+SWRAST_SETUP_OBJS = $(SWRAST_SETUP_SOURCES:.c=.obj)
+TNL_OBJS          = $(TNL_SOURCES:.c=.obj)
+DRIVER_OBJS       = $(DRIVER_SOURCES:.c=.obj)
+X86_OBJS          = $(X86_SOURCES:.c=.obj)
+X86_OBJS          = $(X86_OBJS:.S=.obj)
+
+RES = drivers\glide\fx.res
+
+CORE_LIBS = \
+	$(LIBDIR)\main.lib \
+	$(LIBDIR)\glapi.lib \
+	$(LIBDIR)\math.lib \
+	$(LIBDIR)\array_cache.lib \
+	$(LIBDIR)\swrast.lib \
+	$(LIBDIR)\swarst_setup.lib \
+	$(LIBDIR)\tnl.lib
+
+!if "$(X86_SOURCES)"!=""
+X86_LIB = $(LIBDIR)\x86.lib
+!else
+X86_LIB =
+!endif
+
+INCS  = -I$(BUILDROOT)\include \
+        -I. \
+        -I.\drivers\glide \
+        -I.\main \
+        -I.\glapi \
+        -I$(GLIDE3SDK)\include
+
+DEP_LIB = user32.lib gdi32.lib kernel32.lib
+
+!if "$(DEBUG)" == "1"
+STD_LIB = MSVCRTD.lib
+!else
+STD_LIB = MSVCRT.lib
+!endif
+
+#################################
+# build rules
+#################################
+default:: all
+
+all: $(X86_LIB) $(CORE_LIBS) $(LIBDIR)\$(GL_DLL)
+
+$(LIBDIR)\$(GL_DLL): $(DRIVER_OBJS) $(CORE_LIBS) $(X86_LIB) $(RES)
+	$(LINK) -out:$@ -def:$(EXPORTS) $(LFLAGS) $(DRIVER_OBJS) $(CORE_LIBS) $(X86_LIB) $(DEP_LIB) $(STD_LIB) $(TEXUS2LIB) $(GLIDE3LIB) $(RES)
+
+$(LIBDIR)\main.lib: $(MAIN_OBJS)
+	$(AR) -out:$@ $(ARFLAGS) $(MAIN_OBJS)
+
+$(LIBDIR)\glapi.lib: $(GLAPI_OBJS)
+	$(AR) -out:$@ $(ARFLAGS) $(GLAPI_OBJS)
+
+$(LIBDIR)\math.lib: $(MATH_OBJS)
+	$(AR) -out:$@ $(ARFLAGS) $(MATH_OBJS)
+
+$(LIBDIR)\array_cache.lib: $(ARRAY_CACHE_OBJS)
+	$(AR) -out:$@ $(ARFLAGS) $(ARRAY_CACHE_OBJS)
+
+$(LIBDIR)\swrast.lib: $(SWRAST_OBJS)
+	$(AR) -out:$@ $(ARFLAGS) $(SWRAST_OBJS)
+
+$(LIBDIR)\swarst_setup.lib: $(SWRAST_SETUP_OBJS)
+	$(AR) -out:$@ $(ARFLAGS) $(SWRAST_SETUP_OBJS)
+
+$(LIBDIR)\tnl.lib: $(TNL_OBJS)
+	$(AR) -out:$@ $(ARFLAGS) $(TNL_OBJS)
+
+x86\matypes.h: x86\gen_matypes.exe
+	x86\gen_matypes.exe > $@
+
+x86\gen_matypes.exe: x86\gen_matypes.obj
+	$(CC) -o $@ x86\gen_matypes.obj
+
+$(LIBDIR)\x86.lib: x86\matypes.h $(X86_OBJS)
+	$(AR) -out:$@ $(ARFLAGS) $(X86_OBJS)
+
+.c.obj:
+	$(CC) $(CFLAGS) $(FLAGS) $(INCS) $< /Fo$*.obj
+
+.S.obj:
+	$(CC) $(CFLAGS) $(FLAGS) $(INCS) $< -D__WIN32__ -DNASM_ASSEMBLER -EP > $*.i
+	$(AS) $(ASFLAGS) $(INCS) $*.i -o $*.obj
+	$(RM) $*.i
+
+.rc.res:
+	$(RC) -Fo$@ $(INCS) $(FLAGS) -D__WIN32__ $<
+
+# [dBorca] Hack alert:
+# use standard API, to work around Win32 @x names
+# also glapi_x86.S is protected against __WIN32__
+main\dispatch.obj: main\dispatch.c
+	$(CC) $(CFLAGS) $(FLAGS) $(INCS) -UUSE_X86_ASM main\dispatch.c /Fo$*.obj
+
+#################################
+# cleanup rules
+#################################
+realclean: clean clobber
+
+clean::
+	$(RM) array_cache\*.obj
+	$(RM) glapi\*.obj
+	$(RM) main\*.obj
+	$(RM) math\*.obj
+	$(RM) swrast\*.obj
+	$(RM) swrast_setup\*.obj
+	$(RM) tnl\*.obj
+	$(RM) x86\*.obj
+	$(RM) drivers\glide\*.obj
+        $(RM) drivers\glide\*.res
+        $(RM) $(LIBDIR)\*.pdb
+        $(RM) *.pdb
+
+clobber::
+	$(RM) $(LIBDIR)\*.lib
+	$(RM) $(LIBDIR)\*.exp
+	$(RM) $(LIBDIR)\*.dll
