Skip to content

Latest commit

 

History

History
53 lines (36 loc) · 2.09 KB

comparison.md

File metadata and controls

53 lines (36 loc) · 2.09 KB

Comparison with similar systems

To begin with, retrowin32 is relatively immature and cannot execute most programs.

If you are just looking to run Windows software, I recommend instead using:

Architectural differences

Executing a Windows .exe broadly requires two components: executing x86 instructions and interpreting the Windows calls.

To run an exe natively requires both an x86 processor and the Windows OS:

Windows component stack

Wine translates Windows calls onto a different OS, but still requires an x86 processor for the x86 instructions:

wine component stack

On non-x86 platforms (including browsers), Boxedwine combines Wine with a CPU emulator and implementation of the bits of Linux that Wine expects:

boxedwine component

x86 emulators like qemu and v86 emulate an x86 processor, but at a level where it still requires you to run the whole Windows OS within the emulator:

qemu component stack

Finally, retrowin32 aims to run a win32 executable directly, in a manner similar to how video game emulators work: by both emulating the executable and mapping its calls directly into local OS calls.

retrowin32 component stack

Among the alternatives, retrowin32 is most similar to boxedwine. Note that while this drawing is visually shorter, it still encompasses most of the same complexity. The primary differences are:

  • the bulk of retrowin32's win32 implementation happens outside of the x86 emulator;
  • retrowin32's win32 implementation doesn't depend on any Linux emulation, and can target the browser directly instead of SDL.