First post, by truth_deleted
Qbism further developed and enhanced the software renderer of the Quake 1 (Q1) engine, the core of a game released by ID Software in 1996. This announcement is related to the DOS port developed by Qbism, particularly to Build 46 of his Super8 game engine (qs8 screenshots) and subsequent builds toward his Windows port. Of particular interest is the colored lighting model which was introduced in Build 53. However, qbism's SVN repository has incremental changes between these two builds, and changes after #53, which allowed the backporting of code to Build 46 which is known to build a DOS binary. After setting up a development environment to build qbism's engine, I made modifications to source code and makefile, including a few minor fixes.
In this DOS version, qbism's enhanced software renderer includes features beyond static colored lighting by use of lit formatted files, including a limited capability to load large custom maps, special effects such as translucent particles and transparent water, support for better skymaps, and enhancements for playback of music. I didn't test the music playback additions nor the networking capabilities, since this focus is on single player and the ability to play the original Q1 campaign or to load custom mods/maps.
Engoo is the other DOS based Q1 engine with an enhanced software renderer. This is leilei's project. These are the two current, major projects for development of the software renderer of Q1. There is collaboration among leilei and qbism, so these two projects share some features, in others they diverge. In particular, the DOS based version of engoo (v228) includes texture filtering and (dynamic) colored lighting. The dynamic colored lighting is not easily supported by the DOS memory model, so this is a great achievement. In both ports, qs8 and engoo, this feature has been a difficult task, a balance between game stability, performance, and realism of the lighting model. For use in dosbox or a low powered DOS system, then qbism's static lighting model should perform reasonably well. Qs8 employs a different lighting model than engoo, as discussed by leilei: "qbism uses [an] intensity/hue lookup, incidentally the resulting lightmap looks similar to PowerVR PCX2 running Quake2".
These two projects are important to developing the software renderer of a 3d game engine, especially since they run in dosbox, a dos emulator for games which runs on a large number of computing systems. It may be necessary to run dosbox with memory set to 63mb. In dosbox, qs8 will run best with the following command lines:
quake -mem 46 -heap 100000
To build the qs8 dos port, I first downloaded build 46 from qbism's SVN repository and the DJGPP development environment from rugxulo (DJGPP203.7z). Created a directory in Windows XP called c:\quake\ and moved the build 46 source code there and the development environment to a subdirectory, c:\quake\gcc\. Note that I patched build 46 at this step. Next, downloaded the bash shell, sed and file utilities, and moved them to c:\quake\gcc\bin\. Third, ran the batch file DJGPP.BAT, located in c:\quake\gcc\, while in the XP command shell and then ran bash.exe to obtain the capabilities of the bash shell language. Last, entered the directory with the qs8 source code and ran: make -f MAKEFILE. It will build a binary, also required is an installation of the original Quake 1 game and a set of lit formatted files so that qs8 (or engoo) will produce colored lighting. These .lit files are moved to the directory where the Q1 game is installed, in a subdirectory called \maps\ under \ID1\, such as c:\quake\ID1\maps\. Backup the original quake and cwsdpmi executables and replace with the attached binaries. Also, there are a few additional files with the binary package which are required and these are moved to their corresponding directory locations. In quake, set gamma to 0.7 at the console or use the brightness slider under the menu item - video options.
Edit: fixed errors specific to my source code modifications and updated the attached files (7/3/14).