Author Topic: tremulous on x86_64 linux  (Read 5994 times)

tomek-k

  • Guest
tremulous on x86_64 linux
« on: August 21, 2006, 10:09:05 pm »
Hey. I don't know if someone asked the question before, but I couldn't search the forum as your search engine is broken :P (see http://www.tremulous.net/phpBB2/viewtopic.php?t=1768)

What do I have to do to run tremulous on AMD64 linux? do I have to compile it?
The x86 version won't run (it claims that it cannot find the libsdl library - I have it installed but in 64bit version).

Maby you could add an x86_64 version for downloading?

Stof

  • Posts: 1343
  • Turrets: +1/-1
tremulous on x86_64 linux
« Reply #1 on: August 21, 2006, 10:41:56 pm »
I've compiled an x86_64 version of Trem and it works but it was slow as hell. Better for you to install the 32bit version of the SDL.
urphy's rules of combat
8 ) Teamwork is essential; it gives the enemy someone else to shoot at.
18 ) Make it too tough for the enemy to get in and you can't get out.

Shaydee

  • Posts: 29
  • Turrets: +0/-0
tremulous on x86_64 linux
« Reply #2 on: August 22, 2006, 07:10:19 am »
I can confirm that this is a good idea.
The Q3 engine was never designed for 64bit and/or multiple CPUs.
y hoovercraft is full of eels.

tomek-k

  • Guest
tremulous on x86_64 linux
« Reply #3 on: August 22, 2006, 11:45:24 am »
and how do I install the 32bit version of SDL? Should I just install the 32bit deb package?
But wouldn't is overwrite the 64bit one?

Stof

  • Posts: 1343
  • Turrets: +1/-1
tremulous on x86_64 linux
« Reply #4 on: August 22, 2006, 11:51:48 am »
Quote from: "tomek-k"
and how do I install the 32bit version of SDL? Should I just install the 32bit deb package?
But wouldn't is overwrite the 64bit one?

I think it'll work. After all, the 64bit version is in /usr/lib64/libSDL.xxx whereas the 32bit is in /usr/lib/libSDL.xxx

I say that because it's how it works on Mandriva and IIRC, they "stole" the idea from Debian :P
urphy's rules of combat
8 ) Teamwork is essential; it gives the enemy someone else to shoot at.
18 ) Make it too tough for the enemy to get in and you can't get out.

tomek-k

  • Guest
tremulous on x86_64 linux
« Reply #5 on: August 23, 2006, 12:24:33 pm »
Quote from: "Stof"
the 64bit version is in /usr/lib64/libSDL.xxx whereas the 32bit is in /usr/lib/libSDL.xxx


hmm... in my 64bit debian the libSDL.xxx is in /usr/lib/ (Debian etch testing AMD64), there is no libSDL.xxx in /usr/lib64/. There (in /usr/lib/) is a symlink (libSDL-1.2.so.0) and the library itself (libSDL-1.2.so.0.11.0). The symlink is linked to the library.

Maby I should just redirect the symlink to the 32bit version on my 32bit debian (will it work?? - I must try)?

I have also a 64bit gentoo installed but I don't use it as I haven't succeeded in running the xorg there (I admire people who have gentoo installed and working - I've tried two times and never been able to run it with the xserver :P )... And in the gentoo the symlink libSDL-1.2.so.0 and the library libSDL-1.2.so.0.11.0 both are in the /usr/lib64/. There is also a libSDL.so symlink linked to the libSDL-1.2.so.0 symlink.

Stof

  • Posts: 1343
  • Turrets: +1/-1
tremulous on x86_64 linux
« Reply #6 on: August 23, 2006, 12:28:15 pm »
Then I guess Mandriva didn't steal the idea from Debian in the end.

Anyway, the solution is to install both the 32bit and the 64bit of the libSDL. If your distro makes that impossible to do, then you are fucked. Might I suggest a Mandriva for your next distro since things work correctly here ? ;)
urphy's rules of combat
8 ) Teamwork is essential; it gives the enemy someone else to shoot at.
18 ) Make it too tough for the enemy to get in and you can't get out.

Phenax

  • Posts: 49
  • Turrets: +0/-0
tremulous on x86_64 linux
« Reply #7 on: August 24, 2006, 09:02:50 pm »
Better yet -- compile Tremulous from source. I run Tremulous without any x86-emulation.

Stof

  • Posts: 1343
  • Turrets: +1/-1
tremulous on x86_64 linux
« Reply #8 on: August 24, 2006, 09:54:46 pm »
Yuck ! I did that and performance was horrible with a 64 binary ! Try the 32bit one you'll see how it works.

