Release Homeworld


Edglex

Member
Joined
Oct 27, 2010
Messages
168
Have released a new version of homeworld, now available on the repo.


Changes:


Touch screen now working properly


Updated controls (to work better with touch screen):


Pandora B button - Enter


Start - Esc/Menu


Select - Pause


Q/P - Attack


W/O - Focus


A/L - Move


Enter/Shift - Shift (for moving vertically)


E/I - Select all ships on screen


I decided to put the keys like this so that they can be accessed using your thumb when using the stylus, regardless of which hand you are holding the pandora in (keys I have changed are symmetric layout across keyboard).


I welcome suggestions for control changes. Currently detects which nub you use as mouse and sets the other nub to zoom in/out, but could also have it swap left/right click (currently left and right shoulder buttons respectively) if it detects using the right nub as mouse. But that might confuse people. I could set left/right click to something else on keyboard. Or have the whole keyboard configurable from a text file. Not sure! Anyways, feedback & testing welcome.
 
Just made me fire-up my xp vm to install homeworld to get the data files.


Will try this out asap. Ill try to get a video up
 
It doesn't work for me.


Here's the PND_out:

=======================================================================================


PND : /media/mmcblk0p1/pandora/menu/homeworld.pnd


PND_FSTYPE : ISO


APPDATADIR : /media/mmcblk0p1/pandora/appdata/homeworld


APPDD_FSTYPE : vfat


PND_CPUSPEED : <unset>


EXENAME : homeworld.sh


ARGUMENTS : <unset>


=======================================================================================


[ START ]--- Mount the PND ----------


Mounting : mount -o ro "/dev/loop0" "/mnt/utmp/homeworld"


Mounting the Union FS : mount -t aufs -o exec,noplink,dirs="/media/mmcblk0p1/pandora/appdata/homeworld=rw+nolwh":"/mnt/pnd/homeworld=rr" none "/mnt/utmp/homeworld"


[sUCCESS]--- Mount the PND ----------


[ START ]--- Starting the application (homeworld.sh ) ----------


memClearSetting=0x3c6ef361, memFreeSetting=0x3717bd79


42 files found in Update.big


14868 files found in Homeworld.big


Homeworld CRCs:


HomeworldSDL.big TOC = 0x0


Update.big TOC = 0x291050b6


Homeworld.big TOC = 0xcca97581


(not used) = 0x0


(null) (0): Fatal error - fileSizeGet: can't find file '/mnt/utmp/homeworld//SoundFX/speechsentence_comp.lut'.


./homeworld.sh: line 18: 5925 Segmentation fault ./homeworld


cat: write error: Invalid argument


cat: write error: Invalid argument


[sUCCESS]--- Starting the application (homeworld.sh ) ----------


[ START ]--- Restoring the frame buffer status ----------


[sUCCESS]--- Restoring the frame buffer status ----------


[ START ]--- uMount the PND ----------


[ START ]--- Waiting the Union to be available ----------


[sUCCESS]--- Waiting the Union to be available ----------


auplink:plink.c:223: AUFS_CTL_PLINK_MAINT: Inappropriate ioctl for device


