1. xsacha's Avatar
    OK guys,

    Save bug
    The developers didn't realise that signed apps can't write to app/ directory. It needs to write to data/ or shared/ instead. The problem does not show itself if the game is used with a debug token instead (which is likely how Gameloft developed it).

    The game currently writes all save data to app/native/data/ instead of the code path (that is not being used) for saving in shared/misc/gameloft/games/9mm/

    See: BlackBerry PlayBook File System Layout - BlackBerry Support Community Forums

    General graphical glitches/crashes
    NEON instructions are useful for processing multiple data at the same time. Applications using these can see an improvement of around 50% in performance. Most tablets and phones on the market support NEON now.

    The Playbook contains an OMAP4430 chip that has NEON errata and can not accurately run NEON code. The result of running NEON code on Playbook is 1) a huge speed up and 2) glitchy graphics and potentially random crashes.

    RIM recommends compiling all code without NEON instructions and yet Gameloft compiled this game with NEON. From my inspection of the binaries involved, I found well over 1000 NEON instructions being used. In particular, it is found in all functions that are known to be buggy in the Playbook version of the game.

    Unfortunately, when the game is compiled without NEON, it may become unbearably slow or have reduced graphics.
    The best solution for Gameloft would be to implement a workaround of the OMAP4430 errata so that the NEON instructions function correctly. Documentation for these workarounds exist online.

    So I guess that's why it's 99 cents
    Last edited by xsacha; 05-31-12 at 02:51 AM.
    05-31-12 02:41 AM
  2. LimeTripBlog's Avatar
    OK guys,

    Save bug
    The developers didn't realise that signed apps can't write to app/ directory. It needs to write to data/ or shared/ instead. The problem does not show itself if the game is used with a debug token instead (which is likely how Gameloft developed it).

    The game currently writes all save data to app/native/data/ instead of the code path (that is not being used) for saving in shared/misc/gameloft/games/9mm/

    See: BlackBerry PlayBook File System Layout - BlackBerry Support Community Forums

    General graphical glitches/crashes
    NEON instructions are useful for processing multiple data at the same time. Applications using these can see an improvement of around 50% in performance. Most tablets and phones on the market support NEON now.

    The Playbook contains an OMAP4430 chip that has NEON errata and can not accurately run NEON code. The result of running NEON code on Playbook is 1) a huge speed up and 2) glitchy graphics and potentially random crashes.

    RIM recommends compiling all code without NEON instructions and yet Gameloft compiled this game with NEON. From my inspection of the binaries involved, I found well over 1000 NEON instructions being used. In particular, it is found in all functions that are known to be buggy in the Playbook version of the game.

    Unfortunately, when the game is compiled without NEON, it may become unbearably slow or have reduced graphics.
    The best solution for Gameloft would be to implement a workaround of the OMAP4430 errata so that the NEON instructions function correctly. Documentation for these workarounds exist online.

    So I guess that's why it's 99 cents
    Man if you mail Gameloft these details, they might actually hire you
    99 cents for multiplayer its still a nice deal, but they must fix this game.
    Last edited by LimeTripBlog; 05-31-12 at 05:56 AM.
    05-31-12 05:54 AM
  3. xsacha's Avatar
    It's mostly down to communication issues between RIM and its vendors as well as app approvals being almost 'automatic'.

    That's what led me to write about this.
    05-31-12 07:10 AM
  4. russnash's Avatar
    Nice and informative write-up xsacha, thank you for sharing this.
    05-31-12 08:32 AM
  5. bounce007's Avatar
    Very interesting. Thank you Xsacha
    05-31-12 11:17 AM
  6. samab's Avatar
    These are the 2 ARM NEON errata:

    Commit in gingerbread in Pandroid - Gitorious
    05-31-12 03:41 PM
  7. dosboxwasthestuff's Avatar
    xsacha u seriously should consider working for game loft,ea,zeptolab, or one of those big company's
    05-31-12 10:18 PM
  8. xsacha's Avatar
    These are the 2 ARM NEON errata:

    Commit in gingerbread in Pandroid - Gitorious
    Yeah, the solution (workaround) is to add NOPs after these points.

    Example:
    #define WORKAROUND_NOP asm volatile ( "vmov s0,s0\n" )

    And then:
    ...
    static inline void speed_up_func() {
    // some NEON code here
    WORKAROUND_NOP
    }
    05-31-12 10:30 PM
  9. Nostoi's Avatar
    Does this mean, in short, that there's not going to be a fix for 9MM?
    06-01-12 04:56 PM
  10. Snuupy's Avatar
    Does this mean, in short, that there's not going to be a fix for 9MM?
    Depends on how lazy they are.
    06-01-12 10:37 PM
  11. xsacha's Avatar
    I'd say that Gameloft would be aware of the issue and will have already solved this issue in Android devices using an OMAP4430.
    For some reason, the developers responsible for porting it weren't aware of these details.
    06-02-12 01:47 AM
LINK TO POST COPIED TO CLIPBOARD