How-To: Run x86 Linux Applications on ARM Linux with Box86

How-To: Run x86 Linux Applications on ARM Linux with Box86

From box86's github:

Box86 will let you run x86 Linux programs (games) on non-x86 Linux, like ARM (needs to be 32bit little-endian).

Also, Box86 uses the native version for some "system" libraries, like libc, libm, or SDL and OpenGL, leading to more performance and easier integration with the host system.

Most x86 Games need OpenGL, so on ARM platforms, a solution like gl4es is probably needed.

Box86 now integrate a DynaRec for ARM platform. While the Dynarec is still incomplete, it already gives some speed boost on certain cases

The current version is still experimental, so some stuff still wont run. But many do work, like for example, WorldOfGoo (at least on the Pandora), Airline Tycoon Deluxe or new FTL. Many of the GameMaker linux games also run fine.

If you are serious about developing Box86, you should install ccache and activate it's support in the cmake project (use ccmake for example) To have TRACE enabled (i.e. dumping to stdout all individual x86 instructions executed, with dump of registers), you'll also need Zydis library accessible on your system.

Some x86 internal opcodes use parts of "Realmode X86 Emulator Library", see x86primop.c for copyright details

A note about Unity game emulation

Running Unity games is not possible for now. Mono itself uses signals that are not well emulated enough. So the solution is to use a native version of the libmono used by Unity. It can be found here: https://github.com/Unity-Technologies/mono and it needs to be built from source. When built copy libmonosgen-2.0.so to libmonounity.so and put it somewhere it can be dlopen'd (so in usr/lib or friend or somewhere in your LD_LIBRARY_PATH). Note that libmonounity is not completely wrapped yet, and the mechanism to call x86 library from libmonounity is not done yet

Please visit the box86 github page for full details.

"Airline Tycoon Deluxe" running on a gigahertz OpenPandora:

 

"Heretic 2" running on a gigahertz OpenPandora using the dynarec:

 

"Bit.Trip.Runner" running on an ODROID-XU4 / ODROID-XU4Q:

 

"Neverwinter Night" running on an ODROID-XU4 / ODROID-XU4Q:

 

"Shovel Knight" (video from @ITotalJustice) running on a Raspberry Pi 4:

 

"Freedom Planet" (video from @djazz) running on a Raspberry Pi 4:

Previous article Watch: Pinebook Pro Playing Half Life in Emulation at ~30fps
Next article Watch: Atomic Pi Review and Win10 Tips and Tricks

Leave a comment

Comments must be approved before appearing

* Required fields

x