box86

Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices

View on GitHub

Usage

There are many environment variables to control Box86 behaviour. Env. var with * can also be put inside box64rc files

BOX86_LOG *

Controls the Verbosity level of the logs

BOX86_DUMP *

Controls the Dump of elf content

BOX86_ROLLING_LOG *

Show last few wrapped function call when a Signal is caught

BOX86_NOBANNER

Disables Box86 printing its version and build

BOX86_LD_LIBRARY_PATH *

Path to look for x86 libraries. Default is current folder and lib in current folder. Also, /usr/lib/i386-linux-gnu and /lib/i386-linux-gnu are added if they exist.

BOX86_PATH *

Path to look for x86 executable. Default is current folder and bin in current folder.

BOX86_DLSYM_ERROR *

Enables/Disables the logging of dlsym errors.

BOX86_TRACE_FILE *

Send all log and trace to a file instead of stdout Also, if name contains %pid then this is replaced by the actual PID of box86 instance Use stderr to use this instead of default stdout

BOX86_TRACE *

Only on build with trace enabled. Trace allow the logging of all instruction executed, along with register dump

BOX86_TRACE_INIT *

Use BOX86_TRACE_INIT instead of BOX_TRACE to start trace before the initialisation of libraries and the running program

BOX86_TRACE_START *

Only on builds with trace enabled.

BOX86_TRACE_XMM *

Only on builds with trace enabled.

BOX86_TRACE_EMM *

Only on builds with trace enabled.

BOX86_LOAD_ADDR *

Try to load at 0xXXXXXX main binary (if binary is a PIE)

BOX86_NOSIGSEGV *

Disable handling of SigSEGV. (Very useful for debugging.)

BOX86_NOSIGILL *

Disable handling of SigILL (to ease debugging mainly).

BOX86_X11COLOR16 *

PANDORA only: Try converting X11 color from 32 bits to 16 bits (to avoid light green on light cyan windows).

BOX86_X11THREADS *

Call XInitThreads when loading X11. (This is mostly for old Loki games with the Loki_Compat library.)

BOX86_X11GLX *

Force libX11’s GLX extension to be present.

BOX86_DYNAREC_DUMP *

Enables/disables Box86’s Dynarec’s dump.

BOX86_DYNAREC_LOG *

Set the level of DynaRec’s logs.

BOX86_DYNAREC *

Enables/Disables Box86’s Dynarec.

BOX86_DYNAREC_TRACE *

Enables/Disables trace for generated code.

BOX86_NODYNAREC *

Forbid dynablock creation in the interval specified (helpfull for debugging behaviour difference between Dynarec and Interpretor)

BOX86_DYNAREC_TEST *

Dynarec will compare it’s execution with the interpreter (super slow, only for testing)

BOX86_DYNAREC_BIGBLOCK *

Enables/Disables Box86’s Dynarec building BigBlock.

BOX86_DYNAREC_FORWARD *

Define Box86’s Dynarec max allowed forward value when building Block.

BOX86_DYNAREC_STRONGMEM *

Enable/Disable simulation of Strong Memory model

BOX86_DYNAREC_X87DOUBLE *

Force the use of Double for x87 emulation

BOX86_DYNAREC_FASTNAN *

Enable/Disable generation of -NAN

BOX86_DYNAREC_FASTROUND *

Enable/Disable generation of precise x86 rounding

BOX86_DYNAREC_SAFEFLAGS *

Handling of flags on CALL/RET opcodes

BOX86_DYNAREC_CALLRET *

Optimisation of CALL/RET opcodes (not compatible with jit/dynarec/smc)

BOX86_DYNAREC_BLEEDING_EDGE *

Detect MonoBleedingEdge and apply conservative settings

BOX86_DYNAREC_JVM *

Detect libjvm and apply conservative settings

BOX86_DYNAREC_WAIT *

Behavior with FillBlock is not availble (FillBlock build Dynarec blocks and is not multithreaded)

BOX86_DYNAREC_MISSING *

Dynarec print the missing opcodes

BOX86_SSE_FLUSHTO0 *

Handling of SSE Flush to 0 flags

BOX86_X87_NO80BITS *

Handling of x87 80bits long double

BOX86_MAXCPU

Maximum CPU Core exposed

BOX86_LIBCEF *

Detect libcef and apply malloc_hack settings

BOX86_SDL2_JGUID *

Need a workaround for SDL_GetJoystickGUIDInfo function for wrapped SDL2

BOX86_MUTEX_ALIGNED *

Will mutex are used as-is or wrapped to handle unaligned used

BOX86_LIBGL *

BOX86_LD_PRELOAD *

BOX86_EMULATED_LIBS *

BOX86_ALLOWMISSING_LIBS *

Allow Box86 to continue even if a library is missing (renamed from BOX86_ALLOWMISSINGLIBS).

BOX86_ALLOWMISSING_SYMBOLS *

Allow dlopen with RTLD_NOW flag to not resolve all symbols.

BOX86_PREFER_WRAPPED *

Box86 will use wrapped libs even if the lib is specified with absolute path

BOX86_PREFER_EMULATED *

Box86 will prefer emulated libs first (execpt for glibc, alsa, pulse, GL, vulkan and X11

BOX86_NOPULSE *

Disables the load of pulseaudio libraries.

BOX86_NOGTK *

Disables the loading of wrapped GTK libraries.

BOX86_NOVULKAN *

Disables the load of vulkan libraries.

BOX86_NOCRASHHANDLER *

Diables crashhandler.so

BOX86_FUTEX_WAITV *

Use of the new fuext_waitc syscall

BOX86_ENV

BOX86_ENV1

BOX86_FIX_64BIT_INODES *

Fix/Don’t fix 64bit inodes

BOX86_SHOWSEGV *

Show Segfault signal even if a signal handler is present

BOX86_SHOWBT *

Show a backtrace (native and emulated) on Signal

BOX86_BASH *

Define x86 bash to launch script

BOX86_BOX64

Define where to find box64 binary

BOX86_JITGDB *

BOX86_NORCFILES

If the env var exist, no rc files (like /etc/box86.box86rc and ~/.box86rc) will be loaded

BOX86_NOSANDBOX