Kept you waiting huh?
So I've put a couple of days of work into this and I've made some discoveries about retroarch and android itself...
Ok my first assumption about srand being the culprit was right... kinda. srand() is a problem indeed, so is rand(), atof(), stdcpy(), stdin(), stdout(), stderr() and some more. This whole core uses references to functions that aren't implemented in android 4.4's c++ libraries
. And this whole misery is not entirely retroarch's fault; Android 4.4 is missing some pretty elementary libraries (like basic input/output-streams) which are found on most Platforms/Operating-Systems since C++11. Some of those functions where already deprecated when added to android 5.0
So after finding out how to compile the mupen core (It compiles against an Android NDK standalone Toolchain duuuh
) I got myself into a huge mess with dozens of refences that only work with 5.0 and up , this might be fixable but don't get your hopes up as I am stuck at the moment (can't find the stpcpy() reference in the code) and might not be able to compile a functioning version.
Your best bet right now is searching for an older Mupen Core version (looks like Mupen was still working on 4.4 in 2016)
and hope that it works with recent retroarch versions
I haven't had any luck myself though as libretro/retroarch doesn't keep deprecated cores.
It's crazy to think most of the cores are running even on windows 98 but android 4.4 is having problems.