Giter VIP home page Giter VIP logo

box86's Introduction

box86

Linux Userspace x86 Emulator with a twist

Donate

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

Here are 6 videos, the first 2 of "Airline Tycoon Deluxe" and "Heretic 2" running on a gigahertz OpenPandora (the second one use the dynarec), and the next 2 of "Bit.Trip.Runner" and "Neverwinter Night" running on an ODroid XU4, and the last 2 on a Pi4: Shovel Knight (video from @ITotalJustice) and Freedom Planet (video from @djazz)

Play on Youtube Play on Youtube Play on Youtube Play on Youtube Play on Youtube Play on Youtube


Compiling

How to compile can be found here


Usage

There are a few environment variables to control Box86 behaviour.

See here for all variables and what they do.


Version history

The change log is here


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


Final words

(If you use Box86 in your project, please don't forget to mention Box86)

box86's People

Contributors

afonso360 avatar blackhazel avatar ctoth avatar kant avatar m-ht avatar meveric avatar ptitseb avatar rajdakin avatar slock83 avatar voltagex avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.