<div dir="ltr"><div><div><div>Yury, I think you're right, I'm using the precompiled binary that indeed seems to been compiled in soft-fpu mode, so that would explain everything, as OpenGL is probably triggering hard fpu exceptions that are not being caught.<br><br></div>I tried your asm function, however adding it makes the app crash at startup.<br><br></div><div>I added it to initialization of my OpenGLES unit,<br></div><div>Seems that just having the function laying around, even without calling it, causes the crash. <br><br>Checking the android log, it says the following:<br>E/AndroidRuntime(10684): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "TERRA_OPENGLES_$$_LOADOPENGL" referenced by "libterra.so"...<br><br></div><div>LoadOpenGL() is the only pascal function that is contained in this unit (it just loads the opengles library dynamically and assigns function pointers). For some reason, adding the assembler function to this unit makes this function disappear, what causes this very weird behaviour?<br><br></div><div>Full unit code here:<br><a href="http://pastebin.com/h2gCcikd">http://pastebin.com/h2gCcikd</a><br><br></div><div>Commenting both the function and the function call makes the game startup again without crashing (albeit still crashes whevener a float exception happens)<br></div><br></div>Probably recompiling FPC with hard float support would be the best solution, however compiling FPC in Windows is a frustrating game of trial and errors. I had written a .bat file that I used with 2.6.2, but it no longer works in 3.0.0. Once I have some free time I guess I will have to try discovering whats problem. Or if anyone has 3.0.1 compiled with hard-floats and can provide a download link, i would be thankful.<br><div><div><div><br></div></div></div></div>