Alien vs Predator Port


Thanks, I have put up a new build, with the provided OpenAL. I have had to revert the other optimizations as they are causing the crash (seems only -O0 works at the moment, -01, -02, -03 seem to cause problems). At this stage I am not sure how tricky it is going to be to track down the cause of this.
Can you try -Os?
 
Can you try -Os?

Yup, just tried, crashes.

Debugging is a bit of a pain at the moment, I compile on my Windows PC, but my Pandora has Wifi issues. It connects, but with in 5-10 minutes is disconnects and will not connect any more. Sometimes it actually kills the Wifi network so the router has to be rebooted. I have tried this on various different networks now (home, work, hotspot, BT Openzone) all with the same result.

I am thinking I should buy a Wifi adapter for the Pandora, so I can GDB in from my desktop PC, it would certainly make things easier, it would also mean I don't have to keep copying things on to a SD card to get them on to the Pandora. Thinking about the Netgear WNA1000M at the moment, not sure if it is the best choice or not.

Decided 'sod it' and ordered a WNA1000M 150 Mbps Wireless-N USB Adapter to be delivered next week, might help getting further with tracking some of these issues
 
Last edited by a moderator:
The openal libs seem to need some manual optimisations. The linaro guys have started a project to neonize the lib but nobody stepped up to it.
 
Can you try -Os?

Yup, just tried, crashes.

Debugging is a bit of a pain at the moment, I compile on my Windows PC, but my Pandora has Wifi issues. It connects, but with in 5-10 minutes is disconnects and will not connect any more. Sometimes it actually kills the Wifi network so the router has to be rebooted. I have tried this on various different networks now (home, work, hotspot, BT Openzone) all with the same result.

I am thinking I should buy a Wifi adapter for the Pandora, so I can GDB in from my desktop PC, it would certainly make things easier, it would also mean I don't have to keep copying things on to a SD card to get them on to the Pandora. Thinking about the Netgear WNA1000M at the moment, not sure if it is the best choice or not.

Decided 'sod it' and ordered a WNA1000M 150 Mbps Wireless-N USB Adapter to be delivered next week, might help getting further with tracking some of these issues
This is the best choice. I've been using a small mini usb dongle and it's actually made the pandora work on a network :)


The onboard wifi is pretty much a practice joke.. kind of like a piece of performance art to make everybody angry when the wifi randomly stops working.
 
Now the biggest performance hit seems to be if you enter large rooms or open areas.

If you can profile this a bit, this game might get really playable even on the CC Pandoras at about 800 MHz.

Edit: Is this the first arm port of avp btw?
 
Last edited by a moderator:
Graphical glitches are caused by drivers, it's completely separate problem..
I know. I was trying to say, the game itself doesn't seem like it has any problems.
If it runs good on the GHz units, this might be because of the faster graphics chip and the additional MHz.

Keep in mind, that we tested it on CC/Rebirth units.

Do you want to say, that no optimisations need to be done, because YOU can run it flawlessly on YOUR GHz unit?
No, I didn't mean don't optimise it. I'm sorry if it seemed like I was saying that. I think I probably forgot about the speed differences. I was a bit tired when I wrote that.
 
Now the biggest performance hit seems to be if you enter large rooms or open areas.

If you can profile this a bit, this game might get really playable even on the CC Pandoras at about 800 MHz.
I will drop the latest OpenAL lib you have provided (thanks for that) into the next build. I can certainly also run a profile, although I am very hopeful that being able to compile with Os/O2 is going to have decent improvements on performance. Just need to track down why it goes wrong with optimizations. It was crashing in some data loading/processing code, so to take a wild stab in the dark, might be an issue with an uninitialised variable.

Edit: Is this the first arm port of avp btw?
I don't know of any other ARM ports. Although there isn't any direct link, ARM devices typically are also GLES devices, and there certainly wasn't GLES support in the code before this port.
 
Do optimisations crash the game on x86 linux, too?
If so it might be easier to debug on your desktop computer.
 
Do optimisations crash the game on x86 linux, too? If so it might be easier to debug on your desktop computer.
Not sure, I don't have access to any Linux PC's, I am a Windows user. I did fix a couple of memory issues on PC though (one buffer overrun and one memory read out of range), but these didn't resolve the issue.
 
Keep up the good work this is really exciting :) is amazing how much better the Pandora gets over time thanks to the amazing people in its community :)
 
Now the biggest performance hit seems to be if you enter large rooms or open areas.


If you can profile this a bit, this game might get really playable even on the CC Pandoras at about 800 MHz.
 
I will drop the latest OpenAL lib you have provided (thanks for that) into the next build.

I tried building against that latest OpenAL library, but I get a linker error:


Code:
2>  c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.2/../../../../arm-none-linux-gnueabi/bin/ld.exe: C:/Projects/bitbucket/Build/AvpMP/pandora-final/PiRoot/avpmp/AvpMP.final: hidden symbol `__sync_lock_test_and_set_4' in c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.2\libgcc.a(linux-atomic.o) is referenced by DSO
2>  c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.2/../../../../arm-none-linux-gnueabi/bin/ld.exe: final link failed: Nonrepresentable section on output
2>  collect2: ld returned 1 exit status

Not entirely sure what this is all about yet. It is possible I would need to upgrade toolchain to use this library (which I am not against doing in principle, not sure when though - I am guessing there is a newer Code Sourcery tool chain than the one I am using which is probably years old now).
 
You can use the precompiled libs as drop in replacements.


But that error is strange...


You could try to build the lib with your toolchain.


Just get the source from git and use cmake to build it.


What toolchain are you using? Sebt3's toolchain has the pndcmake script that does all the work for you with setting up stuff and options.


Edit: I built this lib with sebt3's toolchain, which has a gcc 4.3 wich caused problems with the examples, so I didn't build them.


With newer gcc versions this should be resolved. Didn't think it would have problems with linking against it.


Maybe really try to build the lib yourself with your toolchain. Might resolve this.
 
Last edited by a moderator:
Ah, tracked down the optimized crash, new build will be along shortly.

With regards to tool chain, I have code sourcery installed for ARM Linux installed and am using that, along with a bunch of headers/libs that I must have grabbed from somewhere (can't quite remember where, possibly from a linux tool chain). Based on this it can be tricky for me to compile things, I am not just being lazy, honest ;)
 
Not sure if it will help for AvP, but in two cases I found unrolling loops to help increase performance although it leads to a slightly larger binary.  I figure it may be worth a try.

-funroll-loops
 
Latest build:

http://repo.openpandora.org/?page=detail&app=com.pawprintgames.avp

Sadly not the improvements of performance I was hoping for, a few more things to try though.

Not sure if it will help for AvP, but in two cases I found unrolling loops to help increase performance although it leads to a slightly larger binary.  I figure it may be worth a try.

-funroll-loops
Have just added this to my flags, it is an option which can cause slow down too (ICACHE miss) but lets gamble for now!
 
Back
Top