Box86 - Linux Userspace x86 Emulator


TrashyMG

Sarcasm Dispenser
Staff member
Joined
Jan 18, 2010
Messages
10,837
And the second one. (I'm unsure what those little black strippes are, probably some box86 issue, like with the dropdown list that seems glitches also)
Looks similar to an issue with dosbox and Carmageddon I was having, something about 80-bit FPU precision?
 

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
8,789
Age
48
Location
France, near Lyon
Looks similar to an issue with dosbox and Carmageddon I was having, something about 80-bit FPU precision?
Yeah, that could be.
I though to have some workaround for that in my emu, but maybe it's a new case (or I have some issue with my barely-tested workaround)
 

ElPoco

Very Active Member
Joined
Feb 16, 2012
Messages
871
Age
36
Location
Paris, France
This week-end I've built an udpated box86 with dynarec (following the instructions from the compile.md) but I've been less successful than I expected to run stuff.

I've re-tried Retro City Rampage, it's better than it was last time I tried (without dynarec) but it's still too slow to be playable. Then I tried:
  • Gunpoint: just shows a black screen
  • SteamWorld Dig: Complains about no OpenGL 2.2 support (I have libGL.so.1 in the LD_LIBRARY_PATH)
  • 2064 - Read Only Memories: Crashes at startup
  • Not a Hero: Complains about some unsupported shaders
I've tried starting them from the CodeBlocks dev command line, since it seems to have plenty of libs in the LD_LIBRARY_PATH which avoids having the games complain about missing libs.
I feel like I'm doing something wrong, any idea what it can be?

I've also tried to install steamcmd and steam so that I could download my steam linux games but I couldn't get either to run. It was easier with Exagear where I had a "virtual Ubuntu environment" and I could just install the .deb. Is there a way to do get a similar approach with box86? Or another solution to get steam (or steamcmd) to work?
 

Magic Sam

Forever Homebrew
Joined
Aug 10, 2007
Messages
2,288
Age
38
Location
Innsmouth, MA
Hi all,

My girlfriend told me yesterday about the games Escape Goat 1 & 2 from MagicalTimeBean:


She believes those games would be a perfect fit for the Pandora.

Linux x86 versions exist for both of them.

@ptitSeb : do you think they could run correctly with box86 ?

Cheers, Magic Sam
 

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
8,789
Age
48
Location
France, near Lyon
Hi all,

My girlfriend told me yesterday about the games Escape Goat 1 & 2 from MagicalTimeBean:


She believes those games would be a perfect fit for the Pandora.

Linux x86 versions exist for both of them.

@ptitSeb : do you think they could run correctly with box86 ?

Cheers, Magic Sam
Escape Goat and Escape Goat 2 are FNA games. No need for box86, the "FNA trick" is enough. Escape Goat run full speed on the Pandora IIRC, but not Escape Goat 2, that is more graphicaly heavy...
 

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
8,789
Age
48
Location
France, near Lyon
This week-end I've built an udpated box86 with dynarec (following the instructions from the compile.md) but I've been less successful than I expected to run stuff.

I've re-tried Retro City Rampage, it's better than it was last time I tried (without dynarec) but it's still too slow to be playable. Then I tried:
  • Gunpoint: just shows a black screen
  • SteamWorld Dig: Complains about no OpenGL 2.2 support (I have libGL.so.1 in the LD_LIBRARY_PATH)
  • 2064 - Read Only Memories: Crashes at startup
  • Not a Hero: Complains about some unsupported shaders
I've tried starting them from the CodeBlocks dev command line, since it seems to have plenty of libs in the LD_LIBRARY_PATH which avoids having the games complain about missing libs.
I feel like I'm doing something wrong, any idea what it can be?

I've also tried to install steamcmd and steam so that I could download my steam linux games but I couldn't get either to run. It was easier with Exagear where I had a "virtual Ubuntu environment" and I could just install the .deb. Is there a way to do get a similar approach with box86? Or another solution to get steam (or steamcmd) to work?
For most game, you need to use ES2 backend of gl4es, so you need LIBGL_ES=2 on the Pandora (because I kept ES1.1 default on the Pandora only). Not a Hero should work for example with ES2 backend. You may need latest SGX driver (4.10) also, or the number of VA may be too low.

For steam, it's pretty tricky, because it wants 32bits X11 video. It should install. Not way to use a Virtual environnement on the Pandora (that's not how box86 is designed). You can install box86 in the system if you want. copy it (with sudo) in "/usr/bin/" and follow hints from this page: https://www.kernel.org/doc/Documentation/admin-guide/binfmt-misc.rst to get it integrated. That way, shell script can be launched directly.
That is not mandatory, and to insteall steam, you can download the ".deb", extract the files some where, and launch steam using "BOX86_LD_LIBRARY_PATH" pointing to the libs extracted. It should start the download of the full steam client.
 

