[Asus  Eee Pad Transformer Prime] gene_wildhart:
Hello Everybody,

I'm the author of DosBox Turbo emulator. While I don't personally own a Transformer Prime, many of my users do. I've been following this thread with interest and working to try and debug this very issue with the Prime so that my users can have an enjoyable & stable experience.

After weeks of debugging and trying different things, I think I know why some games show instability issues and others don't. What I'm not certain of, at this point, is whether this just affects the .21 ICS ROM release or whether it affects all ROMS. As I don't have an Prime, it makes the testing go a bit slower, and I have to rely on some very helpful users of mine. :D (thanks guys!)

So, on to what I've determined so far:

I'm fairly certain (EDIT: now confirmed via multiple users) that the cause of the instability is due to the use of certain ARMv7 instructions. It may be a cache-coherency issue or something of that sort; however, what I've observed thus far is when an application is compiled using arm7-abi and when the user's CPU and memory accesses are pegged, under certain circumstances, a fault is triggered and Android OS will often end up killing the application. The common theme seems to be the ARM7 instructions + high CPU/Memory load = unexpected behaviors. Even just using the ARM7 instructions with no optimizations seems to cause problems under high load, though it does seem to take longer.

Compilation using the older ARM5 instruction set seems to result in a high degree of stability, regardless of the optimization settings.

So to sum things up, it appears the combination of these three factors in unison are causing some type of instability:

Apps utilizing the Android NDK (r7c & r8)

Apps compiled with the armabi-v7 (regardless of optimization state) [I'm using a mixture of thumb-2 & full arm instructions in different libraries]

High cpu/memory load

When all the above combinations are all satisfied, some fault is often triggered, causing the OS to kill the app or behave strangely. Sometimes it takes a few minutes, and at other times, it seems to take tens of minutes. Usually dependent upon the CPU/Memory load. Again, at first sight, it appears to be some type of cache-coherency issue is being triggered by a certain combination of arm7 instructions + high cpu load. I am also not sure if the 'lag' issues people are also talking about in this thread are related to the freeze/reboot/restart issue. I believe they might be two separate issues, as my users have not noticed any lag.

I hope this gives some direction to those who are working on solving this issue. One option seems to be dropping the usage of the ARMv7 instructions in favor of the ARMv5; however, you will lose hardware floating point capabilities as well as maybe 10-25% in speed.

I'm not done with my research; I still need to determine whether the problem is only with the thumb-2 instructions or if even a full arm compile will cause the instability as well, or whether its a mixture of the two that is causing it. Hopefully, this is a problem that can be rectified in a software/ROM update rather than a hardware problem. More than likely, we will be looking to ASUS to fix this problem, as the solution I proposed will kill performance, and would require the app developer to be aware of this one specific problem in the first place.