Jump to content
The Dark Mod Forums

The dark mod / doom3 in Linux


Gr1nReaper

Recommended Posts

I know I've been silent for the past oh, 3 or so years, but that doesn't mean I ever forgot The Dark Mod, or lost interest. Things have changed for me since the first time I learned of it, one of the biggest changes being the fact that I no longer use windows. I hadn't tried Doom 3 in Linux (currently running Ubuntu 9.04 Jaunty), until I saw that the dark mod had been officially released, and to my dismay found a gigantic problem, not with the dark mod as much as with doom 3 itself.

 

My problem is that doom 3 doesn't seem to recognize the arrow keys, delete/insert/home/end/pgup/pgdn some of the number pad keys, and the ctrl key properly. it seems to think ctrl is pgdn, and all the arrow keys and the 6 keys above them are interpreted as 0x00. I have my keyboard layout set as "Microsoft Comfort Curve 2000" which is what it is, and I have tried setting it to generic--endev hoping that would solve my problems, but no linux layout seems to help. I'm sure you all have guessed by now that I am left-handed, and using WASD is kind of out of the question--it'd be like re-learning pc-gaming. I have tried manually editing DoomConfig.cfg adding the keyboard codes (i.e. 0x103 for _forward), but that has done nothing. Hopefully someone here can help me? I want to play, but it's nearly impossible with a different key layout, and wine and virtualbox would never be able to handle the doom 3 engine with my current PC.

Edited by Gr1nReaper
Link to comment
Share on other sites

Yeah, definitely sounds like a Doom 3 bug. It sounds like you've tried all the obvious things. Do you have any other keyboards around that you could plug in temporarily?

My games | Public Service Announcement: TDM is not set in the Thief universe. The city in which it takes place is not the City from Thief. The player character is not called Garrett. Any person who contradicts these facts will be subjected to disapproving stares.
Link to comment
Share on other sites

I have a different keyboard (Cherry Stream, Model G230), same OS, same problem.

 

When I try to rebind the arrow keys via doom's menu, it displays UP, DOWN and RIGHT as "0x00"; LEFT is recognized as ALT.

 

As a workaround I can disable numlock and use the arrow keys on the numpad. But it would be nice to have it working properly. Google refused to deliver a solution...

 

:mellow:

Link to comment
Share on other sites

I'm having the exact same problem here... installed Doom 3 on Ubuntu 9.04 64bit. I remember that I had the same problem before, and turning off NUMLOCK seemed to do the trick, as every key worked then. Now I've got the same problems as described by Gr1nReaper.

 

I've got a Logitech G11, maybe this is a bit too exotic for Doom 3 :)

The keyboard works flawlessly in Ubuntu though.

 

Going to try this with a generic keyboard without extra keys when I have the chance...

Link to comment
Share on other sites

I did look into remapping keys, but I couldn't get it working. I even went so far as attempting to change the scanmode, and again no luck. It might be errors on my part, but I doubt it.

 

so, I know this isn't an ideal solution, but the arrow keys do work properly when you run Doom 3 with Wine. I tested this and while loading times are a little slower, performance is practically identical to the native install.

 

At any rate, the issue is definitely with the linux version of Doom 3. So, install Doom 3 manually (wine setup.exe crashes) as follows:

 

$ mkdir ~/.wine/drive_c/Program\ Files/Doom\ 3/

 

I have the 3CD version, so if you have a DVD version modify accordingly. Mount CD1 and copy the necessary files (for my setup, CD drive is mounted as /media/cdrom, so modify to suit your setup):

 

