Release Forget Me Not - new shooter/maze game from Nyarla Labs


One thing that I was concerned about is that the compiler in yactfeau doesn't support hardfp, which helps when passing floats around the code as parameters. That may well give quite a significant speedup if I can figure out how to get sebt3's compiler to accept the flag :)


Don't think thumb mode is on, but I'll have a good look. To be honest, I think my best bet is to head towards multithreading the display renderer so we can maintain game speed with some frameskip.


D.
 
Last edited by a moderator:
That was one of the reasons why GNU EABI was created, wasn't it? According to Debian's Wiki mixing hard- and softfloat code is possible with it.
 
Last edited by a moderator:
Hi,


Thanks to everyone involved in this project, I really like this game :)


I'd like to see this one on a real arcade machine, with the coin slots and all !


btw, is ~27000 a good score ?


Bye and thanks again !


EDIT: @ Letalis Sonus: I've read through the Debian Wiki about EABI, let's hope this will be useful to speed up the game on Pandora !


Magic Sam
 
Last edited by a moderator:
Hi,


Thanks to everyone involved in this project, I really like this game :)


I'd like to see this one on a real arcade machine, with the coin slots and all !

Already done - it's been built for the Winnitron and Torontron arcade cabs.

btw, is ~27000 a good score ?

It's not bad - my best is just a shade over 40k on the Pandora version.

EDIT: @ Letalis Sonus: I've read through the Debian Wiki about EABI, let's hope this will be useful to speed up the game on Pandora !

I hope so too, I just need to get Sebt3 to change yactfeau to support it if possible.

Magic Sam

Sam! have you fixed your game yet?


D.
 
have you asked sebt3 about this?

I believe I mentioned it in IRC, but I'm not sure anything came of it so far - I'm not terribly certain it will help tbh. The routines to draw the sprites are passing floats around like crazy, so I suppose it will alleviate the problem somewhat. Other than that and maybe adding auto-frameskip, I don't know what else can be done to get this running as fast as it does on the iOS version. There shouldn't be any difference in speed at all, as it's the same code running on the same hardware but the Pandora really does seem to be a lot slower than the 3GS, at least for this game :(


D.
 
I believe I mentioned it in IRC, but I'm not sure anything came of it so far - I'm not terribly certain it will help tbh. The routines to draw the sprites are passing floats around like crazy, so I suppose it will alleviate the problem somewhat. Other than that and maybe adding auto-frameskip, I don't know what else can be done to get this running as fast as it does on the iOS version. There shouldn't be any difference in speed at all, as it's the same code running on the same hardware but the Pandora really does seem to be a lot slower than the 3GS, at least for this game :(


D.

well if you ask him nicely I'm sure hell do whats needed to his yactfeau
 
I hope so too, I just need to get Sebt3 to change yactfeau to support it if possible.
You'll need to ask DJWillis then as he is the one thaat produced my toolchain binaries. All I did was adding a few scripts to ease usage ;)

well if you ask him nicely I'm sure hell do whats needed to his yactfeau
Asking nicely is not enough, he would need to give me the requiered abilities first ;)
 
sure, tell me whats needed and how we can avoid cheets and i can look into implamenting high scores tables, though the code to submit the high scrores would need to be added "per game".
 
can't speak for anyone else but my pandora lives without wifi, only going to bluetooth for networking to help development.


maybe I need to experiment with different routers and with the newer wifi drivers.


either way, turning on internet just for high scores wouldn't be likely.
 
Last edited by a moderator:
Hi,


I've been thinking about the speed issues during the night...


If I understand correctly, ARM Cortex-A8 has the following features:


THUMB

The shorter opcodes give improved code density overall, even though some operations require extra instructions. In situations where the memory port or bus width is constrained to less than 32 bits, the shorter Thumb opcodes allow increased performance compared with 32-bit ARM code, as less program code may need to be loaded into the processor over the constrained memory bandwidth.
VFP

VFP (Vector Floating Point) technology is an FPU coprocessor extension to the ARM architecture. It provides low-cost single-precision and double-precision floating-point computation. [...] Some devices such as the ARM Cortex-A8 has a cut-down VFPLite module instead of a full VFP module, and requires roughly 10x more clock cycles per float operation.[27] Other floating-point and/or SIMD coprocessors found in ARM-based processors include FPA, FPE, iwMMXt. They provide some of the same functionality as VFP but are not opcode-compatible with it.
NEON

NEON supports 8-, 16-, 32- and 64-bit integer and single-precision (32-bit) floating-point data and operates in SIMD operations for handling audio and video processing as well as graphics and gaming processing. In NEON, the SIMD supports up to 16 operations at the same time. The NEON hardware shares the same floating-point registers as used in VFP.
Plus the famous DSP...


IMHO, compiling the game with NEON and THUMB flags on should improve performance, right ? I could be totally wrong though, because I'm not a dev and I barely understand what all this is about :p


All quotes are from wikipedia, here.


@ ZXDunny: thanks for your interest in my little port :) I didn't have much time to work on it lately, would you like me to add you as a maintainer for "Which Way Is Up" on the Repo ?


Bye, Magic Sam
 
Last edited by a moderator:
IMHO, compiling the game with NEON and THUMB flags on should improve performance, right ? I could be totally wrong though, because I'm not a dev and I barely understand what all this is about :p

I'm fairly certain all those flags are on for FMN's build; the compiler output certainly suggests such. It's just the hard-fp that we're missing.

@ ZXDunny: thanks for your interest in my little port :) I didn't have much time to work on it lately, would you like me to add you as a maintainer for "Which Way Is Up" on the Repo ?

No thanks - I have enough on my plate with FMN :)


D.
 
@ ZXDunny: I've found a list of GCC ARM Options here, could they be of any use ?


-mfloat-abi=hard ; -mcpu=cortex-a8 ; -mtune=cortex-a8 ; -march=armv7-a ; -mfpu=neon ; -funsafe-math-optimizations ; -mthumb ; -Wa


I hope it helps :)


Bye, Magic Sam
 
@ ZXDunny: I've found a list of GCC ARM Options here, could they be of any use ?


-mfloat-abi=hard ; -mcpu=cortex-a8 ; -mtune=cortex-a8 ; -march=armv7-a ; -mfpu=neon ; -funsafe-math-optimizations ; -mthumb ; -Wa

All those are supported (and indeed are used for FMN) except for -mfloat-abi=hard which the toolchain doesn't currently support. If we can get DJWillis to update his tools, I'm sure Sebt3 will update yactfeau :)


D.
 
I've sent DJWillis a PM about this thread :)


And new highscore btw: 38847 (died at level 13) !


Bye, Magic Sam
 
IMHO, compiling the game with NEON and THUMB flags on should improve performance, right ? I could be totally wrong though, because I'm not a dev and I barely understand what all this is about :p
However, IIRC GCC is terrible at generating NEON code, so it is advisable to do it manually.


NEON is more of a vector unit than a FPU and using it flushes the CPU's pipeline, so it is necessary to do some smart vectorization and bundling of NEON commands to minimize the slowdowns.
 
IMHO, compiling the game with NEON and THUMB flags on should improve performance, right ? I could be totally wrong though, because I'm not a dev and I barely understand what all this is about :p
However, IIRC GCC is terrible at generating NEON code, so it is advisable to do it manually.


NEON is more of a vector unit than a FPU and using it flushes the CPU's pipeline, so it is necessary to do some smart vectorization and bundling of NEON commands to minimize the slowdowns.

That, I'm afraid, is way beyond my abilities :(


D.
 
Back
Top