Guide: LZDoom for RG351 Devices

Last updated: 19JUN2021 (see Changelog for details)

The ArkOS operating system for the RG351P now supports LZDoom, which opens up a bunch of possibilities when it comes to DOOM mods. So let’s look at how to set up your system for maximum fun. Note that LZDoom is supported on other devices that can run ArkOS, like the RK2020 and RGB10/RGB20, although these devices have only one analog stick, so it might not be as nice of an experience.

As of June 2021, LZDoom is also available on the 351ELEC firmware, which means you can use this guide for that operating system, too. See my 351ELEC section below.

Table of Contents
First things first
Acquire the retail WADs
Loading WADs onto your RG351P
One shell script to rule them all
Advanced features
351ELEC guide
Where to find DOOM mods
Tips and tricks

Changelog

First things first

What is LZDoom? It is a source port of DOOM for the modern era, allowing you to play classic Doom games as well as games based on the DOOM engine (Heretic, HeXen, Strife, and Chex Quest), and most importantly, very advanced mods. LZDoom is forked from ZDoom, which was a DOOM program that was later replaced by the most current version, known as GZDoom. LZDoom stands for “Legacy ZDoom” and is optimized for older or less powerful hardware. Which makes it a great fit for the RG351P!

Why should you be excited about LZDoom? Well, for starters, the program itself has a lot of features that aren’t available in the current DOOM port (an emulated RetroArch core). You can fine-tune the user experience while playing the game, to include looking up and down, jumping, crouching, adjusting the HUD, and more. But perhaps more importantly, LZDoom has robust DOOM mod support, to include .pk3 files. This means that some of the most groundbreaking and impressive DOOM mods are now available on this tiny but mighty handheld device.

To date, only ArkOS has added LZDoom to its operating system, so if you want to play these games, you’ll need to load that operating system onto your device. If 351ELEC does add it to their firmware, I will update this guide. For more information on these different firmwares, check out my RG351P Firmware Comparison Guide.

Acquire the retails WADs

In order to run DOOM, you will need its retail .wad files. You can buy them for relatively cheap from GOG.com or Steam. They frequently go on sale, and you can usually grab them for a couple bucks each. Once you have purchased these games, install them to your computer and extract the .wad files from their install location.

Loading WADs onto your RG351P

Loading .wad files directly onto your device is very simple. Plug the device’s microSD card into your computer, and then navigate to the EASYROMS/doom folder, and drop them in there. You can name the DOOM and DOOM 2 WAD files whatever you want, I just use Doom.wad and Doom2.wad. You can do the same with other games or official add-ons that use the DOOM engine, such as Heretic, HeXen, Strife, Chex Quest, TNT: Evilution and The Plutonia Experiment. When you boot up your device, navigate to the DOOM folder in your menu and you should see all of these files appear.

Furthermore, some DOOM mods are stored as .wad files, and these can be loaded directly as well. These include mods that use DOOM 1 as its base game, such as REKKR and SIGIL. These work because by default, when you try and load a DOOM WAD file in ZDoom, it will load the first DOOM game as its base and then load the mod file. This won’t work for DOOM mods that use DOOM II as its base game, but we’ll cover that in a second.

One shell script to rule them all

For all other games and mods that won’t boot directly in LZDoom, you will need to use a simple shell script to tell LZDoom how to load the game. It sounds intimidating, but it’s actually very simple. We’ll start with Brutal DOOM, a very popular mod that adds all sorts of visual and sound effects to the original DOOM games (plus a cubic ton of gore/mayhem).

  • To start, download the Brutal DOOM .pk3 file from ModDB and place it in the EASYROMS/doom folder on your microSD card.
  • Open up a text editor on your PC or Mac, such as Notepad or TextEdit. Paste in the following script:
/opt/lzdoom/lzdoom -iwad /roms/doom/Doom.wad -file /roms/doom/brutalv21.pk3
  • In the script above, make sure that the “Doom.wad” name fits your DOOM WAD file name, and that the brutalv21.pk3 file name also matches.
  • Save the file as “Brutal Doom.sh” (in Windows, be sure to select “All Files (“.”)” under the “Save as type” option in the menu).
  • That’s it! When you boot up your device again, the Brutal Doom.sh file will be a bootable file.

