VOGONS


Reply 20 of 23, by thp

User metadata
Rank Newbie
Rank
Newbie

Thanks to some help in the OpenWatcom Discord, I got the DOS Glide build to build with 2.43 (needed to pass in the NOCASEEXACT option to the Watcom linker, as the glide2x.lib symbols are all uppercase), if anybody wants to give it a try (needs glide2x.ovl, either in the system directories or in the same folder as the exe).

Attachments

  • Filename
    dzze3dfx.exe
    File size
    184.21 KiB
    Downloads
    4 downloads
    File comment
    Yet another try at DOS Glide
    File license
    Fair use/fair dealing exception

Reply 21 of 23, by Gmlb256

User metadata
Rank Oldbie
Rank
Oldbie
thp wrote on 2021-10-11, 15:44:

Thanks to some help in the OpenWatcom Discord, I got the DOS Glide build to build with 2.43 (needed to pass in the NOCASEEXACT option to the Watcom linker, as the glide2x.lib symbols are all uppercase), if anybody wants to give it a try (needs glide2x.ovl, either in the system directories or in the same folder as the exe).

This 3Dfx DOS versions works without the freezing the computer, however the sounds are a bit distorted.

Reply 22 of 23, by thp

User metadata
Rank Newbie
Rank
Newbie

Here's the final build. As the behavior of real hardware vs Glide Wrappers (PCem/DOSBox-X/nGlide) was different, I actually got myself a Voodoo Graphics board this week to test it myself, and it works at 60 FPS on my K6-II 500 MHz.

Download below.

Screenshots:

Screenshot 2021-10-15 at 20.13.58.png
Filename
Screenshot 2021-10-15 at 20.13.58.png
File size
186.35 KiB
Views
44 views
File comment
OSMesa (OpenGL) VGA title screen, with dithering
File license
CC-BY-4.0
Screenshot 2021-10-15 at 20.13.43.png
Filename
Screenshot 2021-10-15 at 20.13.43.png
File size
160.34 KiB
Views
44 views
File comment
Custom rasterizer VGA title screen
File license
CC-BY-4.0
Screenshot 2021-10-15 at 20.13.32.png
Filename
Screenshot 2021-10-15 at 20.13.32.png
File size
140.72 KiB
Views
44 views
File comment
Text mode (80x43) EGA/VGA title screen
File license
CC-BY-4.0
Screenshot 2021-10-15 at 20.13.20.png
Filename
Screenshot 2021-10-15 at 20.13.20.png
File size
152.41 KiB
Views
44 views
File comment
Custom rasterizer EGA title screen
File license
CC-BY-4.0

Some pitfalls / learnings from the Glide porting:

  • One can poll grBufferNumPending() and avoid overfilling the FIFO (wait until there are no pending buffers)
  • Vertices are snapped to a 0.0625f pixel grid, the CPU rounding could be slightly different than what the graphics chip does and can cause hangs/delays (I do it the naive way and multiply it by 16, convert to long, then convert back to float and divide by 16, which the Glide Manual says exactly not to do because of performance reasons, but hey, works well enough in my tests)
  • OpenWatcom needs the NOCASEEXACT linker option to link against glide2x.lib from the Glide DOS SDK

This new build adds a 16-color EGA version of the software rasteriser (EGA vs VGA is detected automatically, use "ega" (lowercase, without the quotes) to force the 16-color mode on VGA boards. Also, a super weird EGA/VGA text mode version for really old computers (16 colors, 80x43 "resolution"). And zyzzle gets 128 lives by just passing their username as first command line parameter.

That's it: The Glide version works, and the VGA software rasterizer turned out pretty nice, and I learned a lot about Glide, OpenWatcom, DOS overlays, OpenGL on Windows 95 and new Win32 API features. Also about EGA's planar mode, detecting CGA vs EGA vs VGA and implementing a crappy 16-color text mode rasterizer. Also, 8-bit Sound Blaster audio output under DOS. A small multi-weekend project coming to a close 😀

Version 1.2 (2021-10-15)
------------------------

- Glide port: Use grBufferNumPending() and vertex snapping to 0.0625f
- Reintroduce the DOS 3Dfx port using Glide 2.43 and wlink's NOCASEEXACT
- Allow pressing "SPACE" only after the intro has finished playing
- Win32/OpenGL: Add logging support, make bpp/depth/stencil configurable
- Allow ports to customize the font scaling (fixes text alignment)
- Add cheat command line argument to have more lives (name of requester)
- 16-color EGA mode support for DZZESFTW.EXE (force using "ega" option)
- New "mode 4350" build (DZZE4350.EXE) without sound, using text mode

Attachments

  • Filename
    DZZEE12R.ZIP
    File size
    1.45 MiB
    Downloads
    8 downloads
    File comment
    Added EGA support, fixed Glide rendering
    File license
    Fair use/fair dealing exception

Reply 23 of 23, by Gmlb256

User metadata
Rank Oldbie
Rank
Oldbie

Great that you ironed out the problems and learned something new with Glide! 😀

I know that this is final build, but I've noticed that the sound quality with the DOS 3Dfx version is not on par with the other ones having some annoying clicks when playing samples. Besides this, could be possible to add 800x600 and 1024x768 (for those using SLI on Voodoo2 cards) resolutions on the 3Dfx version?