A fork of the discontinued VKDoom with a few missing fixes.
  • C++ 71.9%
  • C 20.1%
  • ZenScript 5.8%
  • Yacc 0.6%
  • CMake 0.5%
  • Other 0.8%
Find a file
Marcus Minhorst 2a5cce543b
Gamepad Improvements
* Cleanup: Alignment, long lines, Replace 0 with SDLK_UNKNOWN

* Gamecontroller api analogue input

* Added some button handling

* Added mapping for other buttons

* Added trigger events

* Added force_joystick flag

* Removed force_joystick flag

Rationale:
1. It was actually broken lol
2. I cannot think of a case where enabling this would be a useful thing for
gzdoom. If the user is using a gamecontroller, it is pointless. If they are
not using a gamecontroller, it will just default to using the joystick api.
If they are not using a gamecontroller, but SDL thinks they are, it is an
SDL bug, and will be reported and fixed

* Modified default mapping

* Added analogue to digital threshold

* Added analogue response curve

* Per axis settings

* Fixed controller reconnect

* Added threshold and curve to IJoystickConfig
Enabled saving of settings

* Added stubs

* Cleanup

Constants are no longer defines.
Constants are mostly shared between backends.
Moved some logic to m_joy

* Implemented xinput stubs

* Implemented dinput stubs

* Implemented ps2 stubs (untested)

* Fixed inclusive check

* Implemented osx stubs (untested)

* Fixed curve implementation

No longer savable, I screwed the curve function up.
I though it needed 2 control points, but it needs 4.
Need to re-do controller settings :(

* Now using CubicBezier struct

* Fixed SetDefaultConfig to match xinput behavior

* Expanded gamepad CCMD

* Rename enum JoyResponseCurve to EJoyCurve

* Initial menu implementation

* Fixed SDL controller setting saving

* SDL gamepads can now actually be disabled

* Fixed initial controller connect of some versions of SDL

* Spelling error

* Enable gamepad by default

* Fixed segfault on some versions of SDL

* Only block keydown
2025-07-05 17:41:40 -03:00
.devcontainer Added GitHub CodeSpaces development environment. 2023-01-24 07:19:45 -05:00
.github Set correct git tag in CI 2025-06-24 07:46:30 -04:00
bin/windows added CVAR to select the preferred MOD player and SNDINFO option to set it per song. 2024-10-05 12:37:55 +02:00
cmake - add linux build script 2024-01-31 18:50:36 -05:00
docs update DUMB license from zmusic source. 2025-01-10 17:18:44 +01:00
fm_banks Updated the WOPN banks collection 2023-01-02 08:19:11 +01:00
libraries Update to latest ZWidget version 2025-06-18 14:47:03 -03:00
soundfont - update soundfont 2023-09-26 05:56:22 -04:00
specs Lightmap parsing update 2025-06-12 19:28:23 -03:00
src Gamepad Improvements 2025-07-05 17:41:40 -03:00
tools Fixed conflicting int defs under solaris 2025-06-24 21:22:55 -03:00
unused - move appimage workflow to unused/ 2024-11-12 06:34:26 -05:00
wadsrc Gamepad Improvements 2025-07-05 17:41:40 -03:00
wadsrc_bm - removed obsolete CMake version requirements. 2023-09-03 09:04:17 +02:00
wadsrc_extra - language update 2025-02-22 12:03:07 -05:00
wadsrc_lights fix gldefs and decaldef being inverted 2025-05-06 22:10:28 -03:00
wadsrc_widepix - removed obsolete CMake version requirements. 2023-09-03 09:04:17 +02:00
.gitattributes - fix icon in .gitattributes, it must always be checked out as binary 2021-09-21 11:52:36 -04:00
.gitignore Add crash log file to .gitignore 2024-04-12 07:13:15 +02:00
AppImageBuilder.yml - add recipe files for appimagebuilder 2023-08-03 13:21:20 -04:00
auto-setup-linux.sh - add linux build script 2024-01-31 18:50:36 -05:00
auto-setup-windows-arm.cmd - add arm setup cross compiler (requires x64 precompiled version in build/) 2024-01-08 08:19:52 -05:00
auto-setup-windows.cmd - update copyright in windows build script 2024-01-31 19:10:32 -05:00
CMakeLists.txt Added missing Solaris checks 2025-06-24 21:22:55 -03:00
LICENSE - add LICENSE file for GitHub's info displays 2018-07-21 07:03:52 -04:00
options.checklist - sprite lightlevel cleanup and fixes. 2022-06-01 08:37:13 +02:00
README.md Update README.md 2025-02-28 02:38:42 -05:00
vcpkg.json Embed libwebp and remove it from vcpkg since the package broke over night (GGs package managers) 2024-04-11 13:59:59 -04:00

Welcome to GZDoom!

Continuous Integration

GZDoom is a modder-friendly OpenGL and Vulkan source port based on the DOOM engine

Copyright (c) 1998-2025 ZDoom + GZDoom teams, and contributors

Doom Source (c) 1997 id Software, Raven Software, and contributors

Please see license files for individual contributor licenses

Special thanks to Coraline of the EDGE team for allowing us to use her README.md as a template for this one.

Licensed under the GPL v3

https://www.gnu.org/licenses/quick-guide-gplv3.en.html

How to build GZDoom

To build GZDoom, please see the wiki and see the "Programmer's Corner" on the bottom-right corner of the page to build for your platform.

Resources