I've applied your patch, thanks. Also I've fixed the bug when SDL returns non-zero unicode value on key up.
SDL for Android sets scancode value to SDL keysym, I did not bother to replicate PC scancodes. If you want to fix that - here's code that fills up SDL_keysym structure, here's code that processes Unicode events, it also calls this function to substitute "!@#..." symbols with Shift+"123..." keypresses, and that's exactly how SDL on PC works.
Note that this code is only for QWERTY keyboard input, the on-screen buttons provided by SDL will always set unicode value to 0 - this part of code submits key evens that come from on-screen SDL buttons.
SDL will try to get you an audio buffer of size that you request from it using SDL_OpenAudio(), it may return bigger buffer, but it never returns smaller buffer, and that's the actual buffer size it requests from Java code, so you may just increase buffer size inside SDLSoundDriver.cc:28 in OpenMSX code, to prevent choppy audio.
CompatibilityHacksPreventAudioChopping parameter fixes audio chopping for one particular Chinese tablet, I don't think it will be useful for other devices.
I have no idea why SDL crashes on that Samsung phone. Could you ask that person to try to run OpenTTD, or some other SDL-based app I've published?






