Box86 - Linux Userspace x86 Emulator


The main thing you've mentioned that's piqued my interest personally is FTL, assuming you've done enough of those optimatizatons to make it run better by now. Presumably you should also release a launcher so we can try other things more conveniently, and I'd imagine that as something that simply brings up a dialogue box that allow you to select an x86 executable to run.
 
Question is: shall I release some PND for any of the game I mentionned? And if yes, wich one should I do?
(also, latest box86 with dynarec will be in next Codeblocks pnd relase)

"World of Goo" could be cool played with a stylus
 
Well for me a PND of Heretic II will be really a nice addition...but where i found the Linux release?
 
Well for me a PND of Heretic II will be really a nice addition...but where i found the Linux release?
Go back in time and order the game from Loki Games?

Or has the Linux version got any love from GoG?
 
Yes, that would be very good for debugging, but indeed, that would need me to track every write to memory, so basically write a memory tracker for each instruction, so some third code per x86 opcode (interpreter / dynarec / tracker), with its own set of bugs...

I guess there may be a better option of forking, having original run normal, fork running dynarec, and then some shared memory/pipe/similar for communicating between them to confirm results match up. Anyway, all looking really good!
 
Presumably you should also release a launcher so we can try other things more conveniently, and I'd imagine that as something that simply brings up a dialogue box that allow you to select an x86 executable to run.

I was thinking the same thing and then realized that you'd still need to retrieve the x86 libs needed by the executable. A launcher that automatically retrieved these libraries would be awesome.
 
I was thinking the same thing and then realized that you'd still need to retrieve the x86 libs needed by the executable. A launcher that automatically retrieved these libraries would be awesome.
Most of the times, mostof the needed libs are already in the package (in a lib subfolder, or lib32...). Only system libs or the one like libstdc++ need to be provided. So not that much. And many other libs are wrapped and the arm version is used instead anyway.
 
Oh cool, because last time I tested (back when you released it) I remember having to download a lot of libs for some games.
 
Go back in time and order the game from Loki Games?

Or has the Linux version got any love from GoG?
GOG don't have it...:(

and go back in time....uhmm i need to check on Archive.org if Loki site take my credit card xD:cool:
 
So, still making some progress with box86.
I have finaly fixed some of the long standing issues with the Dynarec, and now, WorldOfGoo can save the profile data.
I also have added some triky wrapped function, and, all in all, compatibility has been boosted.
I have merged the Dynarec branch with master (and remove the branch), so Dynarec is now official.

With latest dynarec, HumandRessourceMachine runs perfectly on the Pandora. The small stranges pauses (because of sound) are gone, and the music in the intro screen is finaly there.

I also get more games running.
guacamelee01.png

This one runs on the Pandora! While the very beggining is almost playable, it quickly become too slow to be enjoyable. Still, it runs on the Pandora.

dott01.png

Also run on the Pandora, but this one is super slow. Now sure why, but it's doing tons of CPU stuff...

bs1dc01.png

While this one is playable...

zsnes_01.png

Even ZSnes can run now :D It's too slow for now to compete with Snes9x (regular games run at 5~10fps, with SuperFX or more complex falls at less than 4). The Dynarec needs some optim, and I have some ideas, but each things at is own time...

unreal_03.png

