I created a pair of games. They run fine on my C1000 if I copy them to a card and run them from there,
but now I'm trying to make ipkgs for distribution, and they are giving me problems.
First problem: It's showing up under the "Applications" tab, not the "Games" tab. What controls this, the control file or the .desktop file? control is set to Games. .desktop says Game, I didn't pluralize it b/c the example I used didn't have Application plural.
Second problem, a bit more serious- I doesn't run when installed as an ipkg! It uses SDL, (the bvdd version on mine). If I click on it, I see the right icon on the screen, and the screen goes black, but then I see an "Exit SDL" message. Like I said before, it runs fine if I copy it to a card and run it, but if I install it, and even if I try to run it from the command line, it fails. What is different about an installed app? Do SDL apps need special configuration?
Third problem: Not really SDL/Zaurus specific, and I hope I can explain it so it's clear. Rhese games have some datafiles on the file system. I tried hard to make the programs smart about finding the datafile locations, so that the games can be installed anywhere. It checks argv[0] and pulls the directory information out, and looks for the datafiles based on what it finds there.
That works great if you run it from the command line with a ./ in front of it. But if it is in your PATH, then there is no directory information in argv[0], just the command name. and it can't find it's files. (NOTE: I thought this problem was the cause of #2, but some testing showed otherwise)
Now I could work around this by hardcoding the default Zaurus installation dir into the app, but I'd rather not since it's not foolproof. Is there a good way for a C program to check where it was installed or run from even if argv[0] doesn't contain directory information? I'm sure I can't be the first person who's had this problem