The PC update


Gliding with legacy APIs

TL;DR

First, let’s get things right out of the way:

What you see here is the “3dfx” startup splash screen, part of the 3dfx Voodoo Graphics driver, directly followed by the Apus title screen. Yes, this really means what it looks like: Apus now fully supports 3dfx Voodoo graphics accelerators - both on Windows and DOS!

Mixin and matching renderers

Apus was written to be very portable. While NRender’s primary platform remains PSX, there are now multiple ports: To Windows (almost every one!), DOS and even modern web browsers.

Internally, NRender is divided into a few subsystems that handle stuff like input, sound and so on. And, of course, the most important one: Rendering to the screen. These subsystems are designed to be mostly independent of the underlying platform, where possible.

The lowest common denominator for every port is the software renderer. Some, like Windows and Browsers, feature an additional renderer that utilizes OpenGL 1.1. OpenGL is available on many operating systems, from Windows 95 to the most modern machine, and 1.1 remains mostly well supported.

And now, there is an additional one using 3dfx’s proprietary “Glide” API. This is what 3dfx Voodoo cards used initially (they later supported OpenGL and Direct3D as well), and what usually performs best on them.

There is another advantage: 3dfx entered the video accelerator market so early that DOS was still a relevant platform for games - and so they supported DOS! This is what enables us to do hardware-accelerated 3D graphics on a platform that few would associate with accelerated rendering

How is this possible?

Well, by writing a renderer that targets the “Glide” API - version 3.0, to be exact. This turned out to be quite easy, as documentation is widely and freely available. In addition, 3dfx actually open-sourced many of their proprietary software back in the day. This includes the API itself as well as the drivers implementing it.

The latter enables me to ship actual, working drivers for most 3dfx Voodoo cards along with the DOS build of Apus. This is quite handy, as there seldomly was a system-wide driver installation for hardware accelerators. Games back in the day typically shipped their own drivers.

There are many variants floating around, but the one by sezero stands out for being mostly bug-free and supporting DJGPP / DXEs without further fuzz. So that’s what Apus ships.

What else is new?

The DOS version now sports a configuration dialog

Similar to the Windows version, this allows you to set various settings such as screen resolution, VSync and so on. You can get there by running SETUP.BAT instead of LAUNCH.BAT.

I’m actually taking the opportunity to modernize NRender behind the scenes, stripping out old, unused concepts and refactoring things to improve design. This is in preparation for my next game, so stay tuned!

One welcome side effect is that Apus 1.2.0 will provide slightly higher frame rates across all renders. Expect around 2 FPS, depending on your configration.

Get Apus

Leave a comment

Log in with itch.io to leave a comment.