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.
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:
Similarly, you can also create unique save locations for each mod, so that you don’t overwrite your saves between the various mods:
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
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:
Chex Quest (available via abandonware sites)
Brutal Doom Lite
Brutal Doom v21
Call of Doom (Vanilla)
Call of Doom (Brutal)
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.
– added 351ELEC instructions
– added WadSmoosh link
– added wording about changing .wad files to .pk3 files
– added instructions on how to turn off looking up and down
– published guide
– added DOOM 4 Vanilla mod