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:
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:
Wine translates Windows calls onto a different OS, but still requires an x86 processor for the x86 instructions:
On non-x86 platforms (including browsers), Boxedwine combines Wine with a CPU emulator and implementation of the bits of Linux that Wine expects:
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:
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.
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.