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 16.0k 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.
    • Solid OneS
      Solid One @tpo1990
      last edited by Solid One

      @tpo1990 I haven't tested my xboxdrv solution on my RPi2 yet, but on my Desktop PC with Ubuntu 14.04 64-bits instead. It's faster to test IMO, and since Ubuntu and Debian are a lot similar, I believe it should work the same on both cases.

      On my Desktop PC, I've followed the steps above using my PS2 controllers through a USB adapter. I got no sound issues in the process. I'd guess this problem is entirely related to xboxdrv, maybe giving issues on your specific use case. BTW, you got this problem only with one of your controllers, right? Do you have other controllers to test, just to see if the sound issue would persist or not?

      Last but not least, hold your horses just a bit, because I'm having a great progress in editing DL's source code, in order to implement all those features (and some more) without xboxdrv. If everything goes right, I should post a patch here in the next days.

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

        @Solid-One It could very well be related to xboxdrv configurations and though i'm not quite sure, since the problem only persist when i use both of the same controllers with 2 xboxdrv instances running and configured for both players. It is only sound that did not work.

        I should point out that it is a long time ago since i last tested it. The use of xboxdrv and with the release of RetroPie updates it can have been changed.

        Sounds promising. I hope you figure it out.

        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

          New changes to the scriptmodule has been made and uploaded to my git repository for Doom Legacy.

          I have added Doom registered version, Doom 2, TNT and Plutonia versions to the scriptmodule. This means that in order to use the full registered version, you must have a "doom" roms folder with the path: "/home/pi/RetroPie/roms/ports/doom"

          If you already have Doom Legacy installed, you can try updating the install from the RetroPie setup after downloading the scriptmodule again, but i have not tested if it works. Otherwise you will probably have to reinstall it again.

          Also notice: if doom.wad is not present in the doom roms folder, Doom Shareware version (doom1.wad) will be installed along with your other wads.

          Very important. First put your doom.wad, doom2.wad, tnt.wad and plutonia.wad in "/home/pi/RetroPie/roms/ports/doom" then download the scriptmodule again from the download section and install Doom Legacy. This will give you new runcommand launch files for all of them like this.

          • Doom.sh
          • Doom II: Hell on Earth.sh
          • Final Doom - TNT: Evilution.sh
          • Final Doom - The Plutonia Experiment.sh

          Edit: It is also possible to add Heretic to the scriptmodule. (Hexen and Strife is not supported by Doom Legacy). Let me know what you think about this.

          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 Strife still isn't supported in Doom Legacy.

            Besides Doom variants (Doom 1, Doom 2 and Final Doom wads), only Heretic works on DL. So for now, only Heretic would be interesting to add to the scriptmodule.

            And last but not least, both Strife and Hexen are mostly single-player games with a non-linear campaign similar to Quake 2 and Half-Life. I don't see many benefits by playing those games in split-screen on Doom Legacy (except for deathmatches in custom maps designed specifically for that game style, and you'll even have to search those maps by yourself). So, in those cases, using Zdoom is a much better approach, since it fully supports both Hexen and Strife.

            tpo1990T 1 Reply Last reply Reply Quote 1
            • 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
                                            • 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.