Guide: DOOM (+ Mods) on the RG351P and RG351M

Last updated 31MAY2021 (see Changelog for details)

Getting the first two DOOM games set up on a new device is a rite of passage. Heck, even the latest Nintendo Game & Watch device has been hacked to play DOOM. Luckily, no complex hacking is required to run DOOM on the RG351 devices, because the RetroArch PrBoom core is already loaded on your device, ready to send you back to 1993.

So in today’s guide we’ll show you how to set up DOOM on the RG351P’s many operating systems, how to tweak the settings to your liking, and how to run DOOM mods as well.

If you are an ArkOS user, be sure to check out this LZDoom guide, which will open up even more opportunities for you.

Table of Contents:
DOOM WAD files
How to run DOOM on stock RG351P firmware
How to run DOOM on 351ELEC
How to run DOOM on ArkOS
Adding DOOM music files
Settings configuration
Loading DOOM mods
Running DOOM mods with multiple files
Make a DOOM mods RetroArch playlist
Add DOOM mods to the EmulationStation Ports menu
List of recommended DOOM mods
Notes

Changelog

DOOM WAD files

To run the DOOM games on your device, you will need their WAD (data) files. If you have an old DOOM disk laying around, you can extract them from that, or you can buy a DRM-free copy from GOG.com, my favorite site to buy classic PC games. Be sure to check often for sales. Here are the links to purchase:

The Ultimate DOOM – contains the first three episodes plus the “They Flesh Consumed” episode which was added later.
DOOM II + Final DOOM – contains DOOM II plus its expansions

The nice thing about buying these games from GOG.com is that you can install them on your computer for some classic PC fun, as well as play them on the RG351P (or any other handheld device, as demonstrated in my RG350 guide).

How to run DOOM on stock RG351P firmware

In order to run DOOM and DOOM II (or any ports, for that matter), you need to download and unzip this file, which contains execution codes for the main ports that run on the RG351P stock firmware (like Diablo or Quake, in addition to the DOOM games). Connect to your device using WiFi FTP (more info in this File Transfer Guide), then navigate to /storage/.config/emuelec/ports, and add all of those .unzipped files (mostly .sh files and an images folder).

Once you have those files in place, add the WAD files to the following folders show below. Since you’re already FTPing into your device, you could just do it via FTP, or you could add them to the GAMES partition of the SD card when plugged directly into your computer. Be sure to name the WAD files exactly as shown below.

DOOM: /storage/roms/ports/doom/doom1.wad
DOOM II: /storage/roms/ports/doom2/doom2.wad

After that, you can just choose to boot the games from the “Ports” section in EmuELEC. Note that the other ports will also appear, but they will need data files to run.

How to run DOOM on 351ELEC

Booting up the DOOM games on 351ELEC is easier than with the stock firmware, because you don’t need to add your own .sh files. All you have to do is add the following files to the GAMES partition of your 351ELEC SD card.

DOOM: /roms/ports/doom/doom1.wad
DOOM II: /roms/ports/doom2/doom2.wad

After that, you can just choose to boot the games from the “Ports” section in 351ELEC.

How to run DOOM on ArkOS

To run DOOM and DOOM II on the ArkOS operating system, all you have to do is add their respective WAD files to the following folders within the EASYROMS partition. Note that the name of the WAD files is different from 351ELEC or the stock firmware:

DOOM: /roms/ports/doom/Doom.wad
DOOM II: /roms/ports/doom2/Doom2.wad

After that, you can just choose to boot the games from the “Ports” section in the main ArkOS menu.

Adding DOOM music files

The RetroArch PrBoom core is not able to extract the midi music files from the original DOOM soundtracks, so you will have to add them yourself. To do so, head over to this page and download the two .mp3 packs for DOOM and DOOM II (be sure to get the “RAW” versions). Next, unzip those files and rename each file so that the “d_” is missing from the file name. In other words, for “d_bunny.mp3”, change it to “bunny.mp3”. This is a tedious but necessary step (or use Bulk Rename Utility).

Once you have the file names changed, move the DOOM mp3s to where the Doom.wad file resides, and the DOOM II mp3s to where the Doom2.wad file resides. That’s it, the PrBoom core will detect and use those music files from here on out.

Note that a reader also provided these instructions on how to do a bulk rename in Windows without any additional software:

