When will Wine integrate an x86 CPU emulator?

Kelly Leahy kellyleahy at swbell.net
Wed Aug 20 16:19:32 CDT 2003


Not sure I agree with paragraph two of the answer...

While writing an x86 emulator (and integrating it into wine) would be quite
difficult, I don't see how the complexity has anything to do with the data
types and API functions...  A true emulator has no concept whatsoever of
data types (except the very basic data types of the cpu - x-bit word, x-bit
IEEE number, for instance), so its complexity cannot possibly depend on the
high-level data types used by the compiler generating the machine code...

Kelly

----- Original Message ----- 
From: "Francois Gouget" <fgouget at free.fr>
To: <wine-patches at winehq.com>
Sent: Wednesday, August 20, 2003 3:42 PM
Subject: FAQ: When will Wine integrate an x86 CPU emulator?


>
> Changelog:
>
>  * documentation/faq.sgml
>
>    Add an entry answering the eternal question:
>    When will Wine integrate an x86 CPU emulator?
>
> Index: documentation/faq.sgml
> ===================================================================
> RCS file: /home/wine/wine/documentation/faq.sgml,v
> retrieving revision 1.13
> diff -u -r1.13 faq.sgml
> --- documentation/faq.sgml 28 Jul 2003 19:06:10 -0000 1.13
> +++ documentation/faq.sgml 20 Aug 2003 20:37:51 -0000
> @@ -130,6 +130,58 @@
>        </qandaentry>
>
>        <qandaentry>
> +      <question id="Integrate-an-x86-emulator">
> +        <para>When will Wine integrate an x86 CPU emulator so we can
> +          run Windows applications on non-x86 machines?</para>
> +      </question>
> +      <answer>
> +        <para>
> +          The short answer is 'probably never'. Remember, Wine Is Not a
> +          (CPU) Emulator. The long answer is that we probably don't want
or
> +          need to integrate one in the traditional sense.
> +        </para>
> +        <para>
> +          Integrating a CPU emulator in Wine would be extremely hard,
> +          due to the large number of Windows APIs and the complex
> +          datatypes they exchange. It is not uncommon for a Windows API
to
> +          take three or more pointers to structures composed of many
fields,
> +          including pointers to other complex structures. For each of
these
> +          we would need a conversion routine to deal with the byte order
and
> +          alignment issues. Furthermore, Windows also contains many
callback
> +          mechanisms that constitute as many extra places where we would
have
> +          to handle these conversion issues. Wine already has to deal
with
> +          16 vs. 32 bit APIs and Ansi vs. Unicode APIs which both
> +          introduce significant complexity. Adding support for a CPU
emulator
> +          inside Wine would introduce at least double that complexity and
> +          only serve to slow down the development of Wine.
> +        </para>
> +        <para>
> +          Fortunately another solution exists to run Windows applications
> +          on non-x86 platforms: run both Wine and the application inside
the
> +          CPU emulator. As long as the emulator provides a standard Unix
> +          environment, Wine should only need minimal modifications. What
> +          performance you loose due to Wine running inside the emulator
> +          rather than natively, you gain in complexity inside of Wine.
> +          Furthermore, if the emulator is fast enough to run Windows
> +          applications, Photoshop for instance, then it should be fast
enough
> +          to run that same Windows application plus Wine.
> +        </para>
> +        <para>
> +          Two projects have started along those lines: <ulink
> +          url="http://fabrice.bellard.free.fr/qemu/">QEMU</>, an
> +          open-source project, and <ulink
> +          url="http://www.transitives.com/tech_overview.htm">Dynamite</>,
> +          a commercial CPU emulator environment from
> +          <ulink url="http://www.transitives.com/">Transitives
Technologies</>
> +          which has been <ulink
> +          url="http://www.transgaming.com/news.php?newsid=37">paired
> +          with Wine</>.
> +        </para>
> +
> +      </answer>
> +      </qandaentry>
> +
> +      <qandaentry>
>        <question id="Why-would-anyone-want-Wine-Windows-suck">
>          <para>Why would anyone want Wine? Doesn't Windows suck?</para>
>        </question>
>
>
> -- 
> Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
>      Linux, WinNT, MS-DOS - also known as the Good, the Bad and the Ugly.
>
>




More information about the wine-devel mailing list