Thanks a lot for the detailed description. It adds to the fact that we need to make the mame core able to run in a thread and communicate in a thread-safe way with the osd. Everything else just is half-working workaround - like the current MT implementation. And I'm responsible for the SDL part of it.