Networking would be tricky, but you could encapsulate TCP over a custom websocket tunnel.
...with exactly the caveat you described, because the wasm port doesn't support websockets yet.
Alternatively you can run *cough* IE6 in JSLinux.
Very light games are playable. I'm sure that legacy line-of-business software would have zero trouble.
This is not just Qemu running in a browser, folks. Someone put a huge amount of work into this.
Absolutely incredible project!
(Also, it's in the browser sandbox so you don't have to worry about viruses)
> A while ago I was pondering getting emscripten working under Wine, but realised that it's not quite as simple as a typical program (because Wine relies on being able to just provide a compatibility layer for syscalls, so the compatibility layer for x86 would have to be provided by the port to emscripten).
> Seeing this post, I wondered if you'd found some cunning way around this so downloaded the project. No, you've just gone straight ahead and implemented an x86 emulator! Ok, but how is wine able to run on bare metal? Oh right, you've actually implemented parts of linux, including most of the syscall interface, your own executable loader, parts of procfs and assorted special devices! Alright, but (as Alon asks) how does this actually render things? Ah I see, you've implemented your own display driver in Wine which, when methods are invoked, dispatches interrupts to the emulated CPU which then forwards and translates the interrupt to an equivalent sdl call (with opengl working a similar way, but with a dll)!
> Wow!
[1] - https://kevodwyer.github.io/boxedwine-examples/v1/boxedwine....
That alone is quite interesting if true, and probably useful outside of just running Wine.
Basically this project is a Linux emulator but rather than exposing libc APIs it exposes Win32 et al via WINE.
Pretty neat idea but comes with all the usual caveats of running Windows software on WINE plus all the new caveats of running C++ in WebAssembly.
The project running on browser is not the main point. It can run standalone, and is mostly used to run old games that no longer work well on modern hardware / windows. Heck you can even use it on Linux.
I think the coolest part of the project is that it makes wine very portable though. Boxedwine seems like it could run on android as well for example.
Thanks!
I mostly play IF and slashem, but Deus Ex it's game I liked a lot in my teen years.
I realize Wine is not an emulator...but...same shit.
https://en.wikipedia.org/wiki/Donald_Duck:_Goin%27_Quackers Says error about not being able to find the CD-rom drive.
https://humongous.fandom.com/wiki/Putt-Putt:_Pep%27s_Birthda... I just get a error saying "Error É" whilst trying to run the executable.
Both do install fine into %APPDATA% though. I've tried both the x86/x64 versions executables of Boxedwine.
Mounting CD-rom directly, extracting it to ISO then to a folder doesn't seem to work either.
Do you happen to have any idea what I might be doing wrong or if those games are not yet supported at all?
Thanks
As for the Putt-Putt, that has the look of flash or Adobe Air. I know that things like Java, and .Net don't work yet in Boxedwine, so if it is doing any kind of JIT then it won't work. I added that to the list of games I should look at.
You got pretty unlucky if you only tried 2 older games like that and neither worked.
This project is really clever and one the best things I've seen on here in a while.
I did get them working and playable some time ago on Linux using Wine though (my little brother likes to play them still, except he can't get used to Linux), even though they ask for CD-rom.
The Putt-Putt game is using some custom click 'n play Python2 based "SCUMM" engine, it doesn't require Java or .NET iirc. And I think they predate JIT a bit.