For some mods, you will need to add other parts to this script. For example, if you have a DOOM mod that uses multiple files, like Aliens Eradication, you will want to stack the files into the code, like this:

/opt/lzdoom/lzdoom -iwad /roms/doom/Doom.wad -file /roms/doom/ALIENSERADICATIONTC.pk3 /roms/doom/ERADICATIONMAPSET.wad

In general, you want to list the .pk3 or .wad file first, then the follow-on files.

But if you notice, Aliens Eradication has a .wad file. And if you remember from the previous section, the EASYROMS/doom folder is set to load any .wad file it finds in there. So that means if you put that .wad file in the main EASYROMS/doom folder, you’ll see “ERADICATIONMAPSET” as a bootable option in your menu, which a) is ugly and b) won’t boot anyway. So there’s an easy fix for this: make an EASYROMS/doom/mods folder, and put all of your unwanted .wad files in there. You will need to re-write your code to include the /mods/ directory in your code, like so:

/opt/lzdoom/lzdoom -iwad /roms/doom/Doom.wad -file /roms/doom/ALIENSERADICATIONTC.pk3 /roms/doom/mods/ERADICATIONMAPSET.wad

Technically, you could do this for all of your mod files, to include your .pk3 files, in order to clean things up. That way, your main EASYROMS/doom folder will only contain the original retail DOOM wads, those that can boot directly in LZDoom (like Heretic, etc.), and your .sh files to boot each game. It’s all up to you — in the video above I only put the extraneous .wad files in the /mods/ folder, but since then I’ve actually moved all of my mod files into that folder. I’ve also been told that you can actually rename your .wad files to .pk3 files and they still boot up fine, so you could go that route, too.

Lastly, if you have any DOOM mods that use DOOM II as its base game, or mods that use extra mod files (like .deh or .bex files), you can account for those in the code. For example, let’s use Batman DOOM, which is based on DOOM II and also uses a .deh file.

/opt/lzdoom/lzdoom -iwad /roms/doom/Doom2.wad -file /roms/doom/mods/batman.wad -deh /roms/doom/mods/batman.deh

For more information on how to implement the command line parameters, check out this guide.

Advanced features

If you want to set up unique settings/configurations for each DOOM mod, you can create a unique .ini for each game in the .sh file. Here is the code:

-config /roms/doom/name-of-mod.ini 

Similarly, you can also create unique save locations for each mod, so that you don’t overwrite your saves between the various mods:

-savedir /home/ark/.config/lzdoom/name-of-mod_saves

So all told, this is what the full code would look like for something like Brutal Doom:

/opt/lzdoom/lzdoom -iwad /roms/doom/Doom.wad -file /roms/doom/brutalv21.pk3 -config /roms/doom/Brutal_Doom.ini -savedir /home/ark/.config/lzdoom/Brutal_saves

351ELEC guide

In June 2021, 351ELEC added LZDoom support to their firmware. The gameplay is a bit choppier than on ArkOS, the graphics effects are muted, and the sound seems to be off, but overall it’s a nice addition to the firmware. The setup is a little different, so here we go:

After updating to the Crazy Hedgehog (June 2021) update or later, you will find a folder named “doom” in your GAMES partition. Within this folder, make two subfolders: “iwads” and “mods”. Inside your iwads folder, add your retail wads (such as Doom.wad, Heretic.wad, SIGIL.wad, etc.). In the mods folder, add your mods (typically in .wad or .pk3 format).

To boot these games, you will want to create a text file with a “.doom” file extension, and put it in the main doom folder. For example, to run the original DOOM, create a file named Doom.doom, and use a text editor to write this code inside the file:

IWAD=/storage/roms/doom/iwads/Doom.wad
-- end --

As you can see, the text is very simple: you just point the .doom file to the retail wad.

To run a mod, it’s a tiny bit more complicated, since you are pointing the .doom file to both the mod file and the retail wad that is used as the base game. You would use this format:

