Box86 is an x86 Emulator for Raspberry Pi and other 32-bit Arm platforms

Last week, we wrote about Raspberry Pi 4 Vulkan project status and future plans, and one person commented they are currently trying to get dxvk to work Box86, and that CNX Software should write about the latter.

Cool, but what does that mean? dxvk is an open-source Vulkan-based implementation of D3D9, D3D10, and D3D11 for Linux,  and Box86 is a Linux userspace x86 emulator that works on 32-bit Arm targets like the Raspberry Pi SBC. Nice, and I remember I ran x86 Linux and Windows on Raspberry Pi a few years ago using a closed-source commercial program called Exagear, but having an open-source solution is even better.

That means 64-bit Arm is not supported at all, and Box86 can not even be built for Aarch64 targets. Since many x86 games require OpenGL, as opposed to OpenGL ES, Box86 works best in conjunction with gl4es.

By installing Box86 on Raspberry Pi 4, or other Arm boards like many of the Rockchip RK3399 SBC around, you’ll be able to run some older, lightweight x86 Windows or Linux games including WorldOfGoo, Airline Tycoon Deluxe, and FTL: Faster Than Light. You’ll find many video demos on Pi Labs YouTube channel including the one embedded below.

That’s Rayman 2 on Raspberry Pi 4 @ 1.5 GHz with Box86 and Wine x86, running at 30 frames per second with 1280×720 resolution with high graphics settings. Not too bad! There are also other platforms showcased including Rock Pi 4C (RK3399) with Armbian and Panfrost open-source GPU driver, Orange Pi 4, ODROID-XU4 (Exynos 5422), OpenPandora (TI OMAP3530), and more.

Not everything is running perfectly just yet, as for example Unity games are rather hit or miss for now due to Mono and the complexity of providing OpenGL 3+ support on Arm for games that require it, Linux Steam can run now with box86 but can be unstable, and Wine x86 emulator is only partly supported, albeit good enough to play Rayman 2 as we’ve seen above.

Check out the project on Github to find out how to get started, or get involved with software development.

Support CNX Software - Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples
Subscribe
Notify of
guest
5 Comments
oldest
newest most voted
simburde
simburde
3 days ago

dxdk -> dxvk

Salvador
Salvador
3 days ago

many thanks!!

Salvador
Salvador
3 days ago

about gl4es. it’s not needed anymore on RPI, but it’s a requirement on any other ARM sbc running on blob drivers. it translate GL calls to GLES ones bc blob drivers mostly don’t support GL desktop profile. we used it on RPI4 when we didn’t have s3tc support to run games like don’t starve. we requested s3tc support on mesa, and now we have it, for both panfrost and videocore6 (v3d).

NicoD
1 day ago

It is awesome. I’m running it on the RK3399 thanks to Salvador and Pitseb.
Performs great with many of my favorite old games.
Great to see ARM Linux having better GPU and mainline support.
Times are a changin’.

Willy
Willy
1 hour ago

I’m just thinking that it could possibly make a good use of RK3288 boards like the MiQi, the Tinker board and various HDMI sticks. The 4 Cortex A17 in this CPU are very powerful, they’re about equivalent to A72 in 32 bit at the same frequency.

Advertisements