RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Doom Legacy - Doom Split-screen Source port

    Scheduled Pinned Locked Moved General Discussion and Gaming
    doomdoomlegacydoom legacysplitscreen
    97 Posts 13 Posters 17.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • tpo1990T
      tpo1990 @Solid One
      last edited by tpo1990

      @Solid-One Now that i have checked it. You're right it is only Heretic that works besides the Doom wads and of course some mods works as well, but not zdoom mods that has the pk3 file extension.

      It could still be cool to play Hexen split-screen but that is something to dream of. Strife is probably the last one that is very different since it has some dialogue with rpg elements to it. Zdoom is capable but i also think that Zandronum is capable too at running Hexen and Strife. Let me just check it.

      Edit: I can confirm that Hexen and Strife works in Zandronum source port with bots in a deathmatch as well.

      Greetings from Denmark. :-)

      Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

      1 Reply Last reply Reply Quote 0
      • Solid OneS
        Solid One
        last edited by Solid One

        Sorry for the delay. I was kinda busy these days. But anyway, here's what I've promised.

        Recently I've done a lot of changes and improvements in DL source code, in order to natively implement some of the missing features that I've mentioned on previous posts. Now, it's possible to fully use Doom Legacy from controllers, without having to use xboxdrv.

        The changes are contained in a diff patch that I've created specifically for this version of Doom Legacy (1.47.2).

        Changes contained in the patch

        • Allow menu navigation with a gamepad: The D-Pad of the first controller now works as arrow keys in menus, thus allowing player one to navigate in the menus with your gamepad;
        • Translation of joystick hats to button mappings: Now it's possible to bind D-Pad directions to actions, without having to use "bindjoyaxis". Useful for mapping D-Pad to changing weapons / inventory, per se;
        • Translation of Xbox360 triggers to button mappings: On Xbox360 controllers, now it's possible to bind LT or RT buttons to actions, such as shoot, looking up, running, etc;
        • Joystick axis deadzone support: Applies axes movements only if the values are between 4000 and 32768, or -4000 and -32768. This way, axes won't be super-sensitive to smallest movements occurred when the analog sticks aren't fully centered, or somehow loosen. Useful to avoid a bug where players keep moving like crazy on controllers sometimes;
        • Axes movements sensible to "Run" command: Doubles axes values when "Run" is pressed / activated, thus allowing players to run, when moving with a controller axis. Works only when player is moving or strafing;
        • Ability to read autoexec file in home folder: Useful for having "autoexec.cfg" in the same folder as "config.cfg". This way, you won't have to necessarily put "autoexec.cfg" file on /opt/retropie/ports/doomlegacy folder, which is a path accessible only for users with admin privileges;
        • New automatic bindings for the first plugged controller:
          • "Y" key to Button 1: To confirm the operation in confirmation popups, such as ending a game or exiting DL without a keyboard;
          • "N" key to Button 2: To cancel the operation in confirmation popups;
          • "S" key to Button 1: In order to start a multiplayer game when "Wait players" is greater than 1 and other players haven't connected to you yet;
        • New control bindings:
          • Automap: To show the map from a controller button (ex: R1 or RB);
          • Main Menu: To open main menu from a controller button (ex: START);
          • Pause: To pause the game from a controller button (ex: SELECT or BACK);
        • New multiplayer / splitscreen game options:
          • Bots: Allows you to add bots in a game, without having to recurr to "addbot" console command;
          • Randomize Maps: If true, a random map will be chosen when a level is finished. Useful for PWADs optimized for deathmatches;
          • Randomize Bots: If true, bots will be added with random names, colors and skins (if there's any), with the possibility of randomizing on each map change or game creation. If false, bots will be added in the original sequence of names (Frag-God, Thresh, Reptile, etc), colors (green, indigo, brown, red, etc) and will always use the default "Marine" skin.
        • On multiplayer menu:
          • Changed "Wait Players" default option from 2 to 1;
          • Changed "Difficulty" default option from 4 (Ultra-Violence) to 2 (Hey, Not Too Rough). Better optimized for controller gameplay on deathmatches with bots.
        • On setup players' menus:
          • Changed default player 1 name from "Pi" to "P1";
          • Changed default player 2 name from "Big B" to "P2";
        • Fixed a bug that wasn't setting multiplayer skill correctly, and was always drawing back to skill 2, "Hey, Not Too Rough", thus preventing higher weapons / items to show up on some maps;
        • Implemented a newer bug fix, done by the maintainers of DL, that fixes an issue on some sound effects with frequency higher than 11khz, such as Super Shotgun reloading, and item respawning.

        Instructions to apply the patch

        1. Install the needed dependencies in order to compile DL sudo apt-get install cmake libsdl1.2-dev libsdl-net1.2-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev timidity freepats
        2. Get main code and unzip it wget -O- -q https://netcologne.dl.sourceforge.net/project/doomlegacy/1.47.2/doomlegacy_1.47.2_source.tar.bz2 | tar -xvj --strip-components=1
        3. Enter in the DL source code folder cd doomlegacy_1.47.2_source/src
        4. Download the patch file wget https://raw.githubusercontent.com/leomontenegro6/DoomLegacy-RPI/master/dl_consolelike_1.47.2_rev20190109.diff
        5. Patch source patch -p0 -i dl_consolelike_1.47.2_rev20190109.diff
        6. Compile DL with make --> doomlegacy binary will be created

        If you've done the steps correctly, the doomlegacy binary will be created in "doomlegacy_1.47.2_source/src/bin" folder. From now on, you can simply replace the previous "doomlegacy" binary file in "/opt/retropie/ports/doomlegacy" folder (if you've installed DL from @tpo1990's scriptmodule). Or if trying to do all the steps manually, you can simply get any doom / heretic .wad file, combine it with "legacy.wad" file from doomlegacy_1.47.2_common.zip, put everything in a same folder and then run the binary directly.

        Here's some screenshots showing some of the changes I've made:

        Captura de tela de 2019-08-19 23:13:36.png
        Captura de tela de 2019-09-01 23:53:47.png
        Captura de tela de 2019-08-19 23:16:03.png

        Conclusion

        Most of the changes done by this patch were already sent to the maintainers of DL, as a ticket on sourceforge. So, if my patch is accepted, then it's a matter of time for them to be included in the next stable version 1.47.4. But, at least while those changes aren't official yet, feel free to include that patch on any of Retropie's scriptmodules.

        And if you guys find any bugs in DL, please remember to post it not only here, but on DL project page on sourceforge.

        tpo1990T 1 Reply Last reply Reply Quote 3
        • tpo1990T
          tpo1990 @Solid One
          last edited by

          @Solid-One Thank you for this huge work of yours. I would like to add your changes and patch to my Doom Legacy scriptmodule so that it will get improved and even better than it is today. You will have my special thanks and gratitude

          Once i get the time off work i will test out your changes.

          If you are on github, you can fork my Doom Legacy repository and create a pull request. :-)

          Greetings from Denmark. :-)

          Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

          Solid OneS 1 Reply Last reply Reply Quote 0
          • Solid OneS
            Solid One @tpo1990
            last edited by

            @tpo1990 Sure, go ahead. I've even deleted my previous repo that I created manually, forked yours and created a pull request containing the patches.

            BTW, today I've updated the patch. Implemented some nice new features, besides the ones mentioned previously:

            • New multiplayer / splitscreen game options:
              • Randomize Maps: If true, a random map will be chosen when a level is finished. Useful for PWADs optimized for deathmatches, such as Dwango5, which has 24 maps and this option can randomize those 24 maps on game creation;
              • Randomize Bots: Added a new option "On map change". This way, bots will be randomized everytime a map is changed;
            • On setup players' menus:
              • Changed default player 1 name from "Pi" to "P1";
              • Changed default player 2 name from "Big B" to "P2".
            tpo1990T 1 Reply Last reply Reply Quote 2
            • tpo1990T
              tpo1990 @Solid One
              last edited by

              @Solid-One Thank you. I will soon test it out in my free time and then merge your changes.

              As always good work. I am looking forward to see your changes into the Doom Legacy port. :-)

              Greetings from Denmark. :-)

              Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

              1 Reply Last reply Reply Quote 0
              • Solid OneS
                Solid One
                last edited by Solid One

                Just telling you guys that Doom Legacy v1.48 was released a few days ago. In that version, most changes from the patch I provided above are already included by default, so simply compile it from source and run the binary and everything should work just fine.

                @tpo1990 Can you update your scriptmodules with the latest version, and see if it's working on your end?

                RionR tpo1990T 2 Replies Last reply Reply Quote 0
                • RionR
                  Rion @Solid One
                  last edited by

                  @Solid-One

                  I have completely missed this. Thank you!

                  FBNeo rom filtering
                  Mame2003 Arcade Bezels
                  Fba Arcade Bezels
                  Fba NeoGeo Bezels

                  1 Reply Last reply Reply Quote 0
                  • tpo1990T
                    tpo1990 @Solid One
                    last edited by

                    @Solid-One Thank you for the good news. I will soon update my scriptmodule to the latest Doom Legacy v1.48 and release it.

                    Greetings from Denmark. :-)

                    Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

                    1 Reply Last reply Reply Quote 0
                    • tpo1990T
                      tpo1990
                      last edited by tpo1990

                      The Doom Legacy scriptmodule has now been updated to include the latest Doom Legacy 1.48.4 version. The scriptmodule has been improved and ingame music has been fixed by adding missing fluidsynth as a needed dependency. The latest Doom Legacy 1.48.4 adds several fixes to the port such as better control of coop and multiplayer. bot menu selection and gamepad support.

                      The updated scriptmodule has been tested on my RPI 3B RetroPie 4.6.1 (buster) and it runs great both singleplayer, 2 player and with bots in multiplayer.

                      I recommend these video settings after installing the latest version as the game runs best with those.
                      Drawing options: 32bit
                      Resolution: 1280x960

                      Download the scriptmodule again from the download link to replace it in your RetroPie-setup. You might have to reinstall Doom Legacy or update it.

                      I haven't tested it yet on the latest RetroPie on a RPI 4B with buster. Let me know how it works out for some of you that have one.

                      Greetings from Denmark. :-)

                      Developer of install scripts for ports such as Hexen 2, Return to Castle Wolfenstein and Caesar III. See my other projects at my profile.

                      1 Reply Last reply Reply Quote 5
                      • Solid OneS
                        Solid One
                        last edited by

                        Thanks for the update. Good to know everything is working!

                        @tpo1990 said in Doom Legacy - Doom Split-screen Source port:

                        The scriptmodule has been improved and ingame music has been fixed by adding missing fluidsynth as a needed dependency

                        I'm curious: Music wasn't working in DL on your end, and you solved it by adding fluidsynth? AFAIK, DL works fine if you have timidity & freepats installed on your device through apt-get, and I guess music on DL uses only timidity and not fluidsynth (although I may be mistaken here). Does music worked fine through DL on fluidsynth?

                        tpo1990T 1 Reply Last reply Reply Quote 1
                        • I
                          ish
                          last edited by ish

                          Hi im fairly new to the Linux and the rpi and don't understand the build process of the doom legacy application can you please explain to me how you compile it. Sorry if I sound like a big noob @tpo1990 @Solid-One

                          quicksilverQ 1 Reply Last reply Reply Quote 0
                          • quicksilverQ
                            quicksilver @ish
                            last edited by

                            @ish Did you look at the very first post? There are step by step instructions there. What specifically about the instructions dont you understand?

                            I 1 Reply Last reply Reply Quote 0
                            • I
                              ish @quicksilver
                              last edited by ish

                              @quicksilver i typed the script module into the terminal on retropie installed it through the experimental section in the setup and installed it tried to open doom. I opened it got a black screen then it sent me back to the emulation station menu

                              quicksilverQ 1 Reply Last reply Reply Quote 0
                              • quicksilverQ
                                quicksilver @ish
                                last edited by

                                @ish after building using the latest script I am having the same issue (on my Pi 4)

                                @tpo1990

                                Executing: DOOMWADDIR=/home/pi/RetroPie/roms/ports/doom /opt/retropie/ports/doomlegacy/bin/doomlegacy -iwad "/home/pi/RetroPie/roms/ports/doom/doom.wad"
                                /opt/retropie/supplementary/runcommand/runcommand.sh: line 1255: /opt/retropie/ports/doomlegacy/bin/doomlegacy: No such file or directory
                                

                                After installing I am getting the above error message. I double checked and the /opt/retropie/ports/doomlegacy/bin/doomlegacy directory doesnt exist. Any idea what might be happening here?

                                mituM I 2 Replies Last reply Reply Quote 1
                                • mituM
                                  mitu Global Moderator @quicksilver
                                  last edited by

                                  @quicksilver Look in the install log and check if the binary was built.

                                  quicksilverQ 1 Reply Last reply Reply Quote 0
                                  • I
                                    ish @quicksilver
                                    last edited by ish

                                    @quicksilver could I use the previous script if its still available some how

                                    tpo1990T 1 Reply Last reply Reply Quote 0
                                    • quicksilverQ
                                      quicksilver @mitu
                                      last edited by

                                      @mitu Yep doesnt look like its building correctly

                                      https://pastebin.com/eeQTu0A7

                                      mituM 1 Reply Last reply Reply Quote 1
                                      • mituM
                                        mitu Global Moderator @quicksilver
                                        last edited by

                                        @quicksilver Not really

                                        [...]
                                        
                                        sed -e "s!^[a-zA-Z0-9_]*\.o:!\$\(O)/&!" ../dep/main_d.dep > ../dep/sed.dep
                                        mv ../dep/sed.dep ../dep/main_d.dep
                                        sed -e "s!^[a-zA-Z0-9_]*\.o:!\$\(O)/&!" ../dep/main5.dep > ../dep/sed.dep
                                        mv ../dep/sed.dep ../dep/main5.dep
                                        make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/doomlegacy/src'
                                        make: *** [Makefile:535: all] Error 2
                                        /home/pi
                                        /home/pi/RetroPie-Setup/tmp/build/doomlegacy /home/pi
                                        
                                        ...
                                        
                                        quicksilverQ 1 Reply Last reply Reply Quote 1
                                        • quicksilverQ
                                          quicksilver @mitu
                                          last edited by

                                          @mitu said in Doom Legacy - Doom Split-screen Source port:

                                          @quicksilver Not really

                                          "Not really" in the sense that I am correct, its not building correctly? Or "not really" its something else? :D

                                          Im not really sure what im looking at in the log file.

                                          mituM 1 Reply Last reply Reply Quote 0
                                          • mituM
                                            mitu Global Moderator @quicksilver
                                            last edited by

                                            @quicksilver said in Doom Legacy - Doom Split-screen Source port:

                                            "Not really" in the sense that I am correct,

                                            Yes, it's not really building correctly.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            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.