New port Doom 3 (dhewm3)
-
I've written an installer for doom 3 (dhewm3).
Looking for feedback for improvements.
-
@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.
-
@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?
-
@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.
-
@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:
- The dhewm3 installer includes the mod.
- A separate installer with a Help message that the user must install dhewm3 first.
- A separate installer that installs dhewm3 first.
- 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). -
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.
-
Ooops! Sorry. It's fixed now.
-
@gderber Build is failing:
https://pastebin.com/kNCX7jqf -
@quicksilver I've updated the dependencies in the script. Please let me know how it works.
-
@gderber it works now but as you can see, without running in an x session the graphics are broken
I'd recommend adding
xorg
as a dependency and launching dhewm3 withXINIT:
. 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 viaXINIT:
, when exiting the game, it doesnt exit the X session and requires akillall xinit
to 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
-
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.
-
@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.
-
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).
-
@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. :)
-
I've updated the dependcies. Good catch.
-
@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 theXINIT
marker to start the emulator viastartx
- see here. Same process is used for all emulators which have the running command prefixed byXINIT
.If you have an error log, post it on pastebin.com and we can see how/where it fails.
-
@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).
-
@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
-
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?
-
@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).
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.