Release The Ur-Quan Masters


Ok by installing a bunch of header files, I got UQM to compile on my pandora using cdevtools.

Here is the current configuration

  -= Main menu =-
   1. Type of build                        Optimised release build
   2. OpenGL graphics support              Don't include OpenGL graphics support
   3. Sound backend                        Use MixSDL for sound (internal)
   4. Tracker music support                System libmikmod
   5. Ogg Vorbis codec                     Xiph libogg + libvorbis
   6. Network Supermelee support           IPv4; no IPv6
   7. Joystick support                     disabled
   8. Supported file i/o methods           Direct & .zip file i/o
   9. Graphics/Sound optimizations         Only plain C code
  10. Thread library                       SDL-controlled thread library
  11. Installation paths                   [...]
 

I understand that you didnt change the source code. What I would like is to have your changes to the build flags, installation paths, and control configuration.

Right now my build errors out with


/usr/bin/ld: cannot find -lmikmod
but I have mikmod installed


/mnt/utmp/cdevtools/mysrc/uqm-0.7.0$ ls /usr/lib/libmikmod.so.2*
/usr/lib/libmikmod.so.2  /usr/lib/libmikmod.so.2.0.4

Any ideas?
 
Last edited by a moderator:
Ok by installing a bunch of header files, I got UQM to compile on my pandora using cdevtools.

Here is the current configuration

  -= Main menu =-


   1. Type of build                        Optimised release build


   2. OpenGL graphics support              Don't include OpenGL graphics support


   3. Sound backend                        Use MixSDL for sound (internal)


   4. Tracker music support                System libmikmod


   5. Ogg Vorbis codec                     Xiph libogg + libvorbis


   6. Network Supermelee support           IPv4; no IPv6


   7. Joystick support                     disabled


   8. Supported file i/o methods           Direct & .zip file i/o


   9. Graphics/Sound optimizations         Only plain C code


  10. Thread library                       SDL-controlled thread library


  11. Installation paths                   [...]

I understand that you didnt change the source code. What I would like is to have your changes to the build flags, installation paths, and control configuration.

Right now my build errors out with


/usr/bin/ld: cannot find -lmikmod
but I have mikmod installed


/mnt/utmp/cdevtools/mysrc/uqm-0.7.0$ ls /usr/lib/libmikmod.so.2*
/usr/lib/libmikmod.so.2  /usr/lib/libmikmod.so.2.0.4

Any ideas?
Either create a link of that lib inside cdevtools/usr/lib:

cd /mnt/utmp/cdevtools/usr/lib
ln -s /usr/lib/libmikmod.so.2 libmikmod.so.2


or add a rpath-link statement to your ld, something like (in the CFLAGS export for example):

export CFLAGS="$CFLAGS -Wl,-rpath-link=/mnt/utmp/cdevtools/usr/lib:/lib:/usr/lib"


(or use codeblocks ...)
 
Either create a link of that lib inside cdevtools/usr/lib:


cd /mnt/utmp/cdevtools/usr/lib
ln -s /usr/lib/libmikmod.so.2 libmikmod.so.2
/mnt/utmp/cdevtools/usr/lib# ln -s /usr/lib/libmikmod.so.2 libmikmod.so.2


ln: creating symbolic link `libmikmod.so.2': Operation not permitted

Doesnt work, even as root. Copying the file also didnt work (this PND mounts readonly?)

To see what ldconfig was searching i ran ldconfig --print-cache |more, and it showed only files from /lib and /usr/lib, none from /mnt/utmp/cdevtools/usr/lib. No links to /mnt/utmp/cdevtools/usr/lib (!)

So.. I edited an ld.so.conf containing all paths to libs and put that in /etc and ran ldconfig

/mnt/utmp/cdevtools/usr/lib


/usr/lib


/lib

ldconfig --print-cache now shows all libs

still it errors on -lmikmod

so I did

/mnt/utmp/cdevtools/mysrc/uqm-0.7.0$ grep /usr/lib *


build.vars:uqm_LDFLAGS=' -L/mnt/utmp/cdevtools/usr/lib -lSDL -lpthread -L/mnt/utmp/cdevtools/usr/lib -lSDL -lpthread -lSDL_image -L/usr/lib -lmikmod -ldl -L/mnt/utmp/cdevtools/usr/lib -lvorbisfile -lvorbis -lm -logg    -L/mnt/utmp/cdevtools/usr/lib -lz  '

which if I am correct tells ldd to look in the link cache for where mikmod is stored
 
Last edited by a moderator:
Either create a link of that lib inside cdevtools/usr/lib:


cd /mnt/utmp/cdevtools/usr/lib
ln -s /usr/lib/libmikmod.so.2 libmikmod.so.2
/mnt/utmp/cdevtools/usr/lib# ln -s /usr/lib/libmikmod.so.2 libmikmod.so.2


ln: creating symbolic link `libmikmod.so.2': Operation not permitted