PS : this is not emulation.
urphy's rules of combat
8 ) Teamwork is essential; it gives the enemy someone else to shoot at.
18 ) Make it too tough for the enemy to get in and you can't get out.

tomek-k

  • Guest
tremulous on x86_64 linux
« Reply #9 on: August 26, 2006, 01:16:34 pm »
Unfortunately it is not possible to install i386 .deb package on the AMD64 debian... Maby it could be done with some --force parameter, or so, but who knows if then something else wouldn't be wrong :(

I think I will try the compilation then.

Stof

  • Posts: 1343
  • Turrets: +1/-1
tremulous on x86_64 linux
« Reply #10 on: August 26, 2006, 01:55:00 pm »
Yes you can install a 32bit compatibility libSDL on Debian. Only Ubuntu doesn't ship with them, regular Debian does ( or did some times ago )
urphy's rules of combat
8 ) Teamwork is essential; it gives the enemy someone else to shoot at.
18 ) Make it too tough for the enemy to get in and you can't get out.

tomek-k

  • Guest
tremulous on x86_64 linux
« Reply #11 on: August 26, 2006, 06:49:25 pm »
I could not find the 32 compatibility libSDL in debians repo, so I've compiled tremulous and it works great!
Sometimes it loads a little longer than the x86 version, but during the gameplay I don't see any difference.

Maby the performance of tremulous compiled for x86_64 depends on some system configuration?

My system is:

hw:
AMD Sempron 2500+ (1.4 GHz), 64bit
GeForce 6600 LE

sw:
Debian Etch testing AMD64
libSDL 1.2.11 (for x86_64)
nVidia display drivers 1.0-8762 (for x86_64)
OpenGL 2.0 from nVidia (from the display drivers, also for x86_64)

Stof

  • Posts: 1343
  • Turrets: +1/-1
tremulous on x86_64 linux
« Reply #12 on: August 26, 2006, 07:08:19 pm »
Try the maps know for causing big slowdowns : Uncreation or Transit in the big room. Try especially Uncreation as human and damage the starting turrets until they smoke.
urphy's rules of combat
8 ) Teamwork is essential; it gives the enemy someone else to shoot at.
18 ) Make it too tough for the enemy to get in and you can't get out.

tomek-k

  • Guest
tremulous on x86_64 linux
« Reply #13 on: August 26, 2006, 07:53:13 pm »
Quote from: "Stof"
Try the maps know for causing big slowdowns : Uncreation or Transit in the big room. Try especially Uncreation as human and damage the starting turrets until they smoke.


I compared the maps on both systems (32 and 64 bit).
In Uncreation I had about 5-10 fps less in the 64 bit version. In Transit the fps was never lower than my maxfps, which is 75. I play with all gfx options set to max (highest level detail, etc.)
I was of course the only player - I created a local server.

tomek-k

  • Guest
tremulous on x86_64 linux
« Reply #14 on: August 27, 2006, 03:35:43 pm »
and during the real gameplay, unfortunately, the game is really slower (on harder moments)...

So, where can be the problem?

Quote from: "Shaydee"
I can confirm that this is a good idea.
The Q3 engine was never designed for 64bit and/or multiple CPUs.


I don't understand (though i'm a C/C++ programmer :P ), if the source code is written for 32bit processors (doesn't use 64bit data types) than compiling it for a 64bit processor only gives it more address space in memory. If the code is written well there should be no difference in programme's performance. I had no errors during compilation, so the code is good, but maby there were some warnings?

Maby there is a way to "redesign" the code for 64bit processors, and I am sure that it is worth the effort.

Stof

  • Posts: 1343
  • Turrets: +1/-1
tremulous on x86_64 linux
« Reply #15 on: August 27, 2006, 07:24:32 pm »
That's the Quake 3 VM machine which compiles to somewhat native code on the 32bit build but has to go all software interpreter on some other builds like the x86_64 I think.
urphy's rules of combat
8 ) Teamwork is essential; it gives the enemy someone else to shoot at.
18 ) Make it too tough for the enemy to get in and you can't get out.

tomek-k

  • Guest
tremulous on x86_64 linux
« Reply #16 on: August 27, 2006, 08:20:10 pm »
Hmm... sounds really scary...
I've looked on the Q3 engine's forum (http://www.quakesrc.org/forums/viewforum.php?f=20) but have only managed to find some thread about some hack (http://www.quakesrc.org/forums/viewtopic.php?t=5470&highlight=x8664), which, as I understood, was never accepted.

BTW will the next versions of Trem use the same engine, or will the engine be developed? Or will Trem use some newer Q3 engine developed by Q3 engine developers?