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

    New port Doom 3 (dhewm3)

    Scheduled Pinned Locked Moved Ideas and Development
    ports
    46 Posts 7 Posters 7.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.
    • ?
      A Former User
      last edited by

      I've written an installer for doom 3 (dhewm3).

      https://raw.githubusercontent.com/gderber/RetroPie-Setup/feature/dhewm3/scriptmodules/ports/dhewm3.sh

      Looking for feedback for improvements.

      quicksilverQ 1 Reply Last reply Reply Quote 0
      • quicksilverQ
        quicksilver @A Former User
        last edited by quicksilver

        @gderber dhewm3 has to be run with full openGL on the pi otherwise there are game breaking graphical issues. When launching the game engine it needs to be launched with XINIT:/path/to/dhewm3. This will launch it in an x session and insures that it doesn't try to use openGL ES.

        Also: MD5 (d3xp/pak000.pk4) = a883fef010aadeb73d34c462ff865d MD5 (d3xp/pak001.pk4) = 06fc9be965e345587064056bf22236d2

        Are optional files needed for the resurrection of evil expansion. Might want to make a note that they are not required/optional.

        This might beyond the scope of what you are trying to accomplish here but the classic doom mod is available for free (instructions on the dhewm3 website), it might be neat to automatically download and install this mod for users. It does require the dhewm3 SDK in order for it to work properly.

        Also the Doom3 demo is freeware and runs with dhewm3, might be neat to install it by default like the other doom script modules do.

        ? 1 Reply Last reply Reply Quote 0
        • ?
          A Former User @quicksilver
          last edited by

          @quicksilver I'll add the demo.

          I'll look at the mod. From your description, I'm not certain if it's better to add to this, or make it a separate installer. Can on installer depend on another?

          quicksilverQ 1 Reply Last reply Reply Quote 0
          • quicksilverQ
            quicksilver @A Former User
            last edited by

            @gderber said in New port Doom 3 (dhewm3):

            Can on installer depend on another?

            Im not sure what you mean ^

            All mods can be launched/loaded directly from the Dhewm3/Doom 3 main menu when you launch vanilla doom 3. Dont need a separate installer or launch script.

            ? 1 Reply Last reply Reply Quote 0
            • ?
              A Former User @quicksilver
              last edited by

              @quicksilver as in, if I make a separate installer for the mod let'scall it 'cdoom' installer. Dhewm3 is required to be installed. Do is there a way for the 'cdoom' installer to depend on the dhewm3 installer.

              I have an idea for a dirty hack solution that'll work. Not sure I like it.

              Not really liking any of the options. I do like the idea of installing the mod.

              So the options I see are:

              1. The dhewm3 installer includes the mod.
              2. A separate installer with a Help message that the user must install dhewm3 first.
              3. A separate installer that installs dhewm3 first.
              4. Allow the user to install manually.

              Option 1 makes a potential lr-dhewm3 installer more difficult. It also mixes two different installes, both dhewm3 and the cdoom mod.
              Option 2 you are "hoping" the user installs dhewm3 first.
              Option 3, I am not sure the cleanest way of doing this.
              Option 4, requires the most effort from the user (they are on their own).

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

                I added the script module but when I select it in retropie setup all I see is the help section. I see no option to install.

                1 Reply Last reply Reply Quote 0
                • ?
                  A Former User
                  last edited by

                  Ooops! Sorry. It's fixed now.

                  quicksilverQ 1 Reply Last reply Reply Quote 0
                  • quicksilverQ
                    quicksilver @A Former User
                    last edited by

                    @gderber Build is failing:
                    https://pastebin.com/kNCX7jqf

                    ? 1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User @quicksilver
                      last edited by

                      @quicksilver I've updated the dependencies in the script. Please let me know how it works.

                      quicksilverQ 1 Reply Last reply Reply Quote 0
                      • quicksilverQ
                        quicksilver @A Former User
                        last edited by quicksilver

                        @gderber it works now but as you can see, without running in an x session the graphics are broken 20200618_105429_copy_2016x1512.jpg

                        I'd recommend adding xorg as a dependency and launching dhewm3 with XINIT:. The only issue I have is that on my test setup I'm getting a connection refused error. On my personal setup the above solution works just fine. I suspect that at some point I modified the Xwrapper.config to allow all users permission. I'm not sure if this is correct way to achieve the right result. A further complication is that when dhewm3 is run via XINIT:, when exiting the game, it doesnt exit the X session and requires a killall xinitto get it to close. A work around is to configure the keyboard in raspi-config to allow cntrl+alt+backspace to close an X session.

                        But as you can see with the X window the graphics are correct
                        20200618_110924_copy_2016x1512.jpg

                        1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User
                          last edited by

                          I've made the change to add XINIT for rpi and updated the help information. Thank you for your tips.

                          I still haven't decided how I want to tackle the mod. I don't like the idea of forcing it on people who don't want it, but that may be the simplest and easiest way to install it instead of creating it's own installer script.

                          quicksilverQ 2 Replies Last reply Reply Quote 0
                          • quicksilverQ
                            quicksilver @A Former User
                            last edited by

                            @gderber maybe it's best to not do anything with the mod right now. But if the main script is accepted into RetroPie officially then we can put instructions on how to install it on the doom 3 documentation page.

                            1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User
                              last edited by

                              Something else I think I'd like to do, and might make improve the odds of approval, all of these games have their configuration in $home/.local/share/{dhemw3,openjk,openjo,rbdoom3bfg} and in the case of dhewm3 also $home/.config/dhewm3. I'd like to get them to use /opt/retropie/configs/ports/{dhewm3,openjk,openjo,rbdoom3bfg}.

                              The easy solution is a mvConfigDir which creates a symlink. I think the better solution would be to determine the right cmake configuration option (if available).

                              1 Reply Last reply Reply Quote 1
                              • quicksilverQ
                                quicksilver @A Former User
                                last edited by

                                @gderber said in New port Doom 3 (dhewm3):

                                I've made the change to add XINIT for rpi and updated the help information.

                                Need to add xorg as a dependency if we want XINIT to work.

                                @mitu Sorry for the direct ping. I would value your expertise yet again. It seems XINIT doesnt work unless I modify the Xwrapper.config to allow all users permission (otherwise I get a connection refused error). Is this the correct way to do it? I tried looking at the lincity-ng.sh build script which also uses XINIT but I dont see how it gets around this issue (but maybe I dont know quite what im looking at). Thank you in advance for any insight. :)

                                mituM 1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User
                                  last edited by

                                  I've updated the dependcies. Good catch.

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

                                    @quicksilver said in New port Doom 3 (dhewm3):

                                    It seems XINIT doesnt work unless I modify the Xwrapper.config to allow all users permission (otherwise I get a connection refused error). Is this the correct way to do it?

                                    Not quite. X.org should work as regular user, granted you're running it from a regular terminal (like starting it via EmulationStation). There's no need for additional settings.

                                    I tried looking at the lincity-ng.sh build script which also uses XINIT but I dont see how it gets around this issue

                                    runcommand uses the XINIT marker to start the emulator via startx - see here. Same process is used for all emulators which have the running command prefixed by XINIT.

                                    If you have an error log, post it on pastebin.com and we can see how/where it fails.

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

                                      @mitu I restored the Xwrapper.config back to default to test and of course its still working properly. Im not sure why I was getting a connection refused error before. I have been testing on a fresh retropie install but maybe I need to wipe the card again and try from scratch to see if I can replicate the problem again.

                                      @gderber latest build script works great btw. Minus the issue with the x server not closing properly after quitting the game (though im not sure what can be done about that).

                                      ? 1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User @quicksilver
                                        last edited by

                                        @quicksilver I do wonder if we can modify the .sh file to look more like

                                        runcommand.sh .... && kill xserver
                                        

                                        Although there needs to be an if. We don't want to kill the xserver for people who are running a desktop environment. It's probably more complicated than it's worth, and more likely to introduce more bugs

                                        A R 2 Replies Last reply Reply Quote 0
                                        • A
                                          aidy80's @A Former User
                                          last edited by aidy80's

                                          If I wanted to run a particular Doom 3 mod on Retro Pie (the one in question is Phantasm Beyond 2 The Never Dead) is it a simple case of installing dhewm3 and then placing the mod in the mods folder like on a PC?

                                          quicksilverQ 1 Reply Last reply Reply Quote 0
                                          • quicksilverQ
                                            quicksilver @aidy80's
                                            last edited by

                                            @aidy80-s it has to be a doom 3 mod that is compatible with the dhewm3 engine. You'll likely need to compile the dhewm3 SDK for it as well (assuming it's compatible in the first place).

                                            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.