[Win] + [R]
Enter: cmd [enter]
Navigate to the folder: cd "C:\Full Path\To The Files\Doom2 MUSIC" [enter] 
Rename the files: rename "d_*.mp3" "//*.mp3" [enter]

Settings configuration

There are a number of optional settings you can set for these games to improve the gameplay experience.

To adjust the controls to a more modern scheme (with left analog stick for movement and the right analog stick for looking/turning), go to the RetroArch Quick Menu (L3 + R3 on stock and 351ELEC, SELECT + START on ArkOS) and select Controls > Port 1 Controls and set the following options:

Device Type: Gamepad Modern
Analog to Digital Type: None

You can also go in and map your buttons individually, if you have a preferred setup. Once you’re done with the button tweaks, go back to the Quick Menu > Controls > Port 1 Controls menu and select “Save Core Remap File”. Now, any time you open any DOOM (or mod) the controls will be the same.

In the DOOM game menu, select OPTIONS > GENERAL. Here there are a number of options. For example, you can adjust the framerate from its original 40FPS to something higher; but note that if you adjust it higher, like to 60 FPS, it also speeds up the game itself. For this reason, it might be better just to keep it at 40FPS.

If you’d like to turn off the “weapon bobbing” effect, go to OPTIONS > SETUP > WEAPONS > ENABLE BOBBING > NO

You can also adjust the resolution of the game from the default 320×200 to 640×400 with no noticeable performance hit. This option is in the Quick Menu > Options > Internal Resolution section. Note that you will need to restart RetroArch in order for this to go into effect. Additionally, I recommend you go to Settings > Video > RGA Scaling > ON to smooth out the textures for the best overall experience. If you like the RGA Scaling look, be sure to go to Quick Menu > Overrides > Save Core Overrides to save that setting.

To set up cheats, go to Quick Menu > Cheats > Load Cheat File (Replace) > PrBoom and select either the Doom (v1.9).cht or Doom II – Hell on Earth (v.19).cht file, depending on which game you’re playing. Once you have selected the cht file, scroll down to see the list of available cheats and turn them ON. Once you have the cheats to your liking, scroll up and select Apply Changes.

Loading DOOM mods

One exciting feature of the RetroArch PrBoom core is that it supports mod files. Some of these mods will add new maps to the original games, while others will completely transform the game itself (called “total conversions’).

The world of DOOM mods is complex and longstanding, so it can be intimidating at first glance. In general, you want to use mods that are labeled as “megawads”, which are WAD files that contain everything you need — textures, sprites, music, and level layout. Here are a few sources of megawads:

DOOMWorld (Doom mods)
DOOMWorld (Doom II mods)
DOOMWorld – Best mods of the year lists
Doom Wiki list of notable megawads
Doom Wiki list of Boom-compatible WADs

You will want to look for WAD files that are “Boom”, “PrBoom”, or “Vanilla” compatible. Mods that are labeled as “ZDoom”, “GZDoom”, etc., may not work. The file types that are accepted by the RetroArch PrBoom core include .wad and .deh (“dehacked”) files, and possibly .bex files, which are updated versions of .deh files. Many popular mods, like Brutal Doom, use .pk3 files (built with ZDoom), and these won’t work in RetroArch or on the RG351P at this time.

If you’d like to just download a pack of DOOM mods that (mostly) work with the RG351P, somebody has compiled this package of 52 popular mods. This pack has all retail files removed, so you can download without worrying about copyright. The file size is 217MB. Also, see the List of recommended DOOM mods section below for a list of mods that have been tested to work with the RG351P.

To load a DOOM mod, you want to verify if the mod uses DOOM or DOOM II as its backend (90% or more of mods use DOOM II). Once you’ve determined that, all you have to do is drag/drop the mod file (.wad) into the same folder as your DOOM retail WAD file (roms/ports/doom/ or roms/ports/doom2). Next, open up RetroArch, select Load Content, and then navigate to where the mod is located (note that you’ll likely need to select the “/” path in order to find the roms folder).

Running DOOM mods with multiple files

