ManiaDrive is a free clone of Trackmania, the great game from Nad
ManiaDrive is a free clone of Trackmania, the great game from Nadéo studio, and is an arcade car game on acrobatic tracks, with a quick and nervous gameplay (tracks almost never exceed one minute), and features a network mode, as the original.
I would like to make an ebuild for this as it looks like a fun game, but unless I'm mistaken, the project has not provided source tarballs for their releases.
yes, sources are availible via svn only
Did anyone ask upstream to provide source tarballs for future releases? I tried the binary but it was a bit crash-happy (and I don't mean my driving).
I asked for source tarball on the forum (in french)
they said we should wait for the next version because current one require write rights in the data repertory
ManiaDrive 1.1 is out and there is a source-release:
I dont know if its worth anything as it pulls stuff like php from the internet when running configure...
It depends of Raydium (www.raydium.org) which has a tarball dated of Sep 2005, and a nightly snapshot of svn source.
Raydium depends on PHP 5 and I think on ODE CVS too.
So I don't think it's worth to write a ManiaDrive ebuild if raydium-9999 and ode-9999 are needed too.
From ManiaDrive FAQ:
Two dependencies are automatically downloaded from configure script:
* ODE (Open Dynamics Engine)
* PHP (v5)
The problem here is that a lot of Linux distros do not provides PHP as a library, but only as a CLI program and an Apache module. ODE is released by distros in a lot of various versions (0.3x, 0.5, 0.6, CVS), wich makes things very complex for us. As a packager, you must know that Raydium "configure" script does not generates anything (no config.h nor Makefile) and is only here to download ODE (from our server) and PHP (from www.php.net) and checks all other dependencies, so it's possible to package the game without calling configure script and provide these libraries in another way.
Created attachment 94572 [details, diff]
patch to add --no-download to the configure script.
So that we can download those files ourselves.
Created attachment 94573 [details, diff]
Created attachment 94574 [details, diff]
this patch remove the openal tests which cause security violation (access to /dev/dsp)
Created attachment 94575 [details]
This ebuild make a static version of maniadrive using the ode and php5 tarballs downloaded in SRC_URI (so no download during compilation).
> The problem here is that a lot of Linux distros do not provides PHP as a
> library, but only as a CLI program and an Apache module.
This seems to apply to Gentoo but downloading a php snapshot to build this game is really not an option.
we can use the gentoo mirrors to keep this version of php
Created attachment 94576 [details]
corrected a small typo
I am not sure for the license.
from the README:
License for Code & Art (except music): GNU General Public License (GPL)
License for Music: Creative Commons 2.0 (CC2)
how to write that in the ebuild ?
Created attachment 94612 [details]
Tidied ebuild. The licence involves a bit of guesswork as to the details.
Note that the epatch commands have a deliberately hard-coded version, so that they do not refer to non-existent patch files on a version bump.
The two nvidia addwrites in src_compile() were required, due to the test in line 326 of the "configure" script - I suppose that test should be disabled.
use system ode
Created attachment 94619 [details]
new ebuild which change the version string to allow saving scores.
Fails for me on AMD64.
gcc: raydium/ode/lib/libode.a: No such file or directory
make: *** [libraydium.so.0.0] Error 1
make: *** Waiting for unfinished jobs....
File created: libraydium.a.0.0
(In reply to comment #19)
> gcc: raydium/ode/lib/libode.a: No such file or directory
Try: emerge dev-games/ode
Doesn't help. It seems to be searching for it inside its own source.
Created attachment 94836 [details]
maniadrive-1.2 is already out.
this ebuild use the 1.1 binary package because there is no change in the data.
can someone upload the new source package on the gentoo mirrors ?
ManiaDrive-1.2 segfaults beyond the first screen (when I press Story or Internet Tracks). It's difficult to establish why as I see multiple labels passing by that might indicate that something went wrong. I've searched for similarities at their forums but there are not many solutions to be found. I also should note I have a Core2Duo, as I've seen problem posts about this.
This is when I press "Story":
Raydium: Raydium 3D Game Engine
Raydium: version 0.705
Raydium: command line args: OK
Raydium: chdir to './': OK
Raydium: using '/home/pjv/.mania_drive' as home dir
Raydium: Requesting 800x600:32 mode
Raydium: Xinerama detected with 1 screens:
Raydium: *** screen 0 : 1440x900 at (0,0)
Raydium: using Xinerama screen 0
Raydium: Found 1440x900 with 24 bpp color and 24 bits zbuffer (stencil is 1)
Raydium: using GeForce 8600M GS/PCI/SSE2, from NVIDIA Corporation (version 2.1.2 NVIDIA 173.14.09)
Raydium: Signal Handlers: OK
Raydium: OpenGL extensions: OK
Raydium: Platform "4xfloat" vector size is: 16 byte(s) long
Raydium: OpenGL implementation maximum texture size: 8192x8192
Raydium: OpenGL hardware providing 4 texture unit(s)
Raydium: vertex arrays memory: OK
Raydium: path: OK
Raydium: keyboard: OK
Raydium: mouse: OK
Raydium: /dev/input/event0: cannot open (rw), no Force Feedback.
Raydium: joy: FAILED (cannot open /dev/js0 and /dev/input/js0)
Raydium: sound: Buffer creation successfull
Raydium: sound: OK, using 'default device'
Raydium: PHP support: OK
Raydium: atexit functions: OK
Raydium: lights: OK
Raydium: fog: OK
Raydium: objects: OK
Raydium: network: OK
Raydium: timer: detection: 1 iterations: diff: 1 steps (1000000/sec)
Raydium: timecall: method accuracy = 0.001 ms (999999.94 Hz)
Raydium: timecall: Using basic gettimeofday() method
Raydium: timecall: OK (999999 Hz)
Raydium: timecall: softcall 0: 1 Hz (1000000 clocks interval)
Raydium: particle: OK
Raydium: gui: OK
Raydium: video (live): OK
Raydium: shadow: OK
Raydium: HDR: OK
Raydium: shaders: OK
Raydium: webserver: OK
Raydium: Raydium engine reseted to original state
Raydium: timecall: callback 1: 400 Hz (2500 clocks interval)
Raydium: physics: ODE Net: 10 element(s)/packet
Raydium: physics: OK
Raydium: RegAPI: OK
Raydium: Engine is now ready.
Raydium: sound: Tried to set negative or 0 Pitch , clipped to 0.1
Raydium: Texture num 1 (BOXfront.tga) loaded: 512x512, 3 Bpp (b0 lm0 hdr0)
Raydium: Texture num 2 (BOXback.tga) loaded: 512x512, 3 Bpp (b0 lm0 hdr0)
Raydium: Texture num 3 (BOXleft.tga) loaded: 512x512, 3 Bpp (b0 lm0 hdr0)
Raydium: Texture num 4 (BOXright.tga) loaded: 512x512, 3 Bpp (b0 lm0 hdr0)
Raydium: Texture num 5 (BOXbottom.tga) loaded: 512x512, 3 Bpp (b0 lm0 hdr0)
Raydium: Texture num 6 (BOXtop.tga) loaded: 512x512, 3 Bpp (b0 lm0 hdr0)
Raydium: Texture num 7 (theme-maniadrive.tga) loaded: 256x256, 4 Bpp (b1 lm0 hdr0)
Raydium: Texture num 8 (font3.tga) loaded: 512x512, 1 Bpp (b1 lm0 hdr0)
Raydium: timecall: softcall 2: 1 Hz (1000000 clocks interval)
Raydium: Changing game state to 1
Raydium: timecall: WARNING ! 0 Hz callback (num 1)
Raydium: Texture num 9 (video) FAKED: 256x256, 3 Bpp (b0 lm0 hdr0)
Raydium: live: texture 'video' created
Raydium: video: mania_menu_v1.jpgs (0) as live texture video (0), 256x256 20.00 fps (703 frames)
Raydium: Texture num 10 (BOXmania_cursor.tga) loaded: 32x32, 4 Bpp (b1 lm0 hdr0)
Raydium: ODE: Error: Cannot delete object: invalid name or index
Raydium: Texture num 11 (mania_logo2.tga) loaded: 512x512, 3 Bpp (b0 lm0 hdr0)
Raydium: Texture num 12 (BOXmania_music_popup.tga) loaded: 512x128, 4 Bpp (b1 lm0 hdr0)
Raydium: Texture num 13 (font2.tga) loaded: 512x512, 1 Bpp (b1 lm0 hdr0)
Raydium: Changing game state to 2
Raydium: timecall: callback 1: 400 Hz (2500 clocks interval)
I've tried what is suggested here (gdb): http://memak.raydium.org/viewtopic.php?t=512
But I don't succeed in running the actual game rather than the white window with purple cursor box (from mania_drive.bin) in gdb, even with the work dir set as far as I can tell. So I'm not getting the segfault in gdb, only much of these:
"Raydium: live: cannot draw live mask: wrong name or id"