Advanced engine needed : Vanilla Doom only
Primary purpose : No levels included
Title : Logitech Wingman Warrior external driver
Filename : wwlaunch.zip
Release date : 2012-07-02
Author : Logitech; uploaded by Simon Howard (fraggle)
Email Address : firstname.lastname@example.org
Other Files By Author : ctrlapi.zip, greenfish.wad
Description : Some months ago I released ctrlapi.zip, a
demonstration set of hacks that show what is
possible using Vanilla Doom's external control
API. At the time, I wrote that, "as far as I
know, no such driver was ever written before
now". This file is proof that I was wrong.
Included is a collection of files that I
extracted from the Logitech Entertainment
Software (LES) v2.3 drivers. It includes an
external control driver apparently designed to
allow Doom, Heretic, Hexen and several other
games to be played using the Logitech Wingman
Warrior joystick. Also included is a graphical
menu tool used to configure it.
I am uploading this because it is of historical
and educational interest in the context of the
Doom source code.
* Technical discussion *
Logitech's joysticks used a rather odd arrangement where they hooked
into the mouse driver. The extended mouse driver added a set of extra
API calls called "SWIFT". A reference to this is seen during Vanilla
Doom startup: the message "CyberMan: Wrong mouse driver - no SWIFT
support" appears when the mouse is enabled.
Full details of the SWIFT API are not public knowledge as far as I
know, but some details can be gleaned from the source code to Heretic,
Hexen and Descent. The Doom source code does not include the Cyberman
code, because it was stripped out of the released linuxdoom source.
A fun exercise for someone with the technical know-how would be to
implement the SWIFT API in DOSbox, and allow it to be used with modern
6DOF devices like the Nintendo Wii remote...
Although the Doom engine games supported the Logitech Cyberman
directly, it looks like at some point Id decided that including
support for every new type of input device under the sun was probably
the wrong way to go about things, which is probably why the external
control API was created. In the end it looks like Logitech were
probably the only manufacturer to make use of it.
The driver appears to be intended to support the Wingman Warrior; I
have no idea if it will work with other Logitech joysticks like the
Cyberman or Wingman Extreme. Photos of the Warrior show that it has a
throttle and a hat that can apparently be configured to switch
weapons. The controls behave differently in different games (see the
readme.txt documentation file). The drivers are included but won't work
unless you actually have a Logitech joystick.
I got these files out of a driver file called les23.exe; I've
selectively picked out only the Doom-related DOS files. Support for
the launcher.exe external driver system was abandoned in later versions
of the driver package (LWS, or Logitech Wingman Software). Photos I've
seen on the web show that the Wingman Warrior driver CD included the
Id logo ("Id stuff") - presumably there was some small amount of
collaboration between Id and Logitech, and the CD contained shareware
versions of some of Id's games.
The external driver also works with other (non-Doom engine) games. Code
for it can be found in the WinQuake source code (in_dos.c). Presumably
the other games had their own hooks, too.
* What is included *
launcher.exe - The actual external driver program. The 'strings'
output includes references to the -control and
-externdriver command line parameters. Doesn't
work unless you have a proper SWIFT mouse driver.
wwmenu.exe - Graphical launcher tool that allows configuration
of the launcher. Looks like it is supposed to
edit the .ini files.
doom.ini - Configuration file for Doom 1.
doom2.ini - Configuration file for Doom 2.
heretic.ini - Configuration file for Heretic.
hexen.ini - Configuration file for Hexen.
Configuration files for other games, I've included for completeness:
blood.ini - Blood
d2.ini - Descent 2
dark.ini - Dark Forces
duke3d.ini - Duke Nukem 3D
quake.ini - Quake
rampage.ini - Redneck Rampage
sw.ini - Shadow Warrior
readme.txt - Documentation file included with the driver
package. Some of the information is to do with
the Windows driver and is not relevant here.
old/wwlaunch.exe - Older version of launcher.exe. I found this
distributed with a copy of DWANGO. The version
number (v3.0) is higher than in launcher.exe
(v2.3) but it's definitely older.
driver/mouse.exe - Logitech mouse driver.
driver/joycp.exe - Joystick driver. Doesn't work unless you have
a Wingman joystick connected.
special/warrdosq.cfg - Quake configuration file for playing using the
special/cm2dosq.cfg - Quake configuration file for using the Cyberman 2.
special/cybermn2.plr - Cyberman 2 player file for Descent 2.
* Copyright / Permissions *
Authors MAY use the contents of this file as a base for modification or
reuse. Permissions have been obtained from original authors for any of
their resources modified or included in this file.
You MAY distribute this file, provided you include this text file, with no
modifications. You may distribute this file in any electronic format (BBS,
Diskette, CD, etc) as long as you include this file intact. I have
received permission from the original authors of any modified or included
content in this file to allow further distribution.
* Where to get the file that this text file describes *
The Usual: ftp://archives.3dgamers.com/pub/idgames/ and mirrors