IWAD=/storage/roms/doom/iwads/Doom.wad
MOD=/storage/roms/doom/mods/bdlite.pk3
-- end --

And it’s as simple as that. If you have multiple mod files, just create a new “MOD=” line and stack them. The order of the mods does matter, so you may have to experiment to get it working properly.

Now in your 351ELEC menu you should see all of the .doom file you created, and can launch them directly from the menu.

One note is that the controls are not properly configured. I recommend going into the Joystick controls settings and adjusting the axes to fit this model:

Axis 1: STRAFING
Axis 2: MOVING FORWARD
Axis 3: TURNING
Axis 4: LOOKING UP AND DOWN

You’ll also want to map the buttons themselves.

Where to find DOOM mods

This list is by no means comprehensive, but this is where I look for DOOM mods. There are also plenty of great YouTube videos out there that will showcase some of the most impressive mods.

ModDB (Doom mods sorted by most popular)
ModDB (Doom II mods sorted by most popular)
DOOMWorld ā€“ Best mods of the year lists
DOOMWorld (Doom mods)
DOOMWorld (Doom II mods)
DoomWorld community Top WADs of all time

DOOM games and mods used in my video:
Heretic
HeXen

Plutonia Experiment
SIGIL
Chex Quest (available via abandonware sites)
Brutal Doom Lite
Brutal Doom v21
Call of Doom (Vanilla)
Call of Doom (Brutal)
Aliens Eradication
DOOM: The Golden Souls
The Adventures of Square

Another recent discovery was the DOOM 4 Vanilla mod. This gives you all of the weapons, enemies, and items from the 2016 version of DOOM. It comes with a .wad and .deh file, just like Batman DOOM, and here is the ArkOS .sh script for the files (note that I put both the .wad and .deh files in the “mods” subfolder):

/opt/lzdoom/lzdoom -iwad /roms/doom/Doom.wad -file /roms/doom/mods/D4V.wad -nodeh -deh /roms/doom/mods/D4V.deh

Tips and tricks

  • To disable looking up and down, go into Joystick Options, select the “opensimhardware” controller, then for Axis 4, turn it from “looking up/down” to “none”.
  • If you’re interested in combining all of your DOOM retail WADs (and SIGIL) into a single file, check out the handy WadSmoosh tool.

Playing a first-person shooter game like DOOM with dual analog sticks can sometimes be challenging. Luckily, there are a couple things you can do to enhance your gameplay experience:

  • Thumb grips – these thumb grips from Skull & Co are a cheap way to provide more precision to your gameplay.
  • External gamepad – although ArkOS doesn’t support external gamepads out of the box, LZDoom does. So if you use this 8BitDo USB wireless adapter (set in X-Input mode) and pair it with a modern gamepad like the PS4, Nintendo Switch Pro, or Xbox One controller, you can play this game with that controller instead.
  • 3D printed grip – you could buy one of these grips and convert your device into a true gamepad. Or if you have your own 3D printer, you could make your own.

Changelog

19JUN2021
– added 351ELEC instructions

17JAN2021
– added WadSmoosh link

12JAN2021
– added wording about changing .wad files to .pk3 files

04JAN2021
– added instructions on how to turn off looking up and down

03JAN2021
– published guide
– added DOOM 4 Vanilla mod