It is possible to run mods that use multiple files (for example, those that use separate .wad or .deh files for other functions). To start, add all of the wad/deh files to the appropriate doom or doom2 folder on your SD card, in the same folder as the original retail WAD files. In RetroArch, start up the main WAD file for the multi-file game, then exit out of it. Remove your SD card from the device, and put it back in your computer. Navigate to the ports/doom or ports/doom2 folder, and inside you’ll now see that there is now a created folder with the same name as the WAD you loaded. Inside that folder you will find a prboom.cfg file, and if you open it up with a text editor you’ll see there is a code like this:

Files
 wadfile_1                 ""
 wadfile_2                 ""
 dehfile_1                 ""
 dehfile_2                 ""

Inside those quotation marks, you’ll want to add the names of the .wad and .deh files that came with your mod.

So let’s use the Batman DOOM game as an example, which runs off the DOOM II WAD file. When you download the game, you’ll find that it has two data files: batman.wad and batman.deh. You’ll want to put both of these files in the same folder as your DOOM II retail WAD file, then boot up the batman.wad file in RetroArch. You’ll find that there are all sorts of graphical issues with the game, because it’s not using the .deh file that came with it. Close out of the game, eject the SD card, and put it into your computer. In the ports/doom2 folder you’ll now see a batman folder, and inside that folder is a prboom.cfg file – open that up with a text editor, and write the following:

Files
 wadfile_1                 "batman.wad"
 wadfile_2                 ""
 dehfile_1                 "batman.deh"
 dehfile_2                 ""

That’s it. The next time you boot the batman.wad file, it will load the batman.deh file and everything will work as expected.

NOTE: In ArkOS, you can also use this trick to load specific mods from your regular DOOM or DOOM II file. So for example, if you go into the roms/ports/doom2/Doom2/ folder, you’ll also find a prboom.cfg file. If you open the cfg file with a text editor and add the Batman DOOM code above, every time you book DOOM II (say, from the main menu), it will open up Batman DOOM instead. This is a nice feature if there is one specific mod you want to play without having to manually boot it from RetroArch.

There’s also an easy way to organize all of your DOOM mods in RetroArch, by using playlists.

Make a DOOM mods RetroArch playlist

One way to quickly access all of your DOOM mods is through a RetroArch playlist.

Note for ArkOS: In order for this to work you must first enable playlist imports Go to Settings > User Interface > Menu Item Visibility > Show Import Content Tab > ON. Next, go to Main Menu > Configuration File > Save Current Configuration, and then restart RetroArch. You should now have the ability to create playlists.

To create a new playlist in RetroArch, navigate to the Import Content tab, then select Manual Scan. In the Manual Scan menu, set the following parameters:

Content Directory: /romts/ports/doom/ or /roms/ports/doom2/
System Name: DOOM
Default Core: Doom (PrBoom)
File Extensions: wad

Select “Start Scan” and it will now scan the doom or doom2 folder for WADs. Repeat this step for the other folder (doom or doom2), and be sure not to select “Overwrite Existing Playlist”. Now you’ll have all of your DOOM and DOOM II mods in one playlist. If you add more mods to your system, just run this scan again.

From here, just open RetroArch from the main RG351P menu, then navigate to the DOOM section and run your mods. It’s not as pretty as loading the mods from the main interface, but it works!

Additionally, if you have a favorite mod (or 10), you can also add them as bootable files within the EmulationStation “Ports” section.

ArkOS: Go to the EASYROMS/ports folder on your SD card, and create an .sh file named after your port (for example, REKKR.sh). The easiest way to do that is to copy one of the existing.sh files and rename it. Inside that .sh file, write the following for mods that use DOOM:

/usr/local/bin/retroarch -L /home/ark/.config/retroarch/cores/prboom_libretro.so /roms/ports/doom/(name of mod).wad

And write the following for mods that use DOOM II:

/usr/local/bin/retroarch -L /home/ark/.config/retroarch/cores/prboom_libretro.so /roms/ports/doom2/
(name of wad).wad

Be sure to change the (name of wad).wad to the actual name of the mod WAD you want to boot. For for the REKKR mod, I changed mine to REKKR.wad.

351ELEC: The process should be the same as with ArkOS, but with different .sh files.

Here is the .sh file for mods that use DOOM:

#!/bin/bash

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)

# Source predefined functions and variables
. /etc/profile

/usr/bin/runemu.sh "/storage/roms/ports/doom/(name of wad).wad" -Pports "${2}" -Cprboom "-SC${0}" &>>/tmp/logs/exec.log

ret_error=$?

