LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Games (https://www.linuxquestions.org/questions/linux-games-33/)
-   -   How might I go about running Tux: A Quest for Herring on modern Debian? (https://www.linuxquestions.org/questions/linux-games-33/how-might-i-go-about-running-tux-a-quest-for-herring-on-modern-debian-4175734513/)

TronNerd82 03-03-2024 03:43 PM

How might I go about running Tux: A Quest for Herring on modern Debian?
 
For starters, where might I even download the game? Second, once I do find the game, what might I need to get it running? Has anyone successfully run the game anytime recently?

I'd just like to try playing this rather historic (if underrated) FOSS game starring everyone's favorite chubby penguin.

teckk 03-03-2024 03:53 PM

https://github.com/malespiaut/tuxaqfh
https://sourceforge.net/projects/tux....0.14-classic/

Looks lik it is cpp.
https://github.com/malespiaut/tuxaqf...er/src/tux.cxx

You can try to build it if you have the depends installed, if it is not in debians repos.

michaelk 03-03-2024 04:02 PM

Never mind wrong game...

enigma9o7 03-03-2024 06:28 PM

I tried on Debian Stable from the sourceforge package, but failed. The github link is missing configure, so didn't know how to try that one.

Code:

Making all in src
make[1]: Entering directory '/tmp/tux_aqfh-1.0.14/src'
c++  -g -O2 -O6 -Wall  -o tux_aqfh  camera.o components.o fade_out.o feature.o gfx.o globalstate.o gui.o hooks.o score.o isect.o level.o material.o ocean.o orca.o penguin.o rocket.o sound.o starwing.o status.o surf_rev.o tux.o tuxstate.o whale.o slamRun.o slamCodeGen.o slamExpression.o slam.o slamStatement.o slamSymbols.o slamToken.o  -lplibsl -lplibssg -lplibpu -lplibfnt -lplibsg -lplibul    -lpthread -lX11 -lXi -lXext -lXmu  -lm
/usr/bin/ld: gfx.o: undefined reference to symbol 'glEnable'
/usr/bin/ld: /lib/i386-linux-gnu/libGL.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:171: tux_aqfh] Error 1
make[1]: Leaving directory '/tmp/tux_aqfh-1.0.14/src'
make: *** [Makefile:113: all-recursive] Error 1


teckk 03-04-2024 07:44 AM

Get source.
https://github.com/malespiaut/tuxaqfh

Start to build it.
Code:

./autogen.sh
configure.ac:8: installing './compile'
configure.ac:5: installing './install-sh'
configure.ac:5: installing './missing'
Makefile.am: installing './INSTALL'
src/Makefile.am: installing './depcomp'

./configure
...
config.status: creating slamcode/Makefile
config.status: creating src/Makefile
config.status: creating wavs/Makefile
config.status: executing depfiles commands

...needs plib

#Get a copy of plib, decompress. build it
Code:

curl https://plib.sourceforge.net/dist/plib-1.8.5.tar.gz -o plib-1.8.5.tar.gz
tar xzf plib-1.8.5.tar.gz

./configure
...
config.status: creating src/net/Makefile
config.status: executing depfiles commands
PLIB configuration information:

  Building FNT library:    yes
  Building JS library:      yes
  Building NET library:    yes
  Building PUI library:    yes
  Building puAux library:  yes
  Building SG library:      yes
  Building PSL library:    yes
  Building SL library:      yes
  Building SSG library:    yes
  Building ssgAux library:  yes
  Building PW library:      yes
  Building UTIL library:    yes
 
make
#many warnings, no errors(old source)
...
rm -f libplibpw.a
ar cru libplibpw.a pw.o pwX11.o pwWindows.o pwMacOSX.o
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib libplibpw.a
make[2]: Leaving directory '/me/cpp/plib/plib-1.8.5/src/pw'
make[2]: Entering directory '/me/cpp/plib/plib-1.8.5/src'
make[2]: Nothing to be done for 'all-am'.
make[2]: Leaving directory '/me/cpp/plib/plib-1.8.5/src'
make[1]: Leaving directory '/me/cpp/plib/plib-1.8.5/src'
make[1]: Entering directory '/me/cpp/plib/plib-1.8.5'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory 'me/cpp/plib/plib-1.8.5

I don't want to install this. plib did build, tuxaqfh look like it is going to build. You don't have to install plib after you build it, but The OP will need to tell tuxaqfh Makefile where it can find pblib, if you leave it in the build dir.

enigma9o7 03-04-2024 10:20 AM

For debian (as topic suggests), easiest just to install libplib-dev package instead of building that manually. I also had to install libxmu-dev and libxi-dev.

The clue I got from you was to run autogen.sh before configure for the github version; that wasn't in the instructions.

But I got a different error than with the sourceforge code.
Code:

/usr/bin/ld: gui.o: in function `GUI::GUI()':
/home/legacy/tuxaqfh/src/gui.cxx:172: undefined reference to `jsJoystick::jsJoystick(int)'
/usr/bin/ld: gui.o: in function `GUI::joystickInput()':
/home/legacy/tuxaqfh/src/gui.cxx:276: undefined reference to `jsJoystick::read(int*, float*)'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:410: tux_aqfh] Error 1
make[1]: Leaving directory '/home/legacy/tuxaqfh/src'
make: *** [Makefile:362: all-recursive] Error 1


teckk 03-04-2024 12:30 PM

Arch has plib in the AUR. I will use this version.
https://aur.archlinux.org/packages/plib
https://aur.archlinux.org/cgit/aur.g...KGBUILD?h=plib

And this source for tuxaqfh
https://github.com/malespiaut/tuxaqfh

Already had libxi, libxmu.

I got the same errors, so...I remarked out lines 172, 276 in gui.cxx

And that compiled.

Code:

./tux_aqfh --help


  WELCOME TO: TUXEDO T. PENGUIN - A QUEST FOR HERRING.
              by Steve and Oliver Baker
                <sjbaker1@airmail.net>
                  http://tuxaqfh.sourceforge.net


                        #####       
                      #######     
                      #  #  #     
                      #" #" #     
 Linux                ##vvvvv##     
 Rules!              ##  vvv  ##   
                    #          ##   
                  ##          ## 
                  ###          ### 
                +++#####      ##++
                ++++++#      #++++++
                +++++++#    #+++++++
                  +++++#######+++++ 
                    +++      +++   


Usage:

    tux_aqfh [OPTIONS]...

Options:
  -h, --help            Display this help message.
  -t, --tux            Play as Tux (the default)
  -g, --gown            Play as Gown
  -r, --reset          Reset game to start (BEWARE!!)
  -d                    Enable various internal debug
  -D, --datadir DIR    Load the game data from DIR defaults
                        to /usr/local/share/games/tux_aqfh

To the OP. It is build-able from the above source.

TronNerd82 03-04-2024 09:12 PM

Quote:

Originally Posted by teckk (Post 6487595)
Arch has plib in the AUR. I will use this version.
https://aur.archlinux.org/packages/plib
https://aur.archlinux.org/cgit/aur.g...KGBUILD?h=plib

And this source for tuxaqfh
https://github.com/malespiaut/tuxaqfh

Already had libxi, libxmu.

I got the same errors, so...I remarked out lines 172, 276 in gui.cxx

And that compiled.

Code:

./tux_aqfh --help


  WELCOME TO: TUXEDO T. PENGUIN - A QUEST FOR HERRING.
              by Steve and Oliver Baker
                <sjbaker1@airmail.net>
                  http://tuxaqfh.sourceforge.net


                        #####       
                      #######     
                      #  #  #     
                      #" #" #     
 Linux                ##vvvvv##     
 Rules!              ##  vvv  ##   
                    #          ##   
                  ##          ## 
                  ###          ### 
                +++#####      ##++
                ++++++#      #++++++
                +++++++#    #+++++++
                  +++++#######+++++ 
                    +++      +++   


Usage:

    tux_aqfh [OPTIONS]...

Options:
  -h, --help            Display this help message.
  -t, --tux            Play as Tux (the default)
  -g, --gown            Play as Gown
  -r, --reset          Reset game to start (BEWARE!!)
  -d                    Enable various internal debug
  -D, --datadir DIR    Load the game data from DIR defaults
                        to /usr/local/share/games/tux_aqfh

To the OP. It is build-able from the above source.

Followed your advice but I'm still having issues. The compilation goes fine until it tries to compile in the penguin directory, to which it throws up the following lines:

Code:

Making install in penguin
make[1]: Entering directory '/home/tronnerd82/gits/tuxaqfh/penguin'
make[1]: *** No rule to make target 'configure.ac', needed by 'all-am'.  Stop.
make[1]: Leaving directory '/home/tronnerd82/gits/tuxaqfh/penguin'
make: *** [Makefile:362: install-recursive] Error 1

I'm not sure if it's doing this because I have the files in a special directory for things I get off of GitHub and it expects to be somewhere else, or if there's more code that needs to be commented out or what. Not to seem noob-ish but I require further help with this, as C++ and Makefile syntax are not my specialty.

Any help is appreciated, and I'm grateful to have gotten this far. All of you guys' help means a lot.

teckk 03-05-2024 07:16 AM

Did that spit out an executable at <your_build_path>/tuxaqfh-master/src/tux_aqfh

Will that executable run?
Code:

<your_build_path>/tuxaqfh-master/src/tux_aqfh --help
I did not work out all of the changes needed in that code tree to make it work on a modern sound system, modern joystick etc. It was just to get it running. That executable has a segfault when I try and use some of those switches.

If you want to use this old source tree, you'll have work the problems, do some research and see what needs to be done to fix it. It may be syntax has changed, paths have changed....May take you a while.

This will be a good opportunity for you to learn. It's more enjoyable to work on something that you actually want to use, rather than just an example out of a book.

You can't, on a forum like this, help someone debug a code tree like that. The thread will be 80 posts long, and still nothing.

You need to learn.

Here is what you need.
https://cplusplus.com/doc/tutorial/
https://en.cppreference.com/w/
https://cplusplus.com/reference/

https://plib.sourceforge.net/
https://plib.sourceforge.net/examples.html

Search youtube for codebeauty, she gives lots of examples.

You can search a code tree for occurrences of <something> that you are looking for.

Example:
Code:

cd <path>/tux/tuxaqfh-master

grep -R '<plib' *
src/components.cxx:#include <plib/ssg.h>
src/penguin.h:#include <plib/ssg.h>
src/penguin.h:#include <plib/ssgKeyFlier.h>
src/rocket.h:#include <plib/ssg.h>
src/orca.h:#include <plib/ssg.h>
src/orca.h:#include <plib/ssgKeyFlier.h>
src/tux.h:#include <plib/ssg.h>
src/tux.h:#include <plib/ssgKeyFlier.h>
src/tux.h:#include <plib/sl.h>
src/tux.h:#include <plib/js.h>
src/tux.h:#include <plib/fnt.h>

Happy troubleshooting.


All times are GMT -5. The time now is 04:26 PM.