Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Brutal Doom on Pi4 With Gamepad Controls in Menu?



  • Pi Model - Pi 4 4gb
    Power Supply used - Canakit
    RetroPie Version Used - Buster 4.5.14
    Built From - Weekly dev build 4.5.13 updated to 4.5.14
    USB Devices connected - Keyboard dongle
    Controller used - 8bitdo SF30 pro

    Now that Lzdoom in being used in lieu of Zdoom, has anyone been using it for Brutal Doom? After seeing this post I had Zdoom working well with Brutal Doom and able to play various Doom wads, but I lost the configs I had. Trying over from scratch is apparently out of my ability at the moment because I'm stoopid. It would be awesome to have some insight about this and if we can get Lzdoom to use gamepad controls in the game's menu.



  • Nevermind. Got it working. I even used wadsmoosh which is amazing.



  • @Quackwalks

    If you don't mind me asking, how did you get Brutal Doom to work? I've googled and looked everywhere and I can't get it to work. I have Brutal Doom and Sigil working fine on the Pi 3 and zdoom, but I just can't figure out what to do for the Pi 4 and lzdoom. Thank you in advance for any advice you might have.



  • @OldSchool If you fully read the Docs for Doom it starts to make sense. Here's that

    my /home/pi/RetroPie/roms/ports/Brutal Doom.sh looks like this -

    #!/bin/bash
    "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ brutaldoom
    

    Make sure that Brutal Doom.sh is executable.

    In /opt/retropie/configs/ports/ create a folder named brutaldoom. Create an emulators.cfg file in there. The following is what I have in mine. I'm using wadsmoosh to make all my .wads into a single .pk3 file, so your emulators.cfg will vary depending on that.

    lzdoom = "/opt/retropie/ports/lzdoom/lzdoom -iwad /home/pi/RetroPie/roms/ports/doom/doom2.wad %ROM% +fullscreen 1 +vid_vsync 1 -width 1280 -height 720 -file /home/pi/RetroPie/roms/ports/doom/brutalv21.pk3 -file /home/pi/RetroPie/roms/ports/doom/doom_complete.pk3"
    lzdoom-addon = "DOOMWADDIR=/home/pi/RetroPie/roms/ports/doom /opt/retropie/ports/lzdoom/lzdoom -iwad %ROM% +fullscreen 1 +vid_renderer 1 +'snd_mididevice -3' +vid_vsync 1 -width %XRES% -height %YRES% -file /home/pi/RetroPie/roms/ports/doom/addon/*"
    default = "lzdoom"
    

    As you can see I have doom2.wad and my wadsmooshed doom_complete.pk3 in /home/pi/RetroPie/roms/ports/doom as well as brutalv21.pk3

    Here's the contents of my /opt/retropie/configs/ports/doom/lzdoom.ini - https://pastebin.com/wFqFUkan

    I'm adding this because I've set some options to optimize performance. What I found most useful is to change the rendering output options from hardware acceleration - opengl-accelerated to doom software renderer. This made it run so much smoother.
    I know that on big maps the game would really heat up my pi to the point of throttling, so I had to get an argon case with passive and active cooling.

    I also removed some smoke effects from brutal doom to help with performance. Here's the link to that - https://drive.google.com/file/d/1WhPA5nWHonJqkBXRV4cXhx0ImBowywjI/view?usp=sharing

    I hope I haven't missed anything and hope you get it figured out.

    Oh yeah and I followed the advice to get lzdoom to fully work with a gamepad with this - @Protocultor said in Zdoom and Gampad Fully Working in MENU with NO KEYBOARD:

    @bassybeats I did. The changes in ZDoom worked with LZDoom with some slight fixes:
    https://github.com/protocultor/gzdoom/commit/8ba7e49184c2be58c0ad03a7602dcd2c4b0ff6fd

    Binaries for Rpi3B+:
    https://github.com/protocultor/gzdoom/releases/latest

    The unfortunate issue is that there's no actual repository for the RPi "version" of LZDoom, since the source to compile comes from a tag; there's not even a branch to work with. So I had to fork the repo and create a branch from that tag to be able to apply the changes.

    If you have to compile it, follow these steps:

    cd ~
    mkdir lzdoom_joy
    # Clone LZDoom from my repo and branch
    git clone https://github.com/protocultor/gzdoom.git --branch joypad_menu --depth 1
    cd gzdoom
    # In the following, remove "-DUSE_ARMV8=On" if you're not using a Rpi3
    cmake -DCMAKE_BUILD_TYPE=Release -DNO_GTK=On -DUSE_ARMV8=On .
    make
    # After a long wait... its backup time
    cd /opt/retropie/ports/lzdoom
    sudo mv brightmaps.pk3 brightmaps.pk3.BAK
    sudo mv game_support.pk3 game_support.pk3.BAK
    sudo mv lights.pk3 lights.pk3.BAK
    sudo mv lzdoom.pk3 lzdoom.pk3.BAK
    sudo mv lzdoom lzdoom.BAK
    # ...and finally, replace the installed lzdoom with what you compiled
    sudo cp ~/lzdoom_joy/gzdoom/*.pk3 /opt/retropie/ports/lzdoom/
    sudo cp ~/lzdoom_joy/gzdoom/lzdoom /opt/retropie/ports/lzdoom/
    

    You still have to do a first-time configuration with the keyboard, at least to increase the deadzone with some gamepads.

    They said to have lzdoom installed first and replace it with that.


  • Global Moderator

    This method seems needlessly complex?

    I'll have to update the documentation, but for now, take a look at this commit message: https://github.com/RetroPie/RetroPie-Setup/commit/5ee2648b00c90a0d55b591b992dfcd056c74ae05

    The basic gist is to copy the brutal doom wad into roms/ports/doom/addon, then configure your desired Doom (or Freedoom) launcher to use the lzdoom-addon port via runcommand's launch menu.



  • @psyke83 wow that is way simpler! I was waiting for someone with more know how to simplify things. Thanks.


  • Global Moderator

    @Quackwalks said in Brutal Doom on Pi4 With Gamepad Controls in Menu?:

    @psyke83 wow that is way simpler! I was waiting for someone with more know how to simplify things. Thanks.

    Glad to help.

    @OldSchool
    Keep in mind that the lzdoom-addon method also works with Sigil -- but you'd have to ensure that brutal doom is not in the addon folder, as it would try to load all three wads together and likely fail.

    I added the -addon feature as a generic means of playing any kind of addon wads, but if you want to have a permanent dedicated launcher for Sigil, you could do this:

    • go to roms/portsand copy Doom.sh to Sigil.sh
    • edit configs/ports/doom/emulators.cfg, and create a copy of the lzdoom-addon port with a new name (such as lzdoom-sigil) and change /addon/* to /sigil/*.
    • create a new sigilfolder in roms/ports/doom/, and put the sigil wad in this new folder.
    • when launching Sigil for the first time, change the "default emulator for this ROM" to use the lzdoom-sigil entry.

    Technically you could do something similar to have dedicated Brutal Doom launchers, but this would require a lot of duplication, as the Brutal Doom wad is designed to be compatible with Doom1, Doom2, Ultimate Doom and even Freedoom. It make sense to me to just switch via runcommand when you want the Brutal versions...



  • @psyke83

    Thank you a ton, your advice worked perfectly for Sigil. I actually am interested in having individual launcher files for Brutal Doom for all of the Doom versions just because I like the simplicity of being able to select each game version separately, even if it is more work. But it isn't working like Sigil did. I created another folder under the doom folder called "brutaldoom," just like with Sigil, then edited the emulators.cfg file with the addition of an emulator called brutaldoom. This new entry had /addon/* changed to brutaldoom/*, the same as I did with Sigil.

    I placed the doom wad in that folder, and the brutal doom .pk3 file. I set up a "Brutal Ultimate Doom" launcher directing the location of the doom.wad file in the doom/brutaldoom folder. It launches it perfectly fine when I set "brutaldoom" as the default rom launcher, but for my launcher for the normal Ultimate Doom it will then be set to use the brutaldoom launcher as the default rom emulator as well. If I change the normal ultimate doom launcher back to lzdoom to play vanilla doom, the default emulator for the brutal doom launcher will then automatically be changed to lzdoom as well. So changing the emulator for one ultimate doom launcher changes it for the other, whether its brutal doom or vanilla. I assumed that was because I used the doom.wad file in the brutaldoom folder without changing the name, so what happened to one "doom.wad" changes it for the other because they have the same name, despite being in different folders.

    So I tried changing the name of the doom.wad file to brutaldoom.wad in the brutaldoom folder, and kept the original vanilla ultimate doom in the doom folder unchanged, but then it won't even launch the brutal doom version. So it seems to have to keep the original wad name. Since what I did what worked for Sigil I'm lost as to what it is making the two doom.wad files, in different folders, linked. You know so much about how it works, is it obvious where I went wrong? I feel like it must be something small that I just keep missing.



Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.