rmdir: failed to remove `/mnt/utmp/homeworld': Device or resource busy


[ START ]--- Waiting the PND mount dir to be free ----------


[sUCCESS]--- Waiting the PND mount dir to be free ----------


cleanup done


[sUCCESS]--- uMount the PND ----------


=======================================================================================


Return code is : 4


Seems like there's some data missing.


I use the German version. Is this a problem?


The 1.5 patch is done.
 
Last edited by a moderator:
This is error is caused by having the wrong files it can't find the first file it needs to load from within the game files. It could be a corrupt file? I don't know if the German version is actually supported or not - but would seem odd if it doesn't work.


Some have said they have had to rename the files to be all lower case, and though I haven't found that this is the case myself it might be worth a try. Maybe I don't have the problem because I have FAT32 fs on my sd card... which is not case sensitive.
 
I also use FAT32 on my SD.


I don't think the files are corrupt. Homeworld runs well on my PC.


Maybe I could copy the files again but I already did this twice.


Edit: Same error message.


Edit2: I created '/mnt/utmp/homeworld//SoundFX/speechsentence_comp.lut' on the NAND but got the same error messagen (got the file from the original game data as well).
 
Last edited by a moderator:
Edit2: I created '/mnt/utmp/homeworld//SoundFX/speechsentence_comp.lut' on the NAND but got the same error messagen (got the file from the original game data as well).
You need to create /media/mmcblk0p1/pandora/appdata/homeworld/SoundFX/speechsentence_comp.lut instead
 
Last edited by a moderator:
Edit2: I created '/mnt/utmp/homeworld//SoundFX/speechsentence_comp.lut' on the NAND but got the same error messagen (got the file from the original game data as well).
You need to create /media/mmcblk0p1/pandora/appdata/homeworld/SoundFX/speechsentence_comp.lut instead

It works now.


Thanks for your help, you're great.


It's always the simplest solution I don't try. :rolleyes:
 
Thanks sebt3 - feel a bit dumb for not suggesting that now! I'll see if putting this file is ok with game files that don't have this error, if not then I'll add it to the PND to stop it occurring.
 
Hmm, I seem to get a lot of freezes. I can't seem to complete a whole level without the game freezing up. My overclock should be stable, but I have backed off my clocks a bit.
 
I run at 800MHz and it hasn't frozen for me, though tbh it could use a bit more clock than that! It does freeze in the same place every time on one of the intro sequences to a mission, but I just skip it and it's fine. I can't say what else might cause it... though I know others have reported crashes too. Does the system lock up completely?


It uses opengl es but I don't think it uses neon (which can cause instability with overclocking I believe?) - at least I didn't set any compiler flags for it. I'll check the defaults though and if it is using neon I could try a build without and see if that improves things...
 
Last edited by a moderator:
Now it crashed for me in the first real mission, too.


But in the tutorial, I came to a point, where it wouldn't recognise, that I pressed the focus button and I wasn't able to continue.


But overall it is really working very smoothly. Too bad, that with the nubs you can't react and click as precise as on the pc with a mouse.


Using the touchscreen is not too comfortable, if you have to rightclick with the R button.
 
Last edited by a moderator:
I haven't seen it crash yet... I generally play it at 700mhz..


What is odd, I thought I needed to patch the game last time I played for it to work right.. but this time I just took the data files right off the CD and it worked fine.
 
Last edited by a moderator:
Now it crashed for me in the first real mission, too.


But in the tutorial, I came to a point, where it wouldn't recognise, that I pressed the focus button and I wasn't able to continue.

Ahh, thanks for that. It's probably because I've re-mapped the controls, perhaps it somehow refuses to accept the key I have mapped to being focus and is waiting for you to press the right key. I'll look into it.

Too bad, that with the nubs you can't react and click as precise as on the pc with a mouse.


Using the touchscreen is not too comfortable, if you have to rightclick with the R button.

I agree it's not ideal. Got any suggestions for improvement?

I haven't seen it crash yet... I generally play it at 700mhz..


What is odd, I thought I needed to patch the game last time I played for it to work right.. but this time I just took the data files right off the CD and it worked fine.

Some versions of the game that were released later have the update already included. I think the updated one is the sold-out software version, or one of those companies that sell old games at budget prices.
 
Turns out it is compiled with -mfpu=neon, so maybe removing that will make it more stable... possibly make it slower too. I'm using sebt3s yactfeau, but I don't know how to remove that option, is it in the specs file? (only had a quick look at this)


I also tried adding SoundFX/speechsentence_comp.lut and it works fine here, so that will go in the PND.


I haven't yet had time to look into the problem with the tutorial.


I have discovered I can build a demo version, although in my first quick test there was some error I will have to fix. I am thinking I could distribute a fully working demo PND. I don't know whether I should make that separate to the full game PND though, as it would make it very large (about 70MB). I'd have to run a test to see whether the full game files were available so that it can run the right binary too. I am also unsure about legality.


I also thought I might include the update in the PND to save people trouble. Unsure about legality of that too though.
 
Last edited by a moderator:
Turns out it is compiled with -mfpu=neon, so maybe removing that will make it more stable... possibly make it slower too. I'm using sebt3s yactfeau, but I don't know how to remove that option, is it in the specs file? (only had a quick look at this)

The easiest solution is to temporarily setting the environment variables. Just to note if you close the terminal it will revert back to the old settings..


so if I run env | grep mfpu=neon after you run setprj your_project . I see these enviroment settings specific to compiling on the Pandora..



Code:
CPPFLAGS=-DPANDORA -DHAVE_GLES -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -fsigned-char

CXXFLAGS=-DPANDORA -DHAVE_GLES -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -fsigned-char -I/mnt/utmp/fachoda-complex/include

CFLAGS=-DPANDORA -DHAVE_GLES -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -fsigned-char



Now just remove the neon specific flags and export the variable.. Obviously in the CXXFLAGS you want your own library path and not the project I worked on ( fachoda-complex )



Code:
export CPPFLAGS='-DPANDORA -DHAVE_GLES -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -fsigned-char'

export CXXFLAGS='-DPANDORA -DHAVE_GLES -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -fsigned-char -I/mnt/utmp/fachoda-complex/include'

export CFLAGS='-DPANDORA -DHAVE_GLES -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -fsigned-char'


Like I said above closing the terminal will revert these..


the other thing you could do is handhack the Makefile.. but I think this is less of a hassle.
 
Last edited by a moderator:
Aha, awesome, why didn't that occur to me? Thanks!


I don't want to touch makefiles too much, I already had to mess with some which is bad anyway as it uses automake, and there are hundreds of them each setting CPPFLAGS and CFLAGS.
 
Last edited by a moderator:
I don't want to touch makefiles too much, I already had to mess with some which is bad anyway as it uses automake, and there are hundreds of them each setting CPPFLAGS and CFLAGS.
based on the environnements vars you have set while running configure (or pndconfigure)
 
I don't want to touch makefiles too much, I already had to mess with some which is bad anyway as it uses automake, and there are hundreds of them each setting CPPFLAGS and CFLAGS.
based on the environnements vars you have set while running configure (or pndconfigure)

Yeah I realise this... (I forgot they were env vars)
 
Last edited by a moderator:
Back
Top