Doesnt work, even as root. Copying the file also didnt work (this PND mounts readonly?)

To see what ldconfig was searching i ran ldconfig --print-cache |more, and it showed only files from /lib and /usr/lib, none from /mnt/utmp/cdevtools/usr/lib. No links to /mnt/utmp/cdevtools/usr/lib (!)

So.. I edited an ld.so.conf containing all paths to libs and put that in /etc and ran ldconfig

/mnt/utmp/cdevtools/usr/lib


/usr/lib


/lib

ldconfig --print-cache now shows all libs

still it errors on -lmikmod

so I did

/mnt/utmp/cdevtools/mysrc/uqm-0.7.0$ grep /usr/lib *


build.vars:uqm_LDFLAGS=' -L/mnt/utmp/cdevtools/usr/lib -lSDL -lpthread -L/mnt/utmp/cdevtools/usr/lib -lSDL -lpthread -lSDL_image -L/usr/lib -lmikmod -ldl -L/mnt/utmp/cdevtools/usr/lib -lvorbisfile -lvorbis -lm -logg    -L/mnt/utmp/cdevtools/usr/lib -lz  '

which if I am correct tells ldd to look in the link cache for where mikmod is stored
Your cdevtools.pnd is on a Fat32 or an Ext partition? It looks like Fat32 (bad).

Anyway, you can try my 2nd proposition (with the CFLAGS), because cdevtools use a script to force some rpath parameters (IIRC) that may interfear with your -L... Look at /mnt/utmp/cdevtools/init/ld.ini.cfg or something like that (or use codeblocks)
 
Either create a link of that lib inside cdevtools/usr/lib:


cd /mnt/utmp/cdevtools/usr/lib
ln -s /usr/lib/libmikmod.so.2 libmikmod.so.2
/mnt/utmp/cdevtools/usr/lib# ln -s /usr/lib/libmikmod.so.2 libmikmod.so.2

so I did

/mnt/utmp/cdevtools/mysrc/uqm-0.7.0$ grep /usr/lib *


build.vars:uqm_LDFLAGS=' -L/mnt/utmp/cdevtools/usr/lib -lSDL -lpthread -L/mnt/utmp/cdevtools/usr/lib -lSDL -lpthread -lSDL_image -L/usr/lib -lmikmod -ldl -L/mnt/utmp/cdevtools/usr/lib -lvorbisfile -lvorbis -lm -logg    -L/mnt/utmp/cdevtools/usr/lib -lz  '

which if I am correct tells ldd to look in the link cache for where mikmod is stored
Your cdevtools.pnd is on a Fat32 or an Ext partition? It looks like Fat32 (bad).

Anyway, you can try my 2nd proposition (with the CFLAGS), because cdevtools use a script to force some rpath parameters (IIRC) that may interfear with your -L... Look at /mnt/utmp/cdevtools/init/ld.ini.cfg or something like that (or use codeblocks)
yeah its on fat32 which I gather does not allow modifications inside the pnd.

The CFLAGS doesnt get used by the uqm build.sh script, instead it uses uqm_LDFLAGS, which has a -lmikmod in it, but it is not getting found for some reason
 
FIXED THE PROBLEM!

 ln -s /usr/lib/libmikmod.so.2.0.4 /usr/lib/libmikmod.so

Angstroms libmikmod didnt include a link from libmikmod.so to libmikmod.so.2.0.4 (superzaxxon 1.5 beta)
 
What would make this "winnable" for me would be a version with half-speed combat. Onpon4, would you be interested in hacking the game for this?
The game is certainly winnable. Actually, the AI is so incredibly stupid, winning is much too easy. You just need more practice.

As I said in a PM, I didn't change the UQM source code; all that's different in this Pandora port is the configuration (some different controls to better suit the Pandora, and some altered build settings to make it search for config files in "." rather than "~/.uqm").
OK i got combat slowed to 12fps which makes it winnable for me (sometimes, for example the Terran fighter has no chance against a slylandro probe regardless of combat speed).

Where did you change the "configuration" to enable ABYX buttons? src/libs/input/sdl/keynames.c? src/uqm/controls.h?

Edit: Found the keycontrols in .uqm/override.cfg
 
