Calamity,
I just updated git, uploaded a patch, and am about done uploading a 32 bit build for Windows (64 coming) of version 010. I got it to stop crashing in Windows, at least looks that way to me. Check and see if you have it work better there, and what we need to do if anything with the virtualization issues. I hopefully also did something to fix that, now cleanstretch is off by default and changeres on.
I split up the method of reading the registry modelines, so I only read them on startup and use them after that so I no longer need to access the registry as much during the resolution changes. I suspect that code was the issue having it run more than once, or it might be the thread part where the window update is that I am running the resolution change has issues if certain registry calls are made and gets sensitive. Something strange there but now it seems to be working for me in testing, where before it was consistently crashing.
Do you know where we should tuck the resolution change code that would be in the window thread, that is able to access the window structure and check for the changeres and act on it. Figure we could hold off on the window update thread at touching resolutions resizes when changeres is set, and instead do it in the other location, unless you think it's ok where it's at now. Since it only executes once or twice at startup usually if at all, resolution changes won't happen often, doesn't seem terrible there and that's of course where mame already had the basic idea of resolution resizing kept.
Update: make sure to use .010a, because I commented out some code that actually did something with the registry writing, and that build fixes it.