Hurrican SDL - Turrican for the GNU generation


13 posts
by danboid » Mon Jul 30, 2012 1:20 pm
Most everyone who ever played games on one of the 8 or 16bit home computers will fondly remember the Turrican series. If you're one of those, or if you're looking for an impressive platform shooter for Linux then you'll be delighted to discover Hurrican has now been open sourced and ported to Linux thanks to Hurrican SDL!

http://phoronix.com/forums/showthread.p ... n-SDL-Port

I have got it to compile and run great on my Debian laptop but I'm having problems with the graphics on my Pandaboard and it seems I'm the only person on the Pandaboard mailing list who is interested in running a few games so instead I thought I'd come here to see if anyone is interested in trying to get this running on their Pi?

Hurrican has USB joystick/pad support under the Windows version and apparently this should work under the SDL port too but I've not got that to work so please test that if you can and let us know if you get your controller to work please!
Posts: 15
Joined: Sat Jul 28, 2012 1:07 pm
by danboid » Tue Aug 07, 2012 10:01 am
Pickle - he who ported Hurrican to Linux / SDL / Pandora - has actually got an Rpi himself although he has not yet got round to trying Hurrican on it. He has however gone to the trouble of helping me get it working on my Pandaboard so any keen Rpi gamers who want to beat the Hurrican port author to running it on the Rpi can likely do so by checking my build instructions for Panda (and likely Beagleboard and Rpi) users out this page:

http://phoronix.com/forums/showthread.p ... Port/page4

The svn address is given on the first post of that thread
Posts: 15
Joined: Sat Jul 28, 2012 1:07 pm
by blc » Tue Aug 07, 2012 12:16 pm
Excellent! I do fondly remember Turrican (at least Turrican 2, which I had on the Atari), so I'll definitely check this out :). Is this a "game similar to and based on Turrican" type thing, or a pure open source implementation of the Turrican game(s)?

Either way, I am interested in checking it out on the Pi. I really need to blow the dust off it and get hacking with it again, but I'll probably take a look at the Windows version later today.

I'll have a crack at compiling it using your instructions on the Pi over the next few days. Can't guarantee that I'll be able to help with any porting though; while I may know my way around Linux I am certainly not a coder! :) (Well, not in C/C++ anyway)
Posts: 167
Joined: Mon Sep 05, 2011 9:28 am
by danboid » Tue Aug 07, 2012 1:46 pm
Hi blc!

Its not a straight clone or remake of a previous Turrican game, it is a new game openly inspired by Turrican with modern OpenGL (ES or DirectX under Windows) graphics and fx.

Nobody else has commented on the joypad situation under Linux either here or on Phoronix but as far as I can see joypads/sticks aren't working under the SDL version yet so if you have one you'd prefer to use then yes, better try it out under Windows (or wine) first.
Posts: 15
Joined: Sat Jul 28, 2012 1:07 pm
by blc » Tue Aug 07, 2012 7:50 pm
I've had a look at the Windows version and it works perfectly with my joypad (and Xbox 360 wireless controller, via the official Microsoft receiver for PC). However, I have had no success in getting this joypad to work under Ubuntu or Debian, even on my desktop PC or laptop. I'm not really too bothered about getting joypad support working on the Pi, the more interesting question is whether it compiles and how well it performs.

I'll update once I've given it a shot on the Pi.

Quite a fun little game though :)
Posts: 167
Joined: Mon Sep 05, 2011 9:28 am
by blc » Sat Aug 11, 2012 10:42 pm
Well, I'm giving this a shot now - looks like it's compiling away...

Your pandaboard instructions here - http://phoronix.com/forums/showthread.p ... post279563 - need a few tweaks...

Under INCLUDES on line 34 of the makefile, you have added:

Code: Select all
-I/usr/include/EGL


For the Pi, it looks like that may need to be:

Code: Select all
-I/opt/vc/include


It also doesn't look like libsdl-mixer1.2-dev & svn is installed by default, so this is needed before any compilation is attempted:

Code: Select all
sudo apt-get install libsdl-mixer1.2-dev subversion


I spent ages trying to figure out why the svn command wasn't working before I realised that I hadn't actually got svn installed... Derp...

At first I followed your instructions to the letter, but /usr/include/EGL does not exist on the latest raspbian image; the compilation was complaining about not being able to find GLES/gl.h and terminating almost immediately. Running find / -name 'gl.h' found several candidates: /opt/vc/include has both an EGL and GLES subdirectory, so I didn't specify either in the makefile.

As I was writing this post, I encountered another error... I managed to compile the Boss files, but as soon as it hit anything to do with graphics, it complained about missing egl.h. Therefore, I've added the following additional parameter to the INCLUDES section of the makefile:

Code: Select all
-I/opt/vc/include/EGL


That'll teach me to turn my back on it! If I manage to get a successful compile, I'll clean up the instructions; for now though, this thread may become a bit of a scratchpad! ;)
Posts: 167
Joined: Mon Sep 05, 2011 9:28 am
by blc » Sat Aug 11, 2012 11:03 pm
Another error... Had a fatal error with vcos_types.h, reporting that vcos_platform_types.h is not found... vcos_types.h is in /opt/vc/include/interface/vcos, whereas vcos_platform_types.h is in /opt/vc/include/interface/vcos/pthreads. Seems like this is a known issue: https://github.com/raspberrypi/firmware/issues/34

Rather than muck around with the files in /opt/ I've added the following to the makefile's INCLUDES section:

Code: Select all
-I/opt/vc/include/interface/vcos/pthreads


Bear in mind that I'm not a C/C++ developer, so if I'm doing something monumentally stupid, please feel free to tell me as such :D (Although I do understand some of the basic concepts of object-oriented programming and C/C++ includes, object files, headers, etc).

EDIT: Seems like my solution was also used elsewhere - viewtopic.php?f=29&t=5641&start=50#p108875

Quando wrote:Hi,

I fixed the vcos_platform_types.h by adding -I/opt/vc/include/interface/vcos/pthreads to the RPI specific INCLUDES line in GNUMakefile.
Posts: 167
Joined: Mon Sep 05, 2011 9:28 am
by blc » Sun Aug 12, 2012 12:24 am
Another error, this time at the end of compilation:

/usr/bin/ld: Cannot find -lGLESv1_CM
/usr/bin/ld: Cannot find -lEGL

Seems I don't have these libraries...!

Code: Select all
apt-get install libegl1-mesa libegl1-mesa-dbg libegl1-mesa-dev libegl1-mesa-drivers libegl1-mesa-drivers-dbg  libgles1-mesa libgles1-mesa-dbg libgles1-mesa-dev libgles2-mesa libgles2-mesa-dbg libgles2-mesa-dev


libgles2-* is probably overkill, since we're using GLESv1, but it can't hurt... Just done a make clean - to be sure - and I'm kicking off the compile again...
Posts: 167
Joined: Mon Sep 05, 2011 9:28 am
by blc » Sun Aug 12, 2012 12:36 am
Ah. There's been a new revision to the code: I deleted my makefile and checked out the code from SVN again... The makefile looks totally different, and if I look at http://sourceforge.net/p/hurrican/code/ ... rican/src/, I can see that it was updated 15 minutes ago with the comment: [r82] RaspberryPi support

So. I'll try the author's new makefile :)
Posts: 167
Joined: Mon Sep 05, 2011 9:28 am
by blc » Sun Aug 12, 2012 1:32 am
Well, it compiles!

But it doesn't load... It gets about half-way through loading when it just dies and locks up the Pi - the sound also stops working when it hangs. I've tried it with an overclock to 800MHz, but it doesn't seem to make a difference. I used the new makefile with no modifications to compile.

And with that, I think it's time for me to call it a night! :)
Posts: 167
Joined: Mon Sep 05, 2011 9:28 am
by Pickle » Sun Aug 12, 2012 6:21 pm
Actually it hasnt locked up but is running very slow and will actually load at some point (i know since i waited ;-)) I could get in game but it was very slow.
Could be that the GPU ran out of memory and is trying to swap it from system memory. Which is probable as this game will be right at the limit of the total memory the rpi has.

So seems there is a texture compression that I may be able to use to get some more memory savings. It worked very well on my 256 mb pandora, but in that case I can use pvrtc. Not sure how effect this format will be.

Also im the person behind this port, so if anyone has anything significant or would like to get involved just get in touch with me.
Posts: 64
Joined: Tue Sep 20, 2011 5:09 pm
by Pickle » Tue Sep 04, 2012 1:54 pm
Finally have a version that can run on the rpi, but some of the textures are too low of a resolution. So im going to continue to look into using ETC1 compression.
Posts: 64
Joined: Tue Sep 20, 2011 5:09 pm
by ulysess » Fri Aug 23, 2013 9:50 am
I compiled this port and now It's all yours.

I can't fix the font and tiles issues but it's playable.

You can download it from http://misapuntesde.com/post.php?id=242

Enjoy! :D
Mis apuntes de...Raspberry Pi: http://misapuntesde.com
Google Docs RPi: http://goo.gl/Iwhbq
Posts: 228
Joined: Thu Aug 02, 2012 6:35 am
Location: Spain