[[ "$ret_error" != 0 ]] && ee_check_bios "DOOM1"

exit $ret_error

And here is the .sh file for mods that use DOOM II:

#!/bin/bash

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)

# Source predefined functions and variables
. /etc/profile

/usr/bin/runemu.sh "/storage/roms/ports/doom2/(name of wad).wad" -Pports "${2}" -Cprboom "-SC${0}" &>>/tmp/logs/exec.log

ret_error=$?

[[ "$ret_error" != 0 ]] && ee_check_bios "DOOM2"

exit $ret_error

List of recommended DOOM mods

Here is a list of DOOM mods that I have confirmed work with the RG351P. If you have others that you’d like to recommend, please leave them in the comments below and I’ll get them added.

Mods that use the Doom WAD:
REKKR
DOOM the way id Did
Wonderful DOOM

Mods that use the Doom2 WAD:
Scythe
Memento Mori
Super Mayhem 17
Going Down
Hell Revealed
UAC Ultra
Batman DOOM
Mood Blood

Please note that some mods just don’t launch with the RetroArch PrBoom core, even though all signs point to the fact that they should.

Notes

  • Games that use the DOOM engine, such as Heretic and HeXen, do not work with RetroArch’s PrBoom core.
  • I’ve said it already, but at this time Brutal DOOM does NOT work with the RG351P.
  • SIGIL, an excellent level mod for the original DOOM created by John Romero (designer for Wolfenstein 3D, DOOM, and Quake, among others), also does not work for the RG351P. You can get to the main title screen, but the device will freeze after selecting the difficulty level.
  • As far as I can tell, mod music does not work on ArkOS. If I figure something out I’ll update this guide.

Changelog

31MAY2021
– updated instructions for 351ELEC mod .sh files

02DEC2020
– added bulk renaming tricks

28NOV2020
– guide published
– added instructions for adding mods to the EmulationStation menu

