Guide: GZDoom

GZDoom is the open source source port / game engine for ID Software's older games like DOOM, DOOM2, HEXEN and HERETIC or it's own unique games.
GZDoom Links
![]()
| Resource | Link |
|---|---|
| GZDoom - Github | Link |
| UZDoom - Github | Link |
| ZDoom - Forums | Link |
| ZDoom - Web Page | Link |
Where to put the games?
DOOM games should be put under the retrodeck/roms/doom/ directory.
What file formats does GZDoom support?
| File Type | What is it? | Comments |
|---|---|---|
| .doom | RetroDECK DOOM parser file | Use it with other files (recommended) |
| .wad | Doom level resource file | Where's All the Data? |
| .iwad | Internal WAD file | |
| .pwad | Patch WAD file | Has priority over .wad |
| .kpf | KEX Engine zip replacement | |
| .pk3 | Enhanced engine zip container | .zip file archive |
| .ipk3 | Internal pk3 | |
| .pk4 | id Tech 4 zip container | .zip file archive |
| .pk7 | 7-Zip compressed container | .7zip file archive |
| .pke | Eternity Engine mod zip | Made for the Eternity Engine |
| .epk | EDGE Engine mod zip | Made for the EDGE engine |
| .deh | DeHackEd file | Edits hardcoded parts of the DOOM engine |
| .bex | Enhanced DeHackEd file | Has more features than .deh and used by various ports |
| .lev | Level renaming file | Renames levels of a .pwad |
| .lmp | Doom data unit | |
| .mus | Doom music file | Used by DOOM, Heretic, Hexen and Strife |
Does GZDOOM require BIOS or Firmware?
![]()
No. GZDoom does not require any BIOS or firmware files.
However, you do need copies of the official DOOM game data (WAD files) or you can use Freedoom.
Where to buy official DOOM?
Below is a combined table containing both Steam and GOG purchase links for all relevant DOOM titles.
| Game / Bundle | Steam Link | GOG Link |
|---|---|---|
| DOOM Classic Bundle | Steam | - |
| DOOM + DOOM II | Steam | GOG |
| DOOM 64 | Steam | GOG |
Note: DOOM + DOOM II is sufficient for use with GZDoom. Additional titles are optional; however, DOOM 64 is required for certain mods. Purchasing the Classic Bundle may be more cost-effective.
Freedoom
Freedoom is a free, open-source project that provides all the game data needed to create a fully playable game using the Doom engine.
It is compatible with most community-made levels, graphics, music, and mods created for the original DOOM games.
Website: Freedoom
Directory structure
![]()
| Type | Directory | Comment |
|---|---|---|
| Audio FM Banks Storage | retrodeck/storage/gzdoom/audio/fm_banks/ |
|
| Audio Soundfonts | retrodeck/storage/gzdoom/audio/soundfonts/ |
|
| BIOS | retrodeck/bios/gzdoom/ |
|
| Config | ~/.var/app/net.retrodeck.retrodeck/config/gzdoom/ |
gzdoom.ini |
| Data | ~/.var/app/org.retrodeck.retrodeck/data/gzdoom/ |
|
| ROMs | retrodeck/roms/doom/ |
|
| Saves | retrodeck/saves/wiiu/doom/ |
What IWADs is GZDoom looking for?
The IWADs GZDoom requires to run are listed below:
| File | What is it? | Comments |
|---|---|---|
| ACTION2.WAD | Action Doom 2: Urban Brawl | |
| BLASPHEM.WAD | Blasphemer | |
| CHEX.WAD | Chex Quest | |
| CHEX3.WAD | Chex Quest 3 | |
| DELAWEARE.WAD | Delaweare | |
| DOOM.WAD | Doom - Shareware | |
| DOOM1.WAD | Doom | |
| DOOM2.WAD | Doom II: Hell on Earth | |
| DOOM2F.WAD | Doom II French | |
| DOOM64.WAD | Doom 64 | Needs to be Patched |
| DOOM_COMPLETE.PK3 | WadSmoosh Merged Doom | |
| FREEDOOM1.WAD | Freedoom Phase 1 | |
| FREEDOOM2.WAD | Freedoom Phase 2 | |
| FREEDM.WAD | Freedoom Deathmatch | |
| HEXDD.WAD | Hexen: Deathkings of the Dark Citadel | Needs HEXEN.WAD to play |
| HEXEN.WAD | Hexen: Beyond Heretic | |
| HACX.WAD | HACX | |
| HARM1.WAD | Harmony | |
| HERETIC.WAD | Heretic: Shadow of the Serpent Riders | |
| HERETIC1.WAD | Heretic - Shareware | |
| PLUTONIA.WAD | Plutonia Experiment | |
| ROTWB.WAD | Rise Of The Wool Ball | |
| SQUARE1.PK3 | The Adventures of Square | |
| STRIFE0.WAD | Strife - Shareware | |
| STRIFE1.WAD | Strife | |
| TNT.WAD | TNT: Evilution | |
| VOICES.WAD | Strife Voices | Needs STRIFE1.WAD to be used |
| WADSMOOSH+.IPK3 | WadSmoosh+ Merged Doom |
Where can I find more WADs?
Non-official WADs (mods) are available across the internet on old forums, GitHub, and various websites.
Here are some popular sources:
| Source | Description | Link |
|---|---|---|
| Doomworld | Oldest DOOM community; hosts the annual Cacowards. | Doomworld: Cacowards |
| Doomworld | Large collection of WAD files. | Doomworld: Files |
| Doomworld | Legacy repository of user-submitted WADs. | Doomworld: ID Games (Legacy) |
| Doomworld | Community forum for discussion, help, and mods. | Doomworld: Forum |
| Doomwiki | Wiki listing notable WADs and mods. | Doomwiki: List of notable WADs |
| ModDB | Modding community with many DOOM mods. | ModDB: DOOM Mods |
GZDoom Controls
Known Issues
- Multiple controllers for local multiplayer don't work well due to bugs between GZDoom and Steam Input.
- Set the primary controller as player one, especially if using an external controller with the Steam Deck. This prevents input loops.
- Avoid pressing "Save configur## Where to put the games?
WiiU games should be put under the retrodeck/roms/wiiu/ directory.
ation" in the GZDoom options menu if you have mods that add extra controls, as it will wipe those extra controls. Inputs will still be saved without pressing save.
Standard Controls
The controls are semi-based on the inputs from Timesplitters: Future Perfect for the PlayStation 2 and are described as an Xbox Layout style controller.
| Action | Button | Comment |
|---|---|---|
| Primary Fire | R2 |
|
| Secondary Fire | R1 |
|
| Action / Open | A |
|
| Jump | B |
|
| Reload | Y |
|
| Crouch | X |
|
| Quick Turn | R3 |
|
| Run Toggle | L3 |
|
| Main Menu | Start |
|
| Open Map | Select |
|
| Use Item | Dpad - Down |
|
| Select Item | Dpad - Up |
|
| Swap Next Weapon | Dpad - Right |
|
| Swap Previous Weapon | Dpad - Left |
|
| Movement: Forward / Back + Strafe | Left Joystick |
|
| Movement: Look Up / Down + Turn | Right Joystick |
Mod Controls - Extras
Optional extra binds for certain Project Brutality or Brutal Doom based mods.
| Action | Button | Comment |
|---|---|---|
| Quick Melee / Special Action | L1 |
|
| Throw Grenade / Second Special Action | L2 |
Replaces Zoom (most DOOM mods use Secondary Fire for this anyhow) |
| Dash | R3 |
Replaces Quick Turn |
The Mod Needs More Inputs
Many mods have more inputs than what is bindable on a controller. L1, L2, Dpad - Up, Dpad - Down are mostly free for those types of actions.
- Bind
L1andL2to more action-oriented things you need to use more often. - Use
Dpad - Up,Dpad - Downfor things you use less often, like Extra Menus. - If it is a new movement type that can replace quick turn, bind it on
R3and replace Quick Turn or either of theL1orL2.
You are also free to change any of the default binds shipped by RetroDECK, and if you mess something up, you can always reset GZDoom via the Configurator.
I have bought the games how do I get my files?
Read the:
I want to play doom with mods
Read the:
RetroDECK .doom file for modding
WadSmoosh+ and WADSMOOSH+.IPK3
wadsmoosh+.ipk3 is the file generated by WadSmoosh+.
WadSmoosh+ merges DOOM, DOOM II, and all supported official add-ons into a single unified IPK3, allowing you to select any campaign without loading individual WADs.
This makes using mods and switching between episodes much easier.
How to create: wadsmoosh+.ipk3
- Download the latest release of WadSmoosh+.
- Place all required WAD files into the
source_wadsfolder. - Run the script from a terminal:
./wadsmoo.sh. - Check logs for errors and accommodate.
- Move the file
wadsmoosh+.ipk3into the roms/doom folder.
Wads supported by WadSmoosh+
| WAD File | Category / Source | Description |
|---|---|---|
| attack.wad | Master Levels for Doom II | Master Levels: Attack |
| betray.wad | Xbox Doom Bonus Levels | Xbox-exclusive bonus map. |
| blacktwr.wad | Master Levels for Doom II | Master Levels: Black Tower |
| bloodsea.wad | Master Levels for Doom II | Master Levels: Bloodsea Keep |
| canyon.wad | Master Levels for Doom II | Master Levels: Canyon |
| catwalk.wad | Master Levels for Doom II | Master Levels: The Catwalk |
| combine.wad | Master Levels for Doom II | Master Levels: The Combine |
| doom.wad | Doom / Ultimate Doom | Original Doom IWAD. |
| doom2.wad | Doom II | Original Doom II IWAD. |
| doom2bfg.wad | Doom II BFG Edition | BFG Edition extra content. |
| doom2unity.wad | Unity Doom II | Unity version of Doom II (rename doom2.wad ➝ doom2unity.wad). |
| doom3do.wad | Doom 3DO Soundtrack | 3DO music WAD. |
| doomunity.wad | Unity Doom | Unity version of Doom (rename doom.wad ➝ doomunity.wad). |
| doomzero.wad | Doom Zero | Unity-released megawad. |
| extras.wad | Unity Add-ons | Bonus assets for Unity ports. |
| fistula.wad | Master Levels for Doom II | Master Levels: The Fistula |
| freedoom1.wad | Freedoom Phase 1 | Free replacement Doom IWAD. |
| freedoom2.wad | Freedoom Phase 2 | Free replacement Doom II IWAD. |
| garrison.wad | Master Levels for Doom II | Master Levels: The Garrison |
| geryon.wad | Master Levels for Doom II | Master Levels: Geryon: 6th Canto of Inferno |
| hell2pay.wad | Hell To Pay | Commercial total conversion. |
| id1.wad | Legacy of Rust (KEX re-release) | Extra IWAD-style file. |
| id1-res.wad | Legacy of Rust (KEX re-release) | Resource file. |
| id24res.wad | Legacy of Rust (KEX re-release) | Resource file. |
| iddm1.wad | Legacy of Rust (KEX re-release) | Deathmatch pack. |
| jptr_v40.wad | The Lost Episodes of Doom | Early commercial fan episodes. |
| manor.wad | Master Levels for Doom II | Master Levels: Titan Manor |
| mephisto.wad | Master Levels for Doom II | Master Levels: Mephisto’s Maosoleum |
| minos.wad | Master Levels for Doom II | Master Levels: Minos’ Judgement |
| neis.wad | No End in Sight | Ultimate Doom megawad. |
| nerve.wad | No Rest for the Living | Official Doom II episode. |
| nessus.wad | Master Levels for Doom II | Master Levels: Nessus |
| paradox.wad | Master Levels for Doom II | Master Levels: Paradox |
| perdgate.wad | Perdition's Gate | Commercial add-on. |
| pl2.wad | Plutonia 2 | Fan-made Plutonia sequel. |
| prcp.wad | Plutonia Revisited | Community Plutonia project. |
| plutonia.wad | Final Doom | Plutonia IWAD. |
| sewers.wad | Xbox Doom Bonus Levels | Xbox-exclusive bonus map. |
| sigil.wad | Sigil | Romero’s Episode 5: Sigil. |
| sigil2.wad | Sigil II | Romero’s followup to Sigil. |
| sigil_shreds.wad | Sigil (Music Add-on) | Optional enhanced soundtrack. |
| subspace.wad | Master Levels for Doom II | Master Levels: Subspace |
| subterra.wad | Master Levels for Doom II | Master Levels: Subterra |
| teeth.wad | Master Levels for Doom II | Master Levels: The Express Elevator to Hell + Bad Dream |
| tnt.wad | Final Doom | TNT IWAD. |
| tnt2_beta6.wad | TNT: Devilution | Fan-made TNT sequel. |
| tntr.wad | TNT: Revilution | Community TNT sequel. |
| ttrap.wad | Master Levels for Doom II | Master Levels: Trapped on Titan |
| vesperas.wad | Master Levels for Doom II | Master Levels: Vesperas: 7th Canto of Inferno |
| virgil.wad | Master Levels for Doom II | Master Levels: Virgil’s Lead: 3rd Canto of Inferno |
Cheats
Classic Doom I & II Cheats
| Cheat Code | Effect | Comments |
|---|---|---|
iddqd |
God Mode (Invulnerability) | |
idkfa |
All Weapons + Ammo + Keys | |
idfa |
All Weapons + Ammo (no keys) | |
idclip |
No Clipping (walk through walls) | |
iddt |
Full Automap | |
idchoppers |
Chainsaw | |
idclev XX |
Warp to Level (Doom I: E#M#, Doom II: ##) | |
idmypos |
Show Coordinates & Angle | |
idbeholdv |
Invulnerability Power-Up | |
idbeholds |
Berserk (Strength) | |
idbeholdi |
Partial Invisibility | |
idbeholdr |
Radiation Suit | |
idbeholda |
Automap Power-Up | |
idbeholdl |
Light Amplification Goggles |
GZDoom-Specific Console Commands
| Command | Effect | Comments |
|---|---|---|
~ / console |
Open Developer Console | |
god |
God Mode | |
noclip |
No Clipping | |
give all |
All Weapons/Items | |
give ammo |
Max Ammo | |
give keys |
All Keys | |
map mapname |
Load Specific Map (e.g., map map07) |