Box86 - Linux Userspace x86 Emulator


I know box86 is not using nor pretends to use wine. What will happen then if you try to install an only windows game from steam?

The question may sound stupid, so allow me to add some background. Not a regular steam user (only got one game until I bought a humble bundle last week), then I got Into the breach game and it was only for window. I installed steam on my gpd win with linux mint and it happily installed it only warning that it was using a compatiblity layer (proton + wine I should assume) and it just worked as if the game was native.

What will happen in this case with box86?
 
I know box86 is not using nor pretends to use wine. What will happen then if you try to install an only windows game from steam?

The question may sound stupid, so allow me to add some background. Not a regular steam user (only got one game until I bought a humble bundle last week), then I got Into the breach game and it was only for window. I installed steam on my gpd win with linux mint and it happily installed it only warning that it was using a compatiblity layer (proton + wine I should assume) and it just worked as if the game was native.

What will happen in this case with box86?
Box86 doesn't support Wine for now. There are tricks with the elf structure (that I just fixed!), and syscall / segment setup that I need to work on.
So for now, if you allow steam to use Proton, it will install, but will not work...

I try to see if I can have box86 support wine, because while it's not the best way to do it, it would probably be the fastest at this point (proprer way is to merge box86 emulator and wrapping into wine, similar to what Hangover project have done, but that's a lot of work: that was my plan before creating box86, but as the codebase for wine is huge, I prefered to start with my own project, and so box86 was born).
 
Last edited:
Yes, it you try to run windows games on linux without wine it'll error about missing libraries fairly early on and not launch.

box86 as it stands it already an amazing project; thanks for your work on it.
 
Thanks for the clarification. I apologize if it sounded as a complain, I was just curious. This is an amazing project as it is and I can't wait see what possibilities it opens to Pyra, thanks a lot for your work.
 
I never tried.

(I'll do some tries on my side, but feel free to experiment)
Can you try it for me? I wanna buy Rpi4 exacly for server work beacuse im pay VPS since 6 month and i have there www, mysql and teamspeak.
You will become really my hero beacuse i cant find any solution and this project is looking like my last hope.
 
So, the discussion switched to a discord channel... But here are the result:

At first it wasn't running. A few missing symbols...
So added them..
Then a missing syscall
So added it

After that, the server is starting, but fail with a critical database error.

After some debug, I have notice that some structures uses in fcntl function needs alignement, so I have added that

And now the server start.

I haven't tested more, it still need more testing (specificaly, use a client to connect to the server)... But I'll leave that to other people.
 
So I have done a bit more testing.
I found some bugs in a syscall emulution on the Pandora, and an issue in the Dynarec (when it found an opcode not handled)... Fixed all this and now the server works fine, and I tested with client and it seemed to work fine.

The server even run on Pandora now!
 
Last edited:
I have done some fixes and improvements in box86.

zsnes_02.png

I know I have put zsnes before, but this time, after some even more improvement, I get playable speed on my gigahertz Pandora! Almost no frameskip on simple game, and game like Super Mario Kart is now at more than 20fps. Not bad for an emulator in an emulator!

am2r01.png

AM2R, the fan made remake of Metroid is now working. Perfectly playable on my Gigahertz mode (too bad it's been shut down)

shovelknight02.png

With the (hidden?) option of autoframe skip, ShovelKnight is also perfectly playable on my Gigahertz model, with 20+fps (ok, not 60fps solid, but playable anyway).
 
So, with my younger son we worked on gl4es, to add support to the old ARB_program "ASM style" shader. I worked on all the infrastructure, and he worked on the converter ARB->GLSL.
After some push and some adjustement, things are starting to work.

what it allows is some game like "Braid" to work, but also Unity games now works on gl4es too.

The games are slow, and I have some work to do on box86 to get Unity game really playable (they are slow, even on a pi4). But that's still some nice progress...

140Linux01.png
140 is a minimal platformer made in unity (to slow unfortunatly...)

braid01.png
Braid is native (x86 native, I mean, not Unity), but use NVidia's Cg libs and convert all shader to ARB_program (and too slow, it's very shader heavy!)

knightpp02.png
Knight of Pen and Paper +1 is a 2D made in Unity, but is slow for now too.
 
Last edited:
So, with my younger son we worked on gl4es, to add support to the old ARB_program "ASM style" shader. I worked on all the infrastructure, and he worked on the converter ARB->GLSL.
After some push and some adjustement, things are starting to work.

what it allows is some game like "Braid" to work, but also Unity games now works on gl4es too.

The games are slow, and I have some work to do on box86 to get Unity game really playable (they are slow, even on a pi4). But that's still some nice progress...

View attachment 36109
140 is a minimal platformer made in unity (to slow unfortunatly...)

View attachment 36110
Braid is native (x86 native, I mean, not Unity), but use NVidia's Cg libs and convert all shader to ARB_program (and too slow, it's very shader heavy!)

View attachment 36111
Knight of Pen and Paper +1 is a 2D made in Unity, but is slow for now too.
How did you enthuse your son into that... mine just wants to play Minecraft or KSP obsessively... Can't get him interested into any aspect of programming/development.. xD
 
After some more work on box86 and gl4es, some Unity3D games are almost playable on the Pandora. Still a bit too slow, but playable on more powerfull devices.

140Linux02.png
140 is almost playable speedwise, but there are some missing graphics detail for some reason.

CMR_03.png
Colin McRae Rally Remake is running (but 2fps on the Pandora, need more GPU speed...)

Teslagrad01.png
Teslagrad is also running. To slow to be good, but that's some progress.

hotline02.png

Even Hotline Miami (not a Unity3D game this one) start to show some stuffs.
 
Back
Top