Terminal Quake 2 - Porting Quake 2 to QUAKE Wars

Arne Olav Hallingstad
15th December 2007

Port of Quake 2 to the QUAKE Wars engine.

Mod (created using the 1.2 SDK): Terminal Quake 2 V1.zip
Doom and Quake 2 are GPL'ed, source code is available upon request.
== Terminal Quake 2 for QUAKE Wars ==

23. December 2007
- Packaged release
- gamex86.dll now includes the complete Doom and Quake 2 source code (Doom is broken), release version file size went
  from 7389KB to 8212KB.
- Improved how the GUI fits on the screen while in locked view.
- Added loading/splash screen image.

18. December 2007
- Fade Quake 2 sounds based on distance to GUI if player is not in locked view.
- Fixed not returning QW sound volume on shutdown while in locked view.
- Fixed staying in locked view when focus UI was NULL because player crouched while locking on.

16. December 2007
- Next steps: Play all sounds on the GUI unless you are in locked view.
- Added support for dynamically changing the Quake 2 resolution to anything up to 1600x1200.

15. December 2007
- Added key/mouse input support and support for locked view while playing.
- Rendering Quake 2 to a Quake Wars image now works!
- Added support for using a palette, creation of video buffer at run-time.
- Code cleanup and changes since Terminal Doom implementation.

14. December 2007
- Next steps: Don't create a separate window for Quake 2, create the back buffer/front buffer for use by Quake Wars.
- Statically link the software rasterizer, don't have to think about people accidentally loading the unmodified ref_soft.dll.
- Creates a separate Quake 2 window just as it normally would, all console output is seen in the Quake Wars console.
- Runs the init/main loop functions fine, loads Quake 2 pak files fine.

13. December
- Quake 2 added to game class factory.
- Added the required guis/load screen/materials/scratch textures/map/console entity.
- Pulled the functions Draw/GetViewPos/IsPlaying into the parent class of aoDoom as they were generic enough to be used by both Doom and Quake 2.
- Split Quake 2 code into an init function and a main loop function.
- Quake 2 EXE project intergrated into etqw sdk, compiles and links. Does not run any Quake 2 code.
- Started Quake 2 Terminal project. Based off of Doom Terminal project.


Final screenshots

Uploading Quake 2 back buffer to a QUAKE Wars texture.

Fixed all palette issues.

The width is now correct.

The software rasterizer has been made a statically linked library in QUAKE Wars. Uploads the Quake 2 back buffer to a QUAKE Wars texture, but I have not solved the issue of Quake 2 using palette. That's why the height is correct, but the width is 1/4th of what it should be.

Quake 2 file system successfully loads the required pak files.

Quake 2 executable running as part of QUAKE Wars.


Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.