$ cp -a /media/cdrom/Setup/Data/* ~/.wine/drive_c/Program\ Files/Doom\ 3/

 

Mount CD2 and CD3 and copy files:

 

cp -a /media/cdrom/Setup/Data/base/* ~/.wine/drive_c/Program\ Files/Doom\ 3/base

 

Download the Windows 1.3.1 patch (get the correct version from Dark Mod wiki) and install it:

 

wine DOOM3-1.3.1.EXE

 

Now test that Doom 3 works:

 

wine ~/.wine/drive_c/Program\ Files/Doom\ 3/Doom3.exe

 

As long as that works then 1) copy or 2) move the darkmod folder from ~/.doom3, or 3) create a symbolic link to it, whichever you want:

 

1) cp -a ~/.doom3/darkmod ~/.wine/drive_c/Program\ Files/Doom\ 3/

2) mv ~/.doom3/darkmod ~/.wine/drive_c/Program\ Files/Doom\ 3/

3) ln -s ~/.doom3/darkmod ~/.wine/drive_c/Program\ Files/Doom\ 3/

Now you can run tdmlauncher.exe with Wine:

 

wine ~/.wine/drive_c/Program\ Files/Doom\ 3/darkmod/tdmlauncher.exe

 

EDIT: I've been testing this a little more, and there are a couple of rather small issues.

  • Game will occasionally not restart when installing a mission. Just kill wine ("ctrl + c" if in a console) and restart the game.
  • Leaning left/right/forward doesn't hold for too long, so you may want to consider setting "toggle lean yes" in the options.

Edited by LeatherMan
Link to comment
Share on other sites

Wow, thanks for wanting to write all that down!

I'm going to try it as soon as possible.

 

Activision (the id Software website referred me to them) didn't want to give any support at all:

 

I'm using Ubuntu 9.04, and installed Doom3 using the linux binary (+ copying the pak files from the CDs).

Everything seems to work, except for specific key bindings:

* the arrow keys

* the right ctrl key

* the keys above the arrow keys (ins, del, home, ...)

I'm not the only one with this problem (with different keyboards), but I haven't found a solution so far. Turning off numlock does not help.

Is there a solution for this?

Please note that we are only able to provide support for the game when playing on the Windows Operating system. The Ubuntu/Linux systems are not guaranteed to work with the game properly as the game was not specifically designed for the Linux operating systems.
But I downloaded an official linux installer from the id software website?

Does this mean you're not giving any support at all? I am sure that there are a lot of other people with the same problem.

We are not able to provide support for the use of the Linux operating system with the Doom 3 game. We have not seen Linux users contact us regarding this game as the vast majority of users use the Windows Operating system to play their game. If you would like to seek support for using the Linux version of the game, then we suggest that you refer to online Doom 3 forums for assistance with running your game on the Linux/Ubuntu OS.
Edited by bvanaerde
Link to comment
Share on other sites

Wow, thanks for wanting to write all that down!

I'm going to try it as soon as possible.

No problem. When I looked for some manual Windows install instructions I didn't find any, so I had to figure it out myself. Just wanted to save others the trouble. :)

 

 

Activision (the id Software website referred me to them) didn't want to give any support at all:

 

That's not really surprising, and I'm thankful we got the Linux binaries to begin with. At least getting the binaries wasn't an empty promise like with UT3...  :rolleyes:

 

 

Link to comment
Share on other sites

EDIT: I've been testing this a little more, and there are a couple of rather small issues.

  • Leaning left/right/forward doesn't hold for too long, so you may want to consider setting "toggle lean yes" in the options.

 

This leaning problem is present also in my native install on Ubuntu karmic RC. It can be fixed by disabling key repeat, so it's probably caused by the same x-server bug that breaks mantling when playing thief 2 on wine?

 

Edit: First post? In that case, hi everyone...

Edited by snobel
Link to comment
Share on other sites

This leaning problem is present also in my native install on Ubuntu karmic RC. It can be fixed by disabling key repeat, so it's probably caused by the same x-server bug that breaks mantling when playing thief 2 on wine?

 

Edit: First post? In that case, hi everyone...

Thanks for the tip. FWIW, the leaning issue is worse with Wine than native, which is why I mentioned it, and I haven't tried T2 on Wine in a while, so I haven't seen that bug.

 

 

Welcome to the forums. :)

 

 

Link to comment
Share on other sites

I got Doom 3 installed in wine--not the way you said, but whatever. I was under the impression that game performance would be drastically reduced by running doom 3 through wine, but you're right, there's little or no difference, and everything's working perfectly--almost! That key repeat thing so far is impossible to work around besides un-checking key repeat in preferences->keyboard (Karmic Koala). I tried xset (-)r, as well as toggle lean in-game, but neither seems to work. Does anyone have a suggestion?

 

Oh and thanks again for the help.

Link to comment
Share on other sites

I got Doom 3 installed in wine--not the way you said, but whatever.  I was under the impression that game performance would be drastically reduced by running doom 3 through wine, but you're right, there's little or no difference, and everything's working perfectly--almost!  That key repeat thing so far is impossible to work around besides un-checking key repeat in preferences->keyboard (Karmic Koala).  I tried xset (-)r, as well as toggle lean in-game, but neither seems to work.  Does anyone have a suggestion?

 

Oh and thanks again for the help.

 

OpenGL games generally play just as well with Wine since there is no DirectDraw emulation. I'm currently using Wine to test the svn version (waiting for the linux binary to be updated) and native for the released TDM 1.0.

 

I reinstalled Thief 2 today and the keyboard repeat is an issue there as well, so I increased the delay to 1000ms second rather than disabling it. That is better than the default of 660ms in game, and I can live with that for other programs so I don't have to disable/enable every time I want to play.

 

As for the lean toggle, it works fine for me. In what way is it not working for you?

 

 

 

Link to comment
Share on other sites

OpenGL games generally play just as well with Wine since there is no DirectDraw emulation. I'm currently using Wine to test the svn version (waiting for the linux binary to be updated) and native for the released TDM 1.0.

 

I reinstalled Thief 2 today and the keyboard repeat is an issue there as well, so I increased the delay to 1000ms second rather than disabling it. That is better than the default of 660ms in game, and I can live with that for other programs so I don't have to disable/enable every time I want to play.

 

As for the lean toggle, it works fine for me. In what way is it not working for you?

 

You're right, lean toggle works fine; I was using it improperly. As for key-repeat, I've managed to get xset working, which eases the process of enabling/disabling key-repeat. Apparently the gnome-settings-daemon has had a problem in ubuntu since 9.04. The workaround is here. So now The Dark Mod seems to be working well.

 

EDIT:

Here's a little script that conveniently turns off key repeat before starting the game, and then turns it back on after it terminates--for those of us (maybe just me) that can't live without small conveniences no matter how difficult it is to obtain them, and find it hard to take "no" for an answer.

#!/bin/bash

xset -r

tempvar=$(wine /path/to/thedarkmod/tdmlauncher.exe)

xset r

 

It took me forever, and the help of someone far more knowledgeable, to come up with this effective albeit simple solution.

Edited by Gr1nReaper
Link to comment
Share on other sites

LeatherMan and Gr1nReaper, thank you so much for helping out... I can start the game without a problem.

Just tried the tutorial, and everything is going smooth!

 

@LeatherMan: one thing was missing from the install guide. When I tried to start doom3, it gave me an error: "doom3 couldn't load default.cfg"

So I did

touch ~/.wine/drive_c/Program\ Files/Doom\ 3/default.cfg

to create the file. After this, I could start Doom3

Edited by bvanaerde
Link to comment
Share on other sites

LeatherMan and Gr1nReaper, thank you so much for helping out... I can start the game without a problem.

Just tried the tutorial, and everything is going smooth!

 

@LeatherMan: one thing was missing from the install guide. When I tried to start doom3, it gave me an error: "doom3 couldn't load default.cfg"

So I did

touch ~/.wine/drive_c/Program\ Files/Doom\ 3/default.cfg

to create the file. After this, I could start Doom3

 

Interesting. I didn't run into that myself, but thanks for posting the solution so anyone else having that problem will see this.

 

 

 

Link to comment
Share on other sites

Okay, another problem with TDM & GNU/Linux

I wubified an Ubuntu x86 (as I didn't want to taint my existing 64-bit install with external debs and stuff).

Tried to build, found it also needed libglc-dev (lucky 1+1 makes 2 when it fails at qgl.h and renderer stuff). Then I found it ALSO needed specific versions of libboost-filesystem-dev and libboost-serialization-dev to compile...

In the end, compilation went fine. Except I got a tdm_game02.pk4 containing a .so almost 60 megs in size, and an "external" .so around 6 megs (original one is around 7.4) - first WTF?

EDIT - found the origin of my first problem: the damn thing used the copy in .doom3... Now trying with any recompiled .so simply fails at the main menu... So, any clue here? :/ (tdmlauncher.log doesn't contain anything useful in my eyes)

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Link to comment
Share on other sites

OpenGL games generally play just as well with Wine since there is no DirectDraw emulation. I'm currently using Wine to test the svn version (waiting for the linux binary to be updated) and native for the released TDM 1.0.

 

Next time please PM me, I can just recompile and check them in on my laptop - but I need a little reminder from time to time to do this :)

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Okay, another problem with TDM & GNU/Linux

I wubified an Ubuntu x86 (as I didn't want to taint my existing 64-bit install with external debs and stuff).

Tried to build, found it also needed libglc-dev (lucky 1+1 makes 2 when it fails at qgl.h and renderer stuff). Then I found it ALSO needed specific versions of libboost-filesystem-dev and libboost-serialization-dev to compile...

In the end, compilation went fine. Except I got a tdm_game02.pk4 containing a .so almost 60 megs in size, and an "external" .so around 6 megs (original one is around 7.4) - first WTF?

EDIT - found the origin of my first problem: the damn thing used the copy in .doom3... Now trying with any recompiled .so simply fails at the main menu... So, any clue here? :/ (tdmlauncher.log doesn't contain anything useful in my eyes)

 

I am not sure what you mean with "wubified", but since D3 is a 32bit program, you definitely need a 32bit environment to compile everything and installing that stuff on a 64bit system isn't too hard and I don't think it "taints" the system, but here you go :)

 

As for the 60megs could be the debugging version.

 

You can also try to run it under strace (esp. "strace -e open -f tdmlauncher.linux") maybe that helps? Also, it can be that your D3 installation itself will not run, I remember some problem with the C++ libs they shipped.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Next time please PM me, I can just recompile and check them in on my laptop - but I need a little reminder from time to time to do this :)

 

It's not really that big of a deal, and I know you are busy (or have been). It also helps me to keep svn and 1.0 separate, the console works better (working history), and it helped to iron out any annoyances with Wine. I will definitely want to test the Linux binaries before any updates are released, so I will nag you before then, if necessary. :)

Link to comment
Share on other sites

I am not sure what you mean with "wubified", but since D3 is a 32bit program, you definitely need a 32bit environment to compile everything and installing that stuff on a 64bit system isn't too hard and I don't think it "taints" the system, but here you go :)

 

As for the 60megs could be the debugging version.

 

You can also try to run it under strace (esp. "strace -e open -f tdmlauncher.linux") maybe that helps? Also, it can be that your D3 installation itself will not run, I remember some problem with the C++ libs they shipped.

 

Heck, I'd be SO happy if that was something so close to a debugging version ^^".

By wubified I simply meant that instead of going through the whole installation loop, I installed a full Ubuntu in Windows, using windows's loader to boot, so my boot looks something like this :

GRUB (U 64-bit), Seven Loader w/ U 32-bit option if I choose Seven, then another GRUB if I choose U 32-bit.

Quite irrelevant in other words, except for the fact it runs on part of the win32 partitions.

 

Now for the biggest problem: DooM 3 runs damn fine. The original TDM runs damn fine. (tried on BOTH Ubuntu's)

 

strace : (end of the log around the crash moment)

[pid 3067] open("/home/patrick/.doom3/darkmod/tdm_game02.pk4", O_RDONLY) = 120
found DLL in pak file: /home/patrick/.doom3/darkmod/tdm_game02.pk4/gamex86.so
copy gamex86.so to /home/patrick/.doom3/darkmod/gamex86.so
[pid 3067] open("/home/patrick/.doom3/darkmod/gamex86.so", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 121
[pid 3067] open("/home/patrick/.doom3/darkmod/gamex86.so", O_RDONLY) = 120
[pid 3067] open("/home/patrick/.doom3/darkmod/gamex86.so", O_RDONLY) = 120
dlopen '/home/patrick/.doom3/darkmod/gamex86.so' failed: /home/patrick/.doom3/darkmod/gamex86.so: undefined symbol: _ZN5boost6system19get_system_categoryEv
Shutting down sound hardware
----------- Alsa Shutdown ------------
close pcm
Process 3069 detached
dlclose
--------------------------------------
idRenderSystem::Shutdown()
Fatal X Error:
Major opcode of failed request: 105
Minor opcode of failed request: 0
Serial number of failed request: 58
[pid 3067] open("/usr/share/X11/XErrorDB", O_RDONLY) = 109
[pid 3067] open("/usr/share/X11/locale/locale.alias", O_RDONLY) = 109
[pid 3067] open("/usr/share/X11/locale/locale.dir", O_RDONLY) = 109
[pid 3067] open("/usr/share/X11/locale/C/XLC_LOCALE", O_RDONLY) = 109
[pid 3067] open("/usr/share/X11/locale/locale.alias", O_RDONLY) = 109
[pid 3067] open("/usr/share/X11/locale/locale.dir", O_RDONLY) = 109
[pid 3067] open("/usr/share/X11/locale/C/XLC_LOCALE", O_RDONLY) = 109
BadValue (integer parameter out of range for operation)
Sys_Error: couldn't load game dynamic library
Process 3067 detached

Whichs tells me it IS my .so - now I wonder : dlopen '/home/patrick/.doom3/darkmod/gamex86.so' failed: /home/patrick/.doom3/darkmod/gamex86.so: undefined symbol: _ZN5boost6system19get_system_categoryEv <- WTF is this mishmashed half-baked code?

I double-checked all dependencies again. Everything's in (and even more).:blink:

 

(I don't think my minimal code changes have any impact as it works perfectly under windows and just TWO lines of ocde were really modified, it's a compile problem... But WHAT?)

 

Oh - something that MIGHT be relevant : I'm using Karmic. Maybe that's why I had to go look for some more dependencies in the first place. Then again I don't see the point in reinstalling SourceMage or Slack (or even Fedo). There's no reason it should fail on a deb-based distro. :P

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Link to comment
Share on other sites

_ZN5boost6system19get_system_categoryEv <- WTF is this mishmashed half-baked code?

That's C++ for you - half-baked all the way through. :P Seriously though, that's a decorated name, referring to a function in one of the Boost libraries. (Name decoration is also referred to as name mangling, for obvious reasons. But it's necessary to get C++ features like objects and namespaces working for library linking purposes, so all C++ compilers do it as a matter of course.)

 

Evidently it's failing to find a relevant .so at runtime. Perhaps you could set the environment variable LD_LIBRARY_PATH to point to whatever directory contains those Boost dependencies.

My games | Public Service Announcement: TDM is not set in the Thief universe. The city in which it takes place is not the City from Thief. The player character is not called Garrett. Any person who contradicts these facts will be subjected to disapproving stares.
Link to comment
Share on other sites

Well well, can you see that? I cleaned my mess up, downgraded to stock 1.38 libboosts, and tried to compile again. Compilation fails right before the end, because of libboost_filesystem.a missing. Browsed through the installed files of libboost-filesystem-dev, and the only .a I found is libboost_filesystem-mt.a.

That's where it becomes... comical. ln -s'ing the second to the first lets the compilaiton finish without complaining... And produces the same mess as before. I'll try hunting a libboost-filesystem-dev down and see if I can find a correct .a (in the hopes it's the only faulty library)

Otherwise I'll have a look at that LD_LIBRARY_PATH. It'll be a first. Even more fun! \o/

 

 

 

 

EDIT - Oh well. Dependency hell on one hand, no correct libboost on the other. Gotta love those quick-release distros. I'll rollback to 8.04LTS to see if the grass is greener, otherwise I guess I'm screwed here. Never got such a problem on my hands while compiling O_o

 

 

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Link to comment
Share on other sites

Okayyy... I guess some of you fine guys are using GNU/Linux to compile TDM. A question:

What kind of distro are you using?

 

I finally got to compile the stuff alright. Yet it required me to go through a whole new shiny install of Hardy, in VM. The newer version of libboost (and god knows what else) killed the compilation, and downgrading to such "old" versions sent me right to dependency hell... Anyway, now I'm ready to package and move on at last. Tests on my 64-bit Karmic install went absolutely fine, so I guess I got it right. :)

 

I'm not afraid of VM'ing, dual-, triple-, quad-, n-booting. I'm just wondering... Having something that'll definitely become obsolete (even though there's still one or two years for the Hardy I've been using) just makes me... uncomfortable. Especially given you never know when your rig'll blow in your face.:blush:

(and I like doing my fair bit of distro-hopping anyway. If I can discover some sweet underrated distro on the way, all for the better. :laugh:)

 

Oh, and another question : how is it my .so is 6.5 megs (not counting the "debug" version of course) compared to the 7.4 of the base version (again) ?

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Link to comment
Share on other sites

Anyone having problems with running TDM in a linux environment (running Gentoo here)? I get the GLIBCXX_3.4.9 error even though I removed the /usr/local/games/doom3/libstdc++.so.6 and /usr/local/games/doom3/libgcc_s.so.1. It seems the only way is to recompile TDM (since TDM is explicitly searching for glibcxx 3.4.9)... or is there another way?

Link to comment
Share on other sites

Anyone having problems with running TDM in a linux environment (running Gentoo here)?

Nope. No problems on 64bit Gentoo here. Works like a charm. :)

 

I get the GLIBCXX_3.4.9 error even though I removed the /usr/local/games/doom3/libstdc++.so.6 and /usr/local/games/doom3/libgcc_s.so.1. It seems the only way is to recompile TDM (since TDM is explicitly searching for glibcxx 3.4.9)... or is there another way?

Sorry, but the rest of your post sounds like the middle of a conversation where I missed the beginning. I'd be happy to help but I don't understand the problem you're having.

 

What are you system details, are you running 32bit or 64 etc?

Do you have Doom3 correctly installed and working? Is it patched to 1.3.1.1304?

If D3 is installed in /usr/local/games rather than /opt how did you install it? Not through portage?

 

Is your problem with installing TDM or getting it to run properly once installed?

I assume you are just trying to install TDM with tdm_update.linux not build it from source is that correct?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • Petike the Taffer

      I've finally managed to log in to The Dark Mod Wiki. I'm back in the saddle and before the holidays start in full, I'll be adding a few new FM articles and doing other updates. Written in Stone is already done.
      · 0 replies
    • nbohr1more

      TDM 15th Anniversary Contest is now active! Please declare your participation: https://forums.thedarkmod.com/index.php?/topic/22413-the-dark-mod-15th-anniversary-contest-entry-thread/
       
      · 0 replies
    • JackFarmer

      @TheUnbeholden
      You cannot receive PMs. Could you please be so kind and check your mailbox if it is full (or maybe you switched off the function)?
      · 1 reply
    • OrbWeaver

      I like the new frob highlight but it would nice if it was less "flickery" while moving over objects (especially barred metal doors).
      · 4 replies
    • nbohr1more

      Please vote in the 15th Anniversary Contest Theme Poll
       
      · 0 replies
×
×
  • Create New...