Also Unreal is working. But the performances are not there for this one. Pretty slow, and many issue to configure sound properly (I still have no music, or if use FMODex, than I have sound and music but it's even slower).

descent3_02.png

And at last, I got the Descent 3 Demo from Loki running. And this one runs superbly (appart from the lack of 800x480 support). So I've just made a PND of this, and it's in my beta thread: https://pyra-handheld.com/boards/threads/ptitsebs-beta-lair.77439 ready to download and try.

(and just to be clear, all thoses screenshot are taken from my Pandora :p )
 
Oh, so you select 800x600 and it take 800x480? Interesting. You have no sound on your video @ingoreis right? (btw, that was quick! you publish that video like 30min after I published the PND!)
 
So, still making some progress with box86.
I have finaly fixed some of the long standing issues with the Dynarec, and now, WorldOfGoo can save the profile data.
I also have added some triky wrapped function, and, all in all, compatibility has been boosted.
I have merged the Dynarec branch with master (and remove the branch), so Dynarec is now official.

With latest dynarec, HumandRessourceMachine runs perfectly on the Pandora. The small stranges pauses (because of sound) are gone, and the music in the intro screen is finaly there.

I also get more games running.
[alt="zsnes_01.png"]35498[/ATTACH]
Even ZSnes can run now :D It's too slow for now to compete with Snes9x (regular games run at 5~10fps, with SuperFX or more complex falls at less than 4). The Dynarec needs some optim, and I have some ideas, but each things at is own time...

View attachment 35499
Also Unreal is working. But the performances are not there for this one. Pretty slow, and many issue to configure sound properly (I still have no music, or if use FMODex, than I have sound and music but it's even slower).

ready to download and try.

(and just to be clear, all thoses screenshot are taken from my Pandora :p )

Unreal tournament would be unreal! Thank you
 
I created a pnd around the simple/little game HollyMan (written for Hollywood).
It's packaged with Hollywood 7 Player for Linux32 bit (as version 8 is not running) and of course running with Box86 dynarec.

Here is the error with Hollywood 8:

Using default BOX86_PATH: ./:bin/
Counted 38 Env var
Looking for ./HollywoodPlayer8
Using native(wrapped) libX11.so.6
Using native(wrapped) librt.so.1
Using native(wrapped) libm.so.6
Using native(wrapped) libpthread.so.0
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux.so.2
Using native(wrapped) libdl.so.2
Error: Symbol XResourceManagerString not found, cannot apply R_386_JMP_SLOT @0x82870c4 (0x804bc0e)
Error: Symbol XrmInitialize not found, cannot apply R_386_JMP_SLOT @0x82872ec (0x804c4ae)
Error: Symbol XrmGetStringDatabase not found, cannot apply R_386_JMP_SLOT @0x8287370 (0x804c6be)
Error: Symbol XrmGetResource not found, cannot apply R_386_JMP_SLOT @0x828741c (0x804c96e)
Using native(wrapped) libasound.so.2
Using native(wrapped) libXfixes.so.3
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXxf86vm.so.1
Using native(wrapped) libXext.so.6
Warning: Cannot dlopen("libpango-1.0.so.0"/0x8261850, 1)
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXss.so.1
Warning: Cannot dlopen("libnotify.so.4"/0x826187d, 1)
Warning: Cannot dlopen("libgtk-x11-2.0.so.0"/0x826188c, 1)
Warning: Cannot dlopen("libglib-2.0.so.0"/0x82618a0, 1)
Warning: Cannot dlopen("libgobject-2.0.so.0"/0x82618b1, 1)
PltResolver: Ofs=0x8171f56, Id=392 (IP=(nil), ESP+4=0x188)
 
Last edited:
I created a pnd around the simple/little game HollyMan (written for Hollywood).
It's packaged with Hollywood 7 Player for Linux32 bit (as version 8 is not running) and of course running with Box86 dynarec.

Here is the error with Hollywood 8:

Using default BOX86_PATH: ./:bin/
Counted 38 Env var
Looking for ./HollywoodPlayer8
Using native(wrapped) libX11.so.6
Using native(wrapped) librt.so.1
Using native(wrapped) libm.so.6
Using native(wrapped) libpthread.so.0
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux.so.2
Using native(wrapped) libdl.so.2
Error: Symbol XResourceManagerString not found, cannot apply R_386_JMP_SLOT @0x82870c4 (0x804bc0e)
Error: Symbol XrmInitialize not found, cannot apply R_386_JMP_SLOT @0x82872ec (0x804c4ae)
Error: Symbol XrmGetStringDatabase not found, cannot apply R_386_JMP_SLOT @0x8287370 (0x804c6be)
Error: Symbol XrmGetResource not found, cannot apply R_386_JMP_SLOT @0x828741c (0x804c96e)
Using native(wrapped) libasound.so.2
Using native(wrapped) libXfixes.so.3
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXxf86vm.so.1
Using native(wrapped) libXext.so.6
Warning: Cannot dlopen("libpango-1.0.so.0"/0x8261850, 1)
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXss.so.1
Warning: Cannot dlopen("libnotify.so.4"/0x826187d, 1)
Warning: Cannot dlopen("libgtk-x11-2.0.so.0"/0x826188c, 1)
Warning: Cannot dlopen("libglib-2.0.so.0"/0x82618a0, 1)
Warning: Cannot dlopen("libgobject-2.0.so.0"/0x82618b1, 1)
PltResolver: Ofs=0x8171f56, Id=392 (IP=(nil), ESP+4=0x188)
You probably need to include at the very least the libs from glib2, gtk2 and libnotify, to sastify the lib load errors on the last page that I've just tested. It's not clear to me whether you need x86 or ARM versions of those though, and exactly where you'd put them to be included, but hopefully you're more experienced with box86 than I am and therefore know.

Edit: Since you're already released it, you've probably worked though many of those errors already. I'll leave this here in case it helps anyone else. I suppose.
 
Back
Top