24 thoughts on “Guide: LZDoom for RG351 Devices

  1. Would you mind tweaking this guide for those of us who don’t care for Brutal Doom for whatever reason, but still want easy-ish WAD and mod loading?

    Like

    1. Hi, this guide should provide all the fundamental tools to add any WAD, not just Brutal Doom, which I used for an example at one point. Each of the shell scripts are applicable in other mods, and near the bottom of the post there are links to find all sorts of non-Brutal Doom mods. Let me know if there are any particular mods you’re looking for and I can see what I can do.

      Like

  2. Brutal Doom COD has actually triggered my PTSD! I’m a Vet, and I tinker on these handhelds to pass the time. I’ve spent most of today configuring various Doom mods through Retro Arch, then I got this bit of news in my inbox! I immediately followed Russ’ instructions, and got some awesome mods running (Army of Darkness Heretic was awesome.) I started testing a few, and then I tried COD Doom! The claxons blaring and all the shooting made my heart start racing, and I went into a panic attack! It’s funny now, but dang! It’s a good thing I’ve never played the real Call of Duty, I’d be back in the hospital! I’m going to try the Doom/Animal Crossing mod now… Maybe Isabelle won’t scare me too bad. Thanks Russ! I’m tickled as a pickle with all the things I can do on ArkOS, and I really appreciate your tutorial videos.

    Like

  3. Thanks so much for this guide! I can finally play chex quest 3, the best way to play chex quest.

    I’d never heard of the adventures of square. Looks interesting! May I ask how you loaded it in lzdoom? I tried creating an .sh file that looks like /opt/lzdoom/lzdoom -iwad /roms/doom/square1.pk3, but arkOS just spits me back out on the doom menu when I try to load it that way. I’m sure the sh file is pointing to the right file. Any tips? Thank you!

    Like

    1. Hi Daniel, here you go:

      /opt/lzdoom/lzdoom -iwad /roms/doom/Doom.wad -file /roms/doom/mods/square1.pk3

      It looks like you’re missing the reference to the retail Doom wad, which is still required to run a mod like this. Please note that I put the .pk3 file in a subfolder called “mods”, within the EASYROMS/doom folder, just to make things a little more organized.

      Like

      1. Thanks for the quick reply! I thought I had seen something on the Square website that said not to use the doom wad, so I guess that’s what I missing. Thanks again!

        Like

  4. I’ve been asking around for a Blood port, and thanks to this setup I’ve got one better! Bloom is an amalgam of Blood, Doom, and Awesomesauce on crack! I’ve been scouring Discord, YouTube, and the Doom modding websites since Russ posted this and I’ve stumbled upon some doozies! Animal Crossing, Mario Doom (several varieties there) even one where you can pull a Postal 2!! But the best by far has been the crossover of all crossovers where you can play as Caleb from Blood and the Doom Guy. Thanks Russ, if it wasn’t for your tutorials I’d probably be sitting in front of my laptop flaring up my carpal tunnel. I’m also proud of you for pulling 21 years! Good job!

    Like

  5. Do you have any tips on optimizing lzdoom? I’ve been playing through the Adventures of Square and loving it, but I’ve hit a part of the game where the lag is so extreme that I cannot proceed. I’ve tried messing with the video settings within the game, but to no avail. Any tips?

    Like

  6. I like your guides. Could tou tell me which DooM to buy on Steam? There are like 10 choices to make šŸ™‚ Ultimate DooM? Or a different one?

    Like

  7. My RG351P wont load any WADs anymore. all i get is a black screen with an undercore then it goes back to ark os main screen PLEASE HELP! Doom is my favorite game on here and now it wont work.

    Like

  8. I’m using ArkOS and following this guide, but, no “.sh” files are showing up as bootable.
    All files are where they’re supposed to be: EASYROMS/doom/
    DOOM and DOOM2 are the only ones to show up as bootable and both work properly.
    I tried changing extensions to “.bash” instead of “.sh”, but it’s the same result: nothing shows up.
    I can’t load mods, it refuses to see “.sh” files.

    Like

  9. Thanks for all the really easy to use guides & tips Russ!

    Would you know if there anyway to be able to add Rise of the Triad to the RG351P/M (I believe it is using a WAD but is based on Wolfenstein 3d)? Or would it be waiting for a port?

    Like

  10. Thanks for all your guides is there any chance of an update for 351elec as they added lzdoom support?

    Like

  11. Thanks for this guide! I have installed the 351elec version but unfortunately the changes I make to the controls and display never save. They remain while playing but once I shut down the RG351 then the configuration gets wiped and I have to redo them again. Is there any way to save changes?

    Like

    1. I have the same issue as jawn.

      Running 351elec on my RG351P. I have to setup controls/buttons every time I startup a game.

      Your tutorials are great by the way. I bought a 351P based on your in-depth review and comparisons. Thank you for your content!

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s