Guide: LZDoom for RG351P (ArkOS)

Last updated: 17JAN2021 (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.

Table of Contents
First things first
Acquire the retail WADs
Loading WADs onto your RG351P
One shell script to rule them all
Advanced features
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

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)

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 .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

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

12 thoughts on “Guide: LZDoom for RG351P (ArkOS)

  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

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