PokeParadox

Founder of Pirate Games - Penjin Coder
Staff member
Joined
Dec 8, 2005
Messages
6,543
Age
36
Location
UK
Website
www.projectinfinity.org.uk
Just wanting to confirm - to play about with this on the Pandora I:
  • Use the Codeblocks PND
  • Download and extract the Box86 source
  • follow the Pandora build command in COMPILE.md using the commandline in Codeblocks PND
  • make install it onto the NAND?
I tried very quickly last night and it wasn't completing CMAKE so I'm just making sure I have the right idea?
 

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
8,789
Age
48
Location
France, near Lyon
Just wanting to confirm - to play about with this on the Pandora I:
  • Use the Codeblocks PND
  • Download and extract the Box86 source
  • follow the Pandora build command in COMPILE.md using the commandline in Codeblocks PND
  • make install it onto the NAND?
I tried very quickly last night and it wasn't completing CMAKE so I'm just making sure I have the right idea?
"make install" will not work as expected on the Pandora (but it does work on Pyra or Pi). Simply have box86 accessible in your PATH and use "box86 MyX86Elf" to start playing with it.

If you want full system integration (so box86 is started by itself when an x86 elf is started) use this guide: https://www.kernel.org/doc/Documentation/admin-guide/binfmt-misc.rst

Also, be aware that there is a box86 already in codeblocks. So if you build a newer version, be sure to have yours priori in the PATH (or overwrite the one in cadeblocks PND).
 

ElPoco

Very Active Member
Joined
Feb 16, 2012
Messages
871
Age
36
Location
Paris, France
@ptitSeb
Ok thanks a lot!
I'll try this when I have time. I've realized that there could be a few games in the itch.io's Bundle for Racial Equality that might run on the Pandora with box86.

@PokeParadox :
Here is how I've done:
  • Install the codeblocks PND
  • Start the dev command-line (from the codeblocks PND)
  • Use git (it's included in the dev command-line) to retrieve the box86 source (
    Code:
    git clone https://github.com/ptitSeb/box86.git
    ) this will make it easier to update (which is quite useful since it's being updated pretty often)
  • Follow the Pandora build command in COMPILE.md (don't forget to enable dynarec)
  • It will generate the box86 executable. You can copy it in /usr/bin if you want to integrate it to your system but you can also just copy it to the folder of the app you want to run
  • You'll most likely need to compile gl4es and to set BOX86_LIBGL to its path
  • You might also need additional i386 libraries. The output will tell you when you're missing a lib. What I've done is create a folder where I put all the additional i386 libs I need and I point to it with BOX86_LD_LIBRARY_PATH.
  • Finally, you might want to set HOME to somewhere else than your NAND
 

sm0kew0n

Very Active Member
Joined
Apr 13, 2016
Messages
367
Location
Hiigara
@ElPoco you probably know but in pico8 you can run keyconfig to get pandoras' controller to work, saved after restarts too.

I did what you said and copied box86 to my pico8 binary folder, also did a 'copy_libs.sh box86' (inside codeblocks) to the same folder, now pico8 starts and runs great without codeblocks open.
 

PokeParadox

Founder of Pirate Games - Penjin Coder
Staff member
Joined
Dec 8, 2005
Messages
6,543
Age
36
Location
UK
Website
www.projectinfinity.org.uk
Unfortunately, it's not building for me still:
Code:
kevin-openpandora:~/projects$ ls
box86
kevin-openpandora:~/projects$ cd box86/
kevin-openpandora:~/projects/box86$ `mkdir build; cd build; cmake .. -DPANDORA=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo; make`
CMake Error: Generator: execution of make failed. Make command was: "/mnt/utmp/codeblocks/usr/bin/make" "cmTC_004b4/fast"
CMake Error at /mnt/utmp/codeblocks/usr/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "/mnt/utmp/codeblocks/usr/bin/cc" is not able to compile a
  simple test program.

  It fails with the following output:

   Change Dir: /mnt/utmp/codeblocks/home/projects/box86/build/CMakeFiles/CMakeTmp

 

  Run Build Command:"/mnt/utmp/codeblocks/usr/bin/make" "cmTC_004b4/fast"

 

  Generator: execution of make failed.  Make command was:
  "/mnt/utmp/codeblocks/usr/bin/make" "cmTC_004b4/fast"

 

 

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:3 (project)


bash: /mnt/utmp/codeblocks/usr/bin/make: Input/output error
bash: --: command not found
 
Top