It achieves this by running an unmodified 32-bit version of Wine, and emulating the Linux kernel and CPU. It is written in C++ with SDL and is supported on multiple platforms.
This is pretty crazy if you ask me.
It achieves this by running an unmodified 32-bit version of Wine, and emulating the Linux kernel and CPU. It is written in C++ with SDL and is supported on multiple platforms.
This is pretty crazy if you ask me.
Why not just emulate Windows directly instead? Is it that much easier to emulate Linux?
Yes, Windows has parts nobody knows how they work, they even admitted some original source code was lost and so they only have the compiled program and/or interface, but no documentation on how it works.
Wooooooow, how did they mess that up?
IIRC the original programmer left and due to some internal restructuring they lost the source. The funny thing is I can’t seem to find the article anymore, but I’ll keep looking.
Quote from danoon:
Yes, the goal of Boxedwine is to run old Windows programs in a platform independent way without a VM or disk images. So basically it is Dosbox but for Windows. At first I started out writing my own Win32 API implementation, and it worked for the first couple of games. But eventually I saw it was more than 1 person could do. That is when I realized Wine was the only solution and since that only worked on Linux, I had to create minimal Linux emulator to run Wine. Implementing the kernal syscalls did take some time. But It is capable to running emulated threads and processes in a single threaded app, which is why it works with Emscripten.
https://news.ycombinator.com/item?id=26924884