22 thoughts on “Guide: DOOM (+ Mods) on the RG351P and RG351M

  1. Aaand just like that…. You’ve answered my question. I found the Sigil megawad, went holy crapoley!, And now I know it’s not happening on my little handheld. That’s cool, still 50+ others to check out so… Yaaaay!!! Plus I’ve gotten Half-Life 2 to work on my Android handheld (yup a Bluetooth controller and a Samsung galaxy) and I’ve yet to play that! Hooray for Pandemic Hobbies!

    Like

  2. Hi Russ

    Thanks for another great guide. One observation. I believe the default shortcut on ArkOS for accessing Retroarch menu is L1+Select+Start+R1 rather than Select+Start, which is to exit the game/emulator. Iā€™ve changed that default to L3+R3 because itā€™s easy to accidentally exit when trying to open the RA menu with the 4 key combo.

    Ku d regards Robin

    On Sun, 29 Nov 2020 at 12:00 AM, Retro Game Corps wrote:

    > Russ Crandall posted: ” Last updated 28NOV2020 (see Changelog for details) > Getting the first two DOOM games set up on a new device is a rite of > passage. Heck, even the latest Nintendo Game & Watch device has been hacked > to play DOOM. Luckily, no complex hacking is requ” >

    Like

  3. I’m obviously doing something dumb here, but both games run great and I have followed the steps outline on the controls (namely setting it to “Gamepad Modern”, and the analog left-stick option to “None”), yet my guy just turns in a constant left circle. šŸ˜¦ Its as if my left stick was stuck held left, yet that doesn’t seem to be the case since I don’t have that effect in other games on here. Is there something obvious I’ve missed here? (on a default ArkOS install other that the setup for Doom 1/2)

    Like

  4. Weird stuff. Following this guide and I’ve got 2 RG351Ps sitting here. On one changing the controls this way works perfectly, but on the other (same SD card – just taking it out of one RG351P and moving it to the other) and it acts like the left analog stick is being pushed to the left, seemingly regardless of how I have the horizontal/vertical mouse sensitivity. Seems strange to me, as I don’t have other games in other emulators on here acting like the stick is drifting left.

    Like

      1. I have a third RG351 on the way (gifts!) so I’ll try it in that one as well and see which way it goes. Doom 1/2 are still playable of course with the one that exhibits this behavior, I just can’t turn it to “Gamepad Modern” is all. It IS strange though since you would think that if it was something about the left stick itself then I would see similar things in lots of games, and it does this under both 351ELEC and ArkOS so it doesn’t *seem* like a software issue.

        Like

  5. Does anybody know how to adjust the speed that Doom Guy turns on the R351p version? he turns way to slow for me i got everything else just the way i like it.

    Like

  6. Hi Russ!
    Thanks a lot for having the patience to provide us with these step by step process.
    I just got my RG351P and the first thing I tried was to install my preferred game, DOOM!
    My RG351P didn’t come with ArkOS, so I followed your steps for 351ELEC. Well, first of all, there is no roms folder inside the SD Card and, of course, no ports folder inside the roms folder. I created both folders and copied doom and doom2, plus the music. It didn’t work.
    Then I tried to move both doom folders to the GAMES root folder, and now both are working.

    The problem is that I could not make any other WAD work. I tried Memento Mori and Memento Mori 2, neither work.

    Would you know what I am doing wrong?

    Would you have any idea of what I am doing wrong?
    Do I have to try it using ArkOS? If so, how do I install ArkOS? and when I install it, does 351ELEC go away, or I will have both at the same time?

    Many thanks for your patience!

    Like

  7. thanks Russ for this! I never played Doom before and the RG351p is the perfect intro to these games!
    I was looking through some of the different Mods and saw one I played as a kid: Chex Quest. I wanted to know if you know if the Chex Quest Wads have the potential to work on PrBoom?

    Liked by 1 person

  8. Loving this guide, thanks! One question: after changing the RGA Scaling option I don’t have a Quick Menu > Overrides > Save Core Overrides option in my UI…where’d it go? I’m running 351Elec, if that matters!

    Like

    1. You have to go into Settings > User Interface to turn it on. But if youā€™re running the most recent version of 351ELEC you should be able to turn on RGA scaling in the main EmulationStation menu, so he may have disabled it in RA for a reason (like to avoid a settings conflict).

      Like

      1. That did it, thanks so much! Turned on the option in ES but noticed that it enabled it in handhelds as well, so turned on the override menu option, disabled in GB and GBA and then saved those core overrides.

        Like

  9. For those with ArkOS and are wanting use lzdoom and try out .pk3 mods, the method is still somewhat the same.

    Make an .sh file like before and put in the follow line below for the game you want.

    For Doom
    /opt/lzdoom/lzdoom -iwad /roms/ports/doom/Doom.wad

    For Doom 2
    /opt/lzdoom/lzdoom -iwad /roms/ports/doom2/Doom2.wad

    If you want to use a mod make sure that mod file is in the supported games port folder and
    make an .sh file like normal

    For Modded Doom game
    /opt/lzdoom/lzdoom -iwad “insert Main .WAD location here” -file “insert mod location here”

    So the .sh should look like the following
    /opt/lzdoom/lzdoom -iwad /roms/ports/doom/Doom.wad -file /roms/ports/doom/brutalv21.pk3

    Like

  10. I just got an RG351V, and I’ve been working my way through your guides, and setting it up with 351Elec v2.0. These guides are the most helpful resources I’ve ever seen! I just set up Doom and Doom II, and just about everything works, except cheats. There’s a cheats entry in Retroarch for PRBoom, but it’s empty. Is there any way to add them in? I’ve tried using the Online Updater, but that doesn’t seem to have any way to download cheats. I have a feeling I’m missing something fairly obvious, but maybe not… Thanks!

    Like

  11. I followed this great guide, which as all of your guides is quite easy to understand and very helpful. Unfortunately for me, it didn’t work this time.

    I am on 351elec and can’t get to make any port game working. I saw that a lot of users of 351elec have the same issue… not sure what else to do šŸ˜¦

    Like

    1. Ok, the .sh file on my card was the one from stock, not from 351 elec (not sure why). I just modified it this way and it’s working now :

      #!/bin/bash

      # SPDX-License-Identifier: GPL-2.0-or-later
      # Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)

      # Source predefined functions and variables
      . /etc/profile

      /usr/bin/runemu.sh “/storage/roms/ports/doom/(name of wad).wad” -Pports “${2}” -Cprboom “-SC${0}” &>>/tmp/logs/exec.log

      ret_error=$?

      [[ “$ret_error” != 0 ]] && ee_check_bios “DOOM1”

      exit $ret_error

      Like

Leave a comment