Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bundled support resources

Bundled support files contain hardware configuration, controller presets, audio test data, and development reports.

Runtime roles

ResourceOriginal roleReference
.DIGExecutable DOS drivers for digital sound hardware. DIG.INI selects the driver used for sample playback.Miles drivers
.MDIExecutable DOS MIDI drivers. The shipped engine disables MIDI initialization.Miles drivers
.OPL, .ADFM MIDI instrument banks. These do not supply the CD background music.Instrument banks
DIG.INI, MDI.INIDriver selection and sound-card I/O parameters.Miles configuration
MSSDRVR.LSTDriver selection criteria and installation messages for audio setup.Driver catalog
.PIFWindows launch settings for the bundled DOS audio utilities.PIF settings
STATE.RSTText editor settings and remembered file positions.Editor state
.SWG, .SWXMicrosoft SideWinder controller preferences.Controller profiles
fxart/moreModel filenames and version labels from Hugh’s 3D information tool.Model report
fxart.txt, fxart3dc.txtHistorical directory listings with model filenames, timestamps, and sizes.Directory reports
fxart/LOGFILE.TXTCollision-sphere generation tool output.Collision tool report
sound/R212.WAVPCM sample selected by the DIGPLAY.PIF audio test.Audio test sample

A reimplementation using modern audio APIs plays samples from SFX, RTX, and movie streams, and uses the CD audio tracks for background music. DOS driver images supply the original hardware interface. They do not supply the game’s sound effects, dialogue, or music recordings.

Controller presets describe one hardware setup. Game action bindings are separate settings in KEYS.INI. Historical reports record tool output at the time of generation. Current model headers and archive data define the installed assets.

Miles driver catalog

MSSDRVR.LST is a line-oriented text file. Sections use a driver filename in brackets, such as [iwav.dig]. Lines beginning with ; are comments. Dot-prefixed directives define selection conditions and setup behavior.

DirectiveMeaning
.E NAMEEnvironment variable NAME must be present.
.NE NAMEEnvironment variable NAME must be absent.
.C TEXTCONFIG.SYS must contain TEXT.
.NC TEXTCONFIG.SYS must not contain TEXT.
.A TEXTAUTOEXEC.BAT must contain TEXT.
.NA TEXTAUTOEXEC.BAT must not contain TEXT.
.NDThe entry cannot be selected as the default.
.T1If the BLASTER T parameter is present, its value must be 1 or 3.
.T2The BLASTER T parameter must be present and equal to 2, 4, or 5.
.T3The BLASTER T parameter must be present and at least 6.
.IOBDerive I/O defaults from the BLASTER environment variable.
.IODUse the first default I/O configuration from the driver.
.IONDisable manual I/O configuration.
.IOAConfigure only the I/O address. Appears at the end of the I/O options.
.IOLSuppress the high-DMA prompt. Appears at the end of the I/O options.
.NAMEThe following line supplies a displayed device name.
.SPECIAL_TEXTBegin the installation message block.
.END_SPECIAL_TEXTEnd the installation message block.

Message blocks retain their line breaks. Device labels and setup criteria are separate from the executable driver’s VDI header. For example, the catalog supplies the WaveJammer device label for JAMMER.DIG, whose stored header has no device-name block.

Directory reports

fxart.txt and fxart3dc.txt contain DOS directory output. The heading records the drive label and the original E:\PROJECTS\REDGUARD\demo\fxart path. Each entry records a date, a time, a decimal file size with optional comma grouping, and a filename. The footer records totals and free disk space.

The listings describe the files at the time of the report. Their timestamps, sizes, and totals are historical metadata, not current asset requirements.

Collision tool report

fxart/LOGFILE.TXT begins with Collision Sphere Generation, version 1.5, and identifies Alphacom Systems Limited as the tool author. Its output contains Processing (N) file : NAME messages and runs of progress dots. Messages can follow one another on the same line.

The report records tool activity. Collision data resides in the corresponding model files.

Audio test sample

R212.WAV is a RIFF/WAVE PCM file with one channel, eight-bit samples, and a sample rate of 11,025 Hz. DIGPLAY.PIF selects R212.WAV as the argument to DIGPLAY.EXE. The recording is an audio utility test input.

Cursor asset

system/pointers.bmp contains a GXA bitmap archive with 30 frames. Its first chunk is BMHD; the filename’s .bmp extension does not describe the container. This is a cursor image asset, separate from the controller profiles and setup files.

The [system] pointers setting in SYSTEM.INI supplies the cursor archive path. Cursor initialization consumes consecutive frame pairs. The first frame of each pair supplies the displayed image. The second supplies storage read during cursor-offset initialization. In the Glide path, bitmap preparation replaces decoded pixel storage with texture identifiers before cursor-offset initialization reads that storage.

In the software path, bitmap preparation retains the decoded pixel buffer. Cursor loading supplies a palette destination, which bypasses pixel remapping. The second frame of each pair is scanned in row order, from left to right. Every pixel with palette index 16 stores its column and row as the cursor offset, so the last matching pixel supplies the final offset. If no pixel matches, this scan does not write the offset fields. These pixel semantics apply to the software path; Glide preparation replaces the pixel buffer with texture identifiers as described above.

Glide preparation allocates a table of six 32-bit texture identifiers per frame. Cursor-offset initialization still scans a byte count equal to the frame width times its height. For the shipped cursor pairs, that scan exceeds the table’s 24-byte payload and reads beyond it. The scan therefore does not define an offset derived from the decoded marker image in the Glide path.

Initialization creates (frame_count - 1) / 2 cursor descriptors, with integer division rounded toward zero, in a table of 64 slots. The 30-frame cursor archive therefore supplies 14 cursors; its last two frames are not admitted.

The cursor draw routine uses the selected pair’s first frame and places its top-left corner at the pointer position minus the stored cursor offset. Each coordinate subtraction wraps to a signed 16-bit value before the image is drawn. Drawing requires the cursor archive to be loaded, the mouse driver to be initialized, cursor drawing to be enabled, and the selected descriptor to be present.

Initialization requests cursor zero. Selecting a cursor requires an initialized mouse driver and enables cursor drawing. The interactive modes entered by object select, scene, fxselect, and pvoaddpatch initialize the cursor resources and call the cursor draw routine.

External References