Hey guys, I've got a fair amount of programming experience for windows applications, but when it comes to linux I'm a complete noob. I could be totally wrong here (in fact I probably am) but I am under the impression that when you get a linux version of a game, its sort of in a raw state and needs to be compiled to run in a particular distribution of linux. If this is the case, how easy is it to actually compile just about any linux game/program to run on the pandora?
Most non-commercial Linux games are available in the repositories of various distributions. These are in binary form (unless it is a source based distro like Gentoo) basically like programs for any operating system. In fact, unless you are jumping from one type of processor to another, the actual programs are capable of running on whatever distribution you choose. The only obstacles to this are the availability of the proper package manager for the installation step, whether all the proper dependencies are available, and occasionally, whether a distribution expects some file to be in a different directory, but that's not usually an issue. The reason these files won't run on the Pandora is of course that it is based on an ARM CPU rather than an x86 one.
In fact, Mozilla makes Firefox for Linux available in binary format in a simple compressed directory, which when expanded will run on whatever x86 distribution you care to run it on (if the dependencies are available, which will be the case on most desktop systems).
So, really, the only raw form that the games are available in is source code, if they are open source.
If i'm completely wrong, then let's just assume it's open source and we have the source code for a linux game... how would we get THAT running on pandora?
If source code is in C or C++, then it theoretically is just a matter of compiling it for an ARM processor. This can be done by compiling the code on an ARM system, like the Pandora itself, or by cross-compiling the program from an x86 (or other) processor. To do that, you need to either set up a developer environment on the Pandora, or a cross-compiling environment on your desktop.
There are of course some obstacles possible (perhaps probable) in trying to do this. The code may not be ARM "clean" (there may be code that depends on x86 architecture somehow). There may be some requirement that is simply not available for the Pandora, like full-fledged OpenGL (rather than OpenGL ES). If you are cross-compiling there may be parts of the configuration script that don't work on your host machine, etc. You may be able to rewrite part of the program to deal with the first two issues, and you may be able to either edit the Makefile manually or compile the program on the Pandora to avoid the third issue, etc. These solutions may mean a lot of extra work to make a Pandora executable, but it can be fun to overcome these issues as well (if you like that sort of thing
).
Is there some sort of step by step tutorial on how to do this? I have no idea where to begin but beleive I'm technical enough to understand instructions given so long as they don't make too many assumptions on knowledge of linux. I simply would like to be able to port games myself rather then wait for someone else to do it.
There are some more resources available in the development forum on gp32x.de:
http://www.gp32x.de/board/index.php?/forum/64-developers-corner-pandora/
The first two pinned posts are useful.