Skip to content

The open-source 3dfx Glide API for 3D rendering on 3dfx video cards. Ported to CMake to work with modern compilers. Even has CI builds for Windows and Linux.

License

Notifications You must be signed in to change notification settings

Danaozhong/3dfx-Glide-API

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3dfx Glide API

This is the source code to 3Dfx Glide for Voodoo graphics accelerators. It's forked from the original CVS repo of Glide open source project at sourceforge: https://sourceforge.net/projects/glide/

The source is licensed under 3DFX GLIDE Source Code General Public License.

CI Status

win-glide3-vodoo345-msvc-build win-glide3-vodoo345-gcc-build win-glide3-vodoo2-gcc-build win-glide2-vodoo2-gcc-build win-glide2-vodoo2-gcc-build linux-glide2-vodoo2-gcc-build

Motivation

Although 3dfx disappeared from the marked in 2000, there is still a large community of enthusiasts that enjoy using 3dfx video cards up to this day. A part of these enthusiasts focus on providing software for modern-day operating systems, and this is where this project comes in.

The Glide API is, similar to OpenGL/Direct3D, a 3D API. It is used by many old-school video games, and in order to run these games on present-day OS, the Glide API libraries need to be available.

This project is a port of the Open-Source Linux Glide libraries, and supports cross-platform builds for Linux and Windows, both x86 and x64.

The toolchain is ported to CMake to simplify cross-platform builds, and get rid of a large set of hard-to-use makefiles.

How to Build?

The libraries are tested under Linux, using the mingw-w64 cross-platform compiler. Visual Studio builds might also work, but are currently not tested in the Github Action CI environment.

The Glide API comes in two versions, Glide2x and Glide3x. Both versions have different libraries for the video card series they are supporting:

  • sst1 is for Voodoo1 cards
  • cvg is for Voodoo2 cards
  • h3 is for Voodoo3/Velocity cards
  • h5 (Glide3x only) is for Voodoo4/5 cards

The simplest way to build the libraries is to use the provided docker container, and refer at the build steps of the Github actions.

Build Example (Windows, Visual Studio)

Let's build the Glide3 DLL for Voodoo3/4/5 using Visual Studio.

Go to the Glide3 directory:

cd glide3x\h5

Run FXgasm Header Generator

Before building the Glide3 libray, we first need to build the FXgasm tool. This tool will generate a few files needed for the later compilation steps.

cd glide3\src\fxgasm_tool

Create a binary directory, and generate and build the tool.

mkdir bin_win32
cd bin_win32
cmake --DBUILD_32BIT=ON  -G "Visual Studio 16 2019" -A Win32 ..
cmake --build .

Generate the headers with fxgasm:

cd ../..
./fxgasm_tool/bin_win32/Debug/fxgasm -inline > fxinline.h
./fxgasm_tool/bin_win32/Debug/fxgasm -hex > fxgasm.h

Run FX Build Number Header Generator

Create a binary directory.

cd fxbldno_tool
mkdir bin_win32
cd bin_win32

Generate project, build, generate header files...

cmake --DBUILD_32BIT=ON  -G "Visual Studio 16 2019" -A Win32 ..
cmake --build .
cd ../..
./fxbldno_tool/bin_win32/Debug/fxbldno > fxbldno.h

Generate the Glide3 DLL

Move back to the "h5" directory, and generate the build directory.

cd ../..
mkdir bin_win32
cd bin_win32

Similar to the steps before, generate your Visual Studio solution, and build the DLL.

cmake --DBUILD_32BIT=ON  -G "Visual Studio 16 2019" -A Win32 ..
cmake --build .

The glide3x.dll should be generated in the bin_win32\Debug directory, ready for use.

Where to Download?

The libraries are automatically build by the CI for every commit, so you can also use the CI builds (see the "Actions" tab https://github.com/Danaozhong/glide/actions for the download link).

About

The open-source 3dfx Glide API for 3D rendering on 3dfx video cards. Ported to CMake to work with modern compilers. Even has CI builds for Windows and Linux.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 83.0%
  • Roff 8.2%
  • Assembly 8.0%
  • Makefile 0.4%
  • CMake 0.2%
  • Batchfile 0.1%
  • Other 0.1%