When will Wine integrate an x86 CPU emulator?

Lionel Ulmer lionel.ulmer at free.fr
Wed Aug 20 19:48:45 CDT 2003

> I don't think this would be as hard as it sounds, if the .spec files could
> be used to describe all of the parameters and calls to the API functions.

Well, the big problem is that .spec files are so 'passé' now :-)

Correct me if I'm wrong, but I think that most new APIs are now exported
through COM objects and not 'standard' APIs (I could do a check on the
current Wine DLLs, but well, a lot of stuff is using COM nowadays).

So you would need to have a way to describe all COM inputs / outputs. Then
there is the matter also that Wine uses the COM objects internaly exactly
like the program does.. So you cannot say 'hey, let's put converting
functions in this COM vtable' as this will break when called from X86 code.

Finally, you will have the problems of 'non-trivial' argument passing (ie
data which are not described by C structures). For that, you will have to
rewrite the C code parsing this for each call (and thus have a
emulator-specific path). This is the case for bitmaps, a lot of DirectX
stuff, ... It's exactly the same issue for '...' functions.

And you will have to rewrite most of Wine's OpenGL code too :-)

So, yes, it's doable. Now is it pratical to do so and acceptable to rid a
lot of Wine code with if (emulated) { .... } else { .... } ?


		 Lionel Ulmer - http://www.bbrox.org/

More information about the wine-devel mailing list