Last edited by a moderator:
sometimes, for example the Terran fighter has no chance against a slylandro probe regardless of combat speed
The terran fighter isn't really supposed to have a chance against the slylandro probe. Part of the balancing was that some ships will do phenomenally well against some and very weak against others, not that every ship has an equal shot of destroying every other ship. You're supposed to have a varied assortment of ships to handle different situations and be wise enough to duck out when up against something you can't handle.Terran's are weak against the Slylandro probes but will just rip through the Ur-Quan Kzer-Za, for example.
 
I played this game alot on the GP2X back then, hard but good game. However, I never did manual combat, only automated due the lack of my fighting skills and way to fast movements. It's good that the game have these options. :)
 
sometimes, for example the Terran fighter has no chance against a slylandro probe regardless of combat speed
The terran fighter isn't really supposed to have a chance against the slylandro probe. Part of the balancing was that some ships will do phenomenally well against some and very weak against others, not that every ship has an equal shot of destroying every other ship. You're supposed to have a varied assortment of ships to handle different situations and be wise enough to duck out when up against something you can't handle.
Terran's are weak against the Slylandro probes but will just rip through the Ur-Quan Kzer-Za, for example.
Thanks for the tip. I have also read that Spathi Eluders are supposed to survive against Slylandro Probes and I am using that as a sort of baseline for how much easier to make combat for my version of UQM.
 
Thanks for working on this. Making it slower would help the payer to actually discover the strength and weaknesses of the various ships. I was always giving up frustrated after a few attempts because I never did get the feeling of actually controlling something.


edit: could the speed of the games story progression be changed, too? I hate time limits :)
 
Last edited by a moderator:
Where did you change the "configuration" to enable ABYX buttons? src/libs/input/sdl/keynames.c? src/uqm/controls.h?
No, it's the config files in .uqm. There's a shell script in the PND that copies a new default config to the appropriate directory so that the actual default config in the source never gets used.
 
Thanks for working on this. Making it slower would help the payer to actually discover the strength and weaknesses of the various ships. I was always giving up frustrated after a few attempts because I never did get the feeling of actually controlling something.


edit: could the speed of the games story progression be changed, too? I hate time limits :)
Attached is the "Easier Combat" version of Ur Quan Masters. Combat has been slowed to 18fps. Spathi and Terran ships have now been upgraded (speed, weapon damage, weapon range) so that even old people like me should be able to survive most combat encounters. (still it is advisable to save game before entering combat).

To test this version, move your old uqm.pnd out of -media/[sDCARDNAME]pandora/menu (or wherever it is stored). Then make SURE that "The Ur Quan Masters" dissappears from the menu (how can we force this update?) and copy uqmE.pnd into the menu dir.

I will continue to investigate why this .pnd creates the application title "The Ur-Quan Masters" instead of "The Ur-Quan Masters Easier" as specified in the PXML.

uqmE.pnd
 

Attachments

  • uqmE.pnd
    9.8 MB · Views: 184
Last edited by a moderator:
I can't see the attachment ... maybe you didn't add it to your post?
 
I found a problem with this UQM build.  When I remove the SD card, The Ur-Quan Masters remains in the application menu! Can anyone confirm? It should disappear.   [edit] the problem was that the menu found a duplicate .pnd stored on the /media/mmcblk1p1 root dir and added it to the menu. Removing both SD cards cleared the entry from the menu...

[edit] attachment added to post
 
Last edited by a moderator:
tested this ... but if I unmount the USB-stick I'm using it dissappears from the menu ... maybe you need to restart because of previous problems?

but I can confirm the wrong title ... I will have a look at the pnd-file ...

Edit: unpacked the pnd and packed again and now the correct title is shown ... so this is not a problem with the PXML

uqmE.pnd
 

Attachments

  • uqmE.pnd
    9.8 MB · Views: 176
Last edited by a moderator:
tested this ... but if I unmount the USB-stick I'm using it dissappears from the menu ... maybe you need to restart because of previous problems?

but I can confirm the wrong title ... I will have a look at the pnd-file ...

Edit: unpacked the pnd and packed again and now the correct title is shown ... so this is not a problem with the PXML

attachicon.gif
uqmE.pnd
Ok now I see "Ur Quan Masters Easier" in the title. (Why the heck didn't it show up before??)

Now it just needs a bit of testing / feedback and then I can upload to the repo...
 
Last edited by a moderator:
How did you create that pnd?

Did you use an other one (the one on the repo) as a basis?
 
Yes I used the UQM (newer version) available in repo, copied to a windows computer, then used PNDTools to extract, edited the PXML in Wordpad, then recreated the PND using a different name.
 
Back
Top