WinDoom (Microsoft)
From DoomWiki.org
WinDoom was a preliminary port of Doom to Microsoft Windows 3.1x by a team initially founded by Gabe Newell, with Bill McCormick and Robert Hess as the primary engineers, using the newly developed Win32s and WinG technologies. This port never made it past beta testing, in part due to the impending release of Windows 95 and because of performance issues on period hardware.[1] Two beta versions were unofficially released and are available in the /idgames historic archive.
This code base was later upgraded to the full Win32 platform in order to exploit the DirectX technology available on Windows 95, where it became known as Doom95.
Contents
Development[edit]
Gabe Newell, who served as the producer for Windows at Microsoft at the time,[2] had been lamenting that Windows was commonly seen as being unsuitable for games. Seeing the popularity of Doom, and based on internal market research indicating that Doom was installed on more computers than Windows,[2] Newell decided to approach John Carmack at id Software.[3] The idea was to use Doom as a testbed to both prove and improve Windows as a gaming platform.[4] Newell presented an offer where Microsoft would port Doom to Windows free of charge while also giving id Software the source code as a result of the project. Carmack agreed to these terms, and provided the source code to Microsoft.[5] Based on the timing, the provided source code was likely that of Doom v1.2.
Work on the first port of Doom to Windows started around April 1994, under the project name Pegasus.[6] This port targeted Windows 3.1 and up via the new Win32s and the upcoming WinG technology.[6] The original project team, as written in the project specification, consisted of Gabe Newell, Alex St. John, Bill McCormick, Chris Hecker, Jon Blossom and Stephen Dennis. Alex St. John had the title of Microsoft Games Evangelist,[7] aiming to convince game developers to start developing games for Windows.[2] The primary engineer on the port was Bill McCormick[notes 1] and he was also responsible for writing the project specification.[5][6] Chris Hecker and Jon Blossom were the engineers responsible for the WinG API, where Hecker has been credited as the main mind behind the API, while Blossom has been listed as a co-author.[2][8] Stephen Dennis was a software engineer at Microsoft,[9] though his exact role in the project is not known.
The initial work of porting the game to the development version of WinG was reportedly completed in a single weekend.[10][11] An initial prototype was showcased at the Computer Game Developers Conference on April 24, 1994 by Chris Hecker and Jon Blossom as part of the presentation WinG: A DLL for Graphics.[7][12][13] The primary purpose of the presentation was to promote the upcoming WinG library and entice developers to start developing for Windows, where the Doom port served as a demonstration of the capabilities of the WinG library.[11] WinG itself was still not finished at the time and would be developed in parallel; a public beta release of the library was planned by the end of May.[11]
This initial port, titled WinDoom,[13] was more of a technology demo than a full port. The port was missing the in-game UI, had no support for music and sound effects, and was limited to only the shareware episode of Doom. However, unlike the original DOS game, the port supported running at 640x480 in either natively rendered or stretched mode.[2][14]
The final version of WinDoom aimed to support both Windows NT and Windows 95. It would also support music and sound effects through Windows MIDI and WAVE devices. Network play was to be supported through Winsock (for TCP/IP) and NetBIOS (NetBEUI and IPX). The port was multi-threaded, enabling improved performance on multiprocessor systems, and also had plans to support DEC Alpha and MIPS RISC processors. Resolutions higher than 640x480 would be rendered stretched, this was stated to be due to limitations in the original Doom engine.[15] The target machine, that was also used by the port developer, was an Intel 486SX/25 computer.[16]
WinDoom was slated to be finished before Christmas 1994.[4][11] The original project specification had further development on the port divided into five phases, where the version presented at Computer Game Developers Conference was called Phase 0 and the final phase was called Phase 4. The next phase, Phase 1, was meant to add support for sound effects, mouse input, IPX network play and re-add the in-game interface that was present in the MS-DOS version (while still allowing changing the resolution from the menu bar).[6] A beta version of the port was provided to id Software in early August.[17] At around the same time, a beta version from June 1994 was also leaked[notes 2], indicating that the beta version was probably handed to a wider audience. The leaked beta build demonstrates that support for sound effects, music and mouse input had been added to the port by mid-June 1994 but notably the in-game UI from the original DOS version was still missing.
The final version of the technology the port was based on, the WinG library, was released on September 23, 1994.[18][19][notes 3] Only a few months later, Microsoft suffered a public relations disaster with WinG where a third-party driver update caused WinG software to crash instantly on startup.[2] There were also internal concerns regarding the scalability of the underlying WinG technology for real projects.[20] WinG also only solved part of the problem, namely graphics, while still leaving audio and input handling untouched. Based on these observed shortcomings, Microsoft already started development on a successor to WinG, what would eventually become DirectX.[2]
No further public updates on the status of WinDoom seem to have been made in 1994[21] and Christmas passed without the port seeing an official release. According to the original development plan, Phase 2 was supposed to modify the game interface so that it would function natively through the Windows menu bar, and Phase 3 would introduce network support using Windows networking APIs. The final development phase, Phase 4, was to make the game compatible with Windows NT.[6] While the exact timeline of the implementation is not known, the April 1995 build shows that most of these features were eventually implemented.
On April 25, 1995, the port was once again demonstrated at the Computer Game Developers Conference. This time, the port was shown by Alex St. John as part of the presentation Writing Great Windows 95 Games.[22][23] The demonstration was of an updated version of the port running Doom II, also called WinDoom II. A feature unique to the port was also showcased: a particular make of joysticks supported simulating recoil by kicking back the stick when the player fired a shotgun.[22] The port was still based on the WinG technology, despite Microsoft also announcing and distributing a public beta of its successor, the Windows 95 Game SDK[notes 4] at the same conference.[24]
At this point, the port engineering team had undergone some changes. The programmers listed as responsible for the port were now Bill McCormick, Robert Hess, and Brian Willoughby.[25][notes 5] Roger Weiss and Ian Robinson were also credited for creating the network game frontend.[26] A leaked build from April 13, 1995, shows that the port had gained support for most features outlined in the initial project specification. There was full support for music and sound effects, the in-game menu system from the original DOS version was back, combined with the ability to also access some settings directly from the menu bar (including the ability to save and load games). The port had also gained support for running Doom II and the registered episodes of the original Doom. The codebase had been rebased on top of Doom v1.8.
At this point, it would seem that the port was nearly finished. GT Interactive, the retail publisher of Doom, had announced that a retail release of both WinDoom and WinDoom II was planned for the first half of 1995.[27] However, for reasons unknown this initial Windows port was never released. Alex St. John later recalled that there were still unsolved performance issues with the port and that John Carmack did not consider the port good enough.[1] Furthermore, the internal concerns at Microsoft regarding the viability of WinG and development focus shifting to DirectX likely made the thought of shipping a title using the outdated WinG technology much less attractive since one of the main purposes of the port was to demonstrate the gaming capabilities of Windows.
Versions of WinDoom[edit]
| File date | Size (bytes) | MD5 | SHA-1 | CRC-32 |
|---|---|---|---|---|
| 1994-06-08 | 2,097,152 | 79dc9626975b1dd4ae24c9a1ff1d9f6f | 99e8cb7c668b5ce69eb6d81f451fe0094758e3a5 | 8471b40c |
| 1994-06-14 | 325,120 | 311890515a38a88fff94a906ed5f0e6d | d22d85bd1e9b79a17c18f0799d2e8251f13ea9ce | 6df92672 |
| 1995-04-13 | 617,472 | 7fa0363fe04d4253ddfa55fa57202a99 | 96d8d935d7964d4faf3c93759dfa902d69a22c43 | 67cc0ffb |
June 8, 1994[edit]
Distributed as WINDOOM-.EXE. The title bar simply calls it "WinDOOM".
General[edit]
- Launching the game with a Doom IWAD present in the same folder will start in E1M1: Hangar, bypassing the in-game menu interface, as it is not present in this version.
- There is a menu bar consisting of File and Window menus. File contains an About dialogue and the quit option. Window allows changing the size and rendering options used by the window.
- Tab does not open the automap, escape and the function keys do not open the in-game menu, and the plus (+) and minus (-) keys do not change the screen size.
- There is no in-game means of redefining controls or other configuration settings. The game reads its configuration from windoom.cfg, which is identical to the DOS DEFAULT.CFG except for omission of fields related to sound hardware and several display options that do not function in this port.
- Cheats do not work.
- There is no intermission screen when exiting a level – the next level is loaded instantly.
- Sound channels are very limited, so sound is choppy as a result.
Display[edit]
- The engine can be run in a 320×200, 480×300, or 640×400 window. The game can either be rendered at 640×400 or at 320×200 stretched to fit the current window.
- The screenblocks configuration option is ignored. The game always renders at the maximum screen size without the status bar.
- There are no palette changes.
- No messages are displayed on the screen.
- Spectre sprites are distorted: the "fuzz" effect is applied, but the sprites are stretched vertically.
June 14, 1994[edit]
Distributed as WINDOOM.EXE. The title bar calls it "WinDOOM Build 001".
General[edit]
- There is now a Display menu, which contains two options: Display Thread (default to on) and Rate Window (default to off). Rate Window draws a second window under the main game window which shows an averaged frame rate (titled "Refresh Rate") and, if Display Thread is on, "Waited for renderer" and "Waited for display" frames/second counts.
April 13, 1995[edit]
The title bar calls this "DOOM II For Windows: Apr 13 1995", even when playing a Doom IWAD.
General[edit]
- All features from the DOS version not present in the previous builds are now back.
- Now supports Doom II.
- If an IWAD is not present in the same folder as the executable, a file prompt will open. Note that this prompt is only using the folder for the chosen file, not the file itself, so if both DOOM.WAD and DOOM2.WAD are in the same folder, the latter will always be loaded, regardless of which is chosen.
- The startup text reveals it was ported from version 1.8.
- The menus from the DOS version have returned.
- All text references to DOS have been changed to Windows with one exception: the "DOS is much worse" quit message has been changed to state, "The real world is much worse".
- There is now a menu which allows the user to remap controls and enable mouse support.
- Comes bundled with NETDOOM.EXE, a simple multiplayer game launcher.
Display[edit]
- The game can run in "full screen" mode, which is actually a black bordered window running at the desktop resolution.
- The plus (+) and minus (-) keys work the same way as they do in the DOS version until the full game is rendered in 320×200, increasing the screen size after this will actually increase the size of the game window. This alternates between drawing the status bar and not, until the window matches the desktop resolution. This is only scaling 320×200, the game does not actually support high resolutions.
- 22050 Hz sounds are played back at 11025 Hz, making them sound slowed down.
External links[edit]
- WinDoom June 1994 beta builds at Doomworld/idgames
- WinDoom April 13, 1995 beta build at Doomworld/idgames
Sources[edit]
- This article incorporates text from The Cutting Room Floor article Proto:Doom (PC, 1993)/WinDoom.
Notes[edit]
- ↑ Some sources also list Chris Hecker as the port developer, but he is never credited in any known Doom for Windows build, so it is probably a mixup since WinG and WinDoom were developed in parallel.
- ↑ The leaked version released by the group SCOTCH was released on August 3, 1994 which is the same day id Software also reported having received a beta build, so it is likely the same beta build.
- ↑ The modify date of the ZIP file on the Microsoft FTP also matches September 23, 1994. The commonly stated date of September 21, 1994 seems to be based on the installer file timestamps.
- ↑ This was eventually renamed to DirectX.
- ↑ Alex St. John stated in the Shacknews article that other developers joined the project only after McCormick had passed away, but McCormick was still active in Usenet in June 1995.
References[edit]
- ↑ 1.0 1.1 St. John, Alex (2 May 2022). "...Robert Hess worked very hard to make WinDoom work as well as it did. At 12fps John Carmack considered the video tearing in Windows to be unacceptable and we couldn't synchronize the sound with the video..." Twitter. Retrieved 3 May 2022.
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 Craddock, David (13 November 2020). "The Power of X." Shacknews. Retrieved 10 July 2026.
- ↑ CVG Staff (28 September 2007). "Creative Minds: Gabe Newell." CVG (archived 🏛). Retrieved 29 April 2021.
- ↑ 4.0 4.1 McCormick, Bill (16 June 1994). ""WinDOOM (Microsoft Speaks)"." Retrieved 10 July 2026.
- ↑ 5.0 5.1 mm3guy (21 August 2009). "Gabe Newell Interview." Garry's Mod. Retrieved 10 July 2026.
- ↑ 6.0 6.1 6.2 6.3 6.4 McCormick, Bill (4 May 1994). "Pegasus Functional Specification"
- ↑ 7.0 7.1 Hecker, Chris and Blossom, Jon (22 April 1994). "WinG - A DLL for High Performance Game Graphics." Retrieved 11 July 2026.
- ↑ Blossom, Jon. (June/July 1995). A C++ Class for Cross-Platform Double-Buffered Graphics. Game Developer Magazine, June/July 1995, p34.
- ↑ "Stephen Dennis." LinkedIn. Retrieved 13 July 2026.
- ↑ Hecker, Chris. (September 1994). A Whirlwind Tour of WinG. Game Developer Magazine, September 1994, p15.
- ↑ 11.0 11.1 11.2 11.3 Microsoft Corporation (26 April 1994). "Press Release: Microsoft Gets Serious About Fun In Chicago." Retrieved 11 July 2026.
- ↑ Saunders, Alec (23 April 1994). "WinDoom." Retrieved 10 July 2026.
- ↑ 13.0 13.1 Ericson, Ross (20 July 1994). "The 1994 Computer Game Developers Conference." Game Bytes Magazine. Retrieved 10 July 2026.
- ↑ Barris, Robert (29 April 1994). "Re: WinDoom." Retrieved 10 July 2026.
- ↑ Leukart, Hank (30 August 1994). "The "Official" DOOM FAQ v5.8."
- ↑ McCormick, Bill (20 June 1994). "Re: Doom for Mac et. al." Retrieved 10 July 2026.
- ↑ id Software Staff (3 August 1994). "Status of DOOM ports." Retrieved 12 July 2026.
- ↑ Hecker, Chris (23 September 1994). "WinG 1.0 Released." Retrieved 11 July 2026.
- ↑ Heaney, Steve (29 September 1994). "What's New on FTP.MICROSOFT.COM -09/29/94-." Retrieved 11 July 2026.
- ↑ Drummond, Michael (1999). Renegades of the Empire: How Three Software Warriors Started a Revolution Behind the Walls of Fortress Microsoft. Three Rivers Press. ISBN 0-609-80745-5.
- ↑ Martin, Sean (8 February 1995). "WinDOOM." Retrieved 12 July 2026.
- ↑ 22.0 22.1 Kirby, Neil (1 May 1995). "Re: My Report From CGDC." Retrieved 10 July 2026.
- ↑ Retro Reversing Staff (23 November 2024). "Game Developers Conference (GDC) - Full list of historical sessions."
- ↑ Dr. Dobb's Staff (1 July 1995). "Of Interest." Dr. Dobb's Journal.
- ↑ Doom for Windows 1995-04-13 Build Credits
- ↑ NetDoom for Windows 1995-04-11 Credits
- ↑ GT Interactive Staff (11 May 1995). "GT Interactive - Corporate Information." Retrieved 10 July 2026.
| Source code genealogy | ||
|---|---|---|
| Based on | Name | Base for |
| Doom v1.8 | WinDoom | Doom95 |
