diff options
Diffstat (limited to 'docs/gen')
| -rw-r--r-- | docs/gen/gen.py | 55 | ||||
| -rw-r--r-- | docs/gen/usage.json | 96 |
2 files changed, 132 insertions, 19 deletions
diff --git a/docs/gen/gen.py b/docs/gen/gen.py index 710e973b..0eb3d52e 100644 --- a/docs/gen/gen.py +++ b/docs/gen/gen.py @@ -18,9 +18,11 @@ Usage There are many environment variables to control Box64's behaviour, which will be listed below by category. -### Configuration files +There are 2 types of Box64 builds: the Wine WOW64 build (WowBox64) and the regular Linux build. Beware only some of the environment variables are available in WowBox64. -In addition to environment variables, by default, Box64 also looks for 2 places for rcfile: the system-wide `/etc/box64.box64rc` and user-specific `~/.box64rc`. +### Configuration files for Linux build + +In addition to environment variables, if you're using the regular Linux build, Box64 also looks for 2 places for rcfile by default: the system-wide `/etc/box64.box64rc` and user-specific `~/.box64rc`. Settings priority follows this order (from highest to lowest): `~/.box64rc` > `/etc/box64.box64rc` > environment variables. Example configuration: @@ -35,7 +37,7 @@ BOX64_DYNAREC_CALLRET=1 This configuration will apply the specified settings application-wide to any executable named `factorio`. -### Advanced usage +### Advanced usage for Linux build 1. **Wildcard Matching** @@ -63,9 +65,9 @@ This configuration will apply the specified settings application-wide to any exe for category, entries in categories.items(): md_file.write(f"## {category}\n\n") for entry in entries: - md_file.write(f"### {entry['name']}\n\n{entry['description']}\n\n") + md_file.write(f"### {entry['name']}\n\n{entry['description']}{' Availble in WowBox64.' if entry['wine'] else ''}\n\n") for option in entry['options']: - md_file.write(f" * {option['key']}: {option['description']} {"[Default]" if option['default'] else ""}\n") + md_file.write(f" * {option['key']}: {option['description']} {'[Default]' if option['default'] else ''}\n") md_file.write("\n") @@ -123,9 +125,9 @@ Example: """) for entry in data: - pod_file.write(f"\n=item B<{entry['name']}> =I<{ '|'.join(option['key'] for option in entry['options']) }>\n\n{entry['description']}\n\n") + pod_file.write(f"\n=item B<{entry['name']}> =I<{ '|'.join(option['key'] for option in entry['options']) }>\n\n{entry['description']}{' Availble in WowBox64.' if entry['wine'] else ''}\n\n") for option in entry['options']: - pod_file.write(f" * {option['key']} : {option['description']} {"[Default]" if option['default'] else ""}\n") + pod_file.write(f" * {option['key']} : {option['description']} {'[Default]' if option['default'] else ''}\n") pod_file.write("\n") pod_file.write(""" @@ -155,22 +157,22 @@ def get_usage_entry(usage, define): for entry in data: i = list(d["default"] for d in entry["options"]).count(True) if i > 1: - print(f"{entry["name"]:<{PADDING}}: multiple default values usage.json") + print(f"{entry['name']:<{PADDING}}: multiple default values usage.json") # regex to match env.h C code regex = { "INTEGER": re.compile( - r"^\s*INTEGER\((?P<define>\w+), (?P<name>\w+), (?P<default>\w+), (?P<min>\w+), (?P<max>\w+)\)" + r"^\s*INTEGER\((?P<define>\w+), (?P<name>\w+), (?P<default>\w+), (?P<min>\w+), (?P<max>\w+), (?P<wine>\w+)\)" ), "INTEGER64": re.compile( - r"^\s*INTEGER64\((?P<define>\w+), (?P<name>\w+), (?P<default>\w+)\)" + r"^\s*INTEGER64\((?P<define>\w+), (?P<name>\w+), (?P<default>\w+), (?P<wine>\w+)\)" ), "BOOLEAN": re.compile( - r"^\s*BOOLEAN\((?P<define>\w+), (?P<name>\w+), (?P<default>\w+)\)" + r"^\s*BOOLEAN\((?P<define>\w+), (?P<name>\w+), (?P<default>\w+), (?P<wine>\w+)\)" ), - "ADDRESS": re.compile(r"^\s*ADDRESS\((?P<define>\w+), (?P<name>\w+)\)"), - "STRING": re.compile(r"^\s*STRING\((?P<define>\w+), (?P<name>\w+)\)"), + "ADDRESS": re.compile(r"^\s*ADDRESS\((?P<define>\w+), (?P<name>\w+), (?P<wine>\w+)\)"), + "STRING": re.compile(r"^\s*STRING\((?P<define>\w+), (?P<name>\w+), (?P<wine>\w+)\)"), } env_file = os.path.join(script_dir, "../../src/include/env.h") @@ -210,6 +212,10 @@ for define, m in matches["INTEGER"].items(): # blank means that the entry has an 'XXXX' entry which usually indicated that arbitrary values are valid blank = False default2 = None + + if int(m["wine"]) != int(e["wine"]): + print(f"{define:<{PADDING}}: wine mismatch: env.h={int(m['wine'])}, usage.json={int(e['wine'])}") + for o in e["options"]: if o["key"] == "XXXX": blank = True @@ -238,7 +244,7 @@ for define, m in matches["INTEGER"].items(): f"{define:<{PADDING}}: default value mismatch: env.h={default}, usage.json={default2}" ) -for define, m in matches["INTEGER64"].items(): +for define, m in matches['INTEGER64'].items(): # similar to INTEGER but without min/max name = m["name"] default = None if m["no_default"] or not m["default"].isdigit() else int(m["default"]) @@ -246,6 +252,10 @@ for define, m in matches["INTEGER64"].items(): # Check consistency with usage.json if e := get_usage_entry(data, define): default2 = None + + if int(m["wine"]) != int(e["wine"]): + print(f"{define:<{PADDING}}: wine mismatch: env.h={int(m['wine'])}, usage.json={int(e['wine'])}") + for o in e["options"]: if o["key"] == "XXXX": continue @@ -267,11 +277,15 @@ for define, m in matches["BOOLEAN"].items(): # Check consistency with usage.json if e := get_usage_entry(data, define): default2 = None + + if int(m["wine"]) != int(e["wine"]): + print(f"{define:<{PADDING}}: wine mismatch: env.h={int(m['wine'])}, usage.json={int(e['wine'])}") + for o in e["options"]: try: val = bool(o["key"]) except ValueError: - print(f"{define:<{PADDING}}: failed to parse boolean {o["key"]}") + print(f"{define:<{PADDING}}: failed to parse boolean {o['key']}") if o["default"]: default2 = val @@ -281,14 +295,19 @@ for define, m in matches["BOOLEAN"].items(): f"{define:<{PADDING}}: default value mismatch: env.h={default}, usage.json={default2}" ) -# ADDRESS and STRING are not that interesting, just check that they exist in usage.json +# ADDRESS and STRING are not that interesting for define, m in matches["ADDRESS"].items(): - _ = get_usage_entry(data, define) + if e := get_usage_entry(data, define): + if int(m["wine"]) != int(e["wine"]): + print(f"{define:<{PADDING}}: wine mismatch: env.h={int(m['wine'])}, usage.json={int(e['wine'])}") + for define, m in matches["STRING"].items(): # skip BOX64_ENV[1-5] entries, they mismatch but this is fine if define.startswith("BOX64_ENV"): continue - _ = get_usage_entry(data, define) + if e := get_usage_entry(data, define): + if int(m["wine"]) != int(e["wine"]): + print(f"{define:<{PADDING}}: wine mismatch: env.h={int(m['wine'])}, usage.json={int(e['wine'])}") # check that everything from usage.json is in env.h for e in data: diff --git a/docs/gen/usage.json b/docs/gen/usage.json index 9dc1a30a..4cce0566 100644 --- a/docs/gen/usage.json +++ b/docs/gen/usage.json @@ -3,6 +3,7 @@ "name": "BOX64_ADDLIBS", "description": "Add extras to the needed libraries list, rarely needed.", "category": "Libraries", + "wine": false, "options": [ { "key": "XXXX", @@ -20,6 +21,7 @@ "name": "BOX64_ALLOWMISSINGLIBS", "description": "Allow missing libraries to be ignored.", "category": "Libraries", + "wine": false, "options": [ { "key": "0", @@ -37,6 +39,7 @@ "name": "BOX64_ARGS", "description": "Arguments to pass to the guest program, only valid if there is no existing arguments.", "category": "Arguments", + "wine": false, "options": [ { "key": "XXXX", @@ -54,6 +57,7 @@ "name": "BOX64_AVX", "description": "Expose AVX extension to CPUID and cpuinfo file. Default value is 2 on Arm64 because it's fully implemented in DynaRec, 0 otherwise.", "category": "Compatibility", + "wine": true, "options": [ { "key": "0", @@ -76,6 +80,7 @@ "name": "BOX64_BASH", "description": "Path to the bash executable.", "category": "Compatibility", + "wine": false, "options": [ { "key": "XXXX", @@ -88,6 +93,7 @@ "name": "BOX64_CEFDISABLEGPU", "description": "Add -cef-disable-gpu argument to the guest program.", "category": "Arguments", + "wine": false, "options": [ { "key": "0", @@ -105,6 +111,7 @@ "name": "BOX64_CEFDISABLEGPUCOMPOSITOR", "description": "Add -cef-disable-gpu-compositor argument to the guest program.", "category": "Arguments", + "wine": false, "options": [ { "key": "0", @@ -122,6 +129,7 @@ "name": "BOX64_CPUTYPE", "description": "Specify the CPU type to emulate.", "category": "Compatibility", + "wine": true, "options": [ { "key": "0", @@ -139,6 +147,7 @@ "name": "BOX64_CRASHHANDLER", "description": "Use a dummy crash handler or not.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -156,6 +165,7 @@ "name": "BOX64_DLSYM_ERROR", "description": "Enable or disable the logging of dlsym errors.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -173,6 +183,7 @@ "name": "BOX64_DUMP", "description": "Dump elfloader debug information.", "category": "Debugging", + "wine": true, "options": [ { "key": "0", @@ -190,6 +201,7 @@ "name": "BOX64_DYNAREC", "description": "Enable/disable the Dynamic Recompiler (a.k.a DynaRec). This option defaults to 1 if it's enabled in the build options for a supported architecture.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -207,6 +219,7 @@ "name": "BOX64_DYNAREC_ALIGNED_ATOMICS", "description": "Generate aligned atomics only (only available on Arm64 for now).", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -224,6 +237,7 @@ "name": "BOX64_DYNAREC_BIGBLOCK", "description": "Enable building bigger DynaRec code blocks for better performance.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -251,6 +265,7 @@ "name": "BOX64_DYNAREC_BLEEDING_EDGE", "description": "Detect MonoBleedingEdge and apply conservative settings.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -268,6 +283,7 @@ "name": "BOX64_DYNAREC_CALLRET", "description": "Optimize CALL/RET opcodes.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -281,7 +297,7 @@ }, { "key": "2", - "description": "Try to optimize CALL/RET, skipping the jump table when possible, adding code to handle return to dirty/modified block.", + "description": "Try to optimize CALL/RET, skipping the jump table when possible, adding code to handle return to dirty/modified block. Does not work on WowBox64.", "default": false } ] @@ -290,6 +306,7 @@ "name": "BOX64_DYNAREC_DF", "description": "Enable or disable the use of deferred flags.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -307,6 +324,7 @@ "name": "BOX64_DYNAREC_DIRTY", "description": "Allow continue running a block that is unprotected and potentially dirty.", "category": "Performance", + "wine": false, "options": [ { "key": "0", @@ -329,6 +347,7 @@ "name": "BOX64_DYNAREC_DIV0", "description": "Enable or disable the generation of division-by-zero exception.", "category": "Compatibility", + "wine": true, "options": [ { "key": "0", @@ -346,6 +365,7 @@ "name": "BOX64_DYNAREC_DUMP", "description": "Enable DynaRec dump.", "category": "Debugging", + "wine": true, "options": [ { "key": "0", @@ -368,6 +388,7 @@ "name": "BOX64_DYNAREC_DUMP_RANGE", "description": "Dump DynaRec blocks in the specified range.", "category": "Debugging", + "wine": true, "options": [ { "key": "0xXXXXXXXX-0xYYYYYYYY", @@ -380,6 +401,7 @@ "name": "BOX64_DYNAREC_FASTNAN", "description": "Enable or disable fast NaN handling.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -397,6 +419,7 @@ "name": "BOX64_DYNAREC_FASTROUND", "description": "Enable or disable fast rounding.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -419,6 +442,7 @@ "name": "BOX64_DYNAREC_FORWARD", "description": "Define max allowed forward value when building block.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -441,6 +465,7 @@ "name": "BOX64_DYNAREC_GDBJIT", "description": "The GDBJIT debugging support, only available on build with `-DGDBJIT=ON`, enable it with gdb command: jit-reader-load /usr/local/lib/libbox64gdbjitreader.so.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -473,6 +498,7 @@ "name": "BOX64_DYNAREC_LOG", "description": "Disable or enable DynaRec logs.", "category": "Debugging", + "wine": true, "options": [ { "key": "0", @@ -500,6 +526,7 @@ "name": "BOX64_DYNAREC_MISSING", "description": "Print missing opcodes.", "category": "Debugging", + "wine": true, "options": [ { "key": "0", @@ -522,6 +549,7 @@ "name": "BOX64_DYNAREC_NATIVEFLAGS", "description": "Enable or disable the use of native flags.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -539,6 +567,7 @@ "name": "BOX64_DYNAREC_PAUSE", "description": "Enable x86 PAUSE emulation, may help the performance of spinlocks.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -566,6 +595,7 @@ "name": "BOX64_DYNAREC_PERFMAP", "description": "Generate map file for Linux perf tool.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -583,6 +613,7 @@ "name": "BOX64_DYNAREC_SAFEFLAGS", "description": "Behaviour of flags emulation on CALL/RET opcodes.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -605,6 +636,7 @@ "name": "BOX64_DYNAREC_STRONGMEM", "description": "Enable the emulation of x86 strong memory model.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -632,6 +664,7 @@ "name": "BOX64_DYNAREC_TBB", "description": "Enable or disable libtbb detection.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -649,6 +682,7 @@ "name": "BOX64_DYNAREC_TEST", "description": "Enable DynaRec execution comparison with the interpreter, very slow, only for testing.", "category": "Debugging", + "wine": true, "options": [ { "key": "0", @@ -671,6 +705,7 @@ "name": "BOX64_DYNAREC_TRACE", "description": "Enable or disable DynaRec trace.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -688,6 +723,7 @@ "name": "BOX64_DYNAREC_VOLATILE_METADATA", "description": "Use volatile metadata parsed from PE files, only valid for 64bit Windows games.", "category": "Performance", + "wine": false, "options": [ { "key": "0", @@ -705,6 +741,7 @@ "name": "BOX64_DYNAREC_WAIT", "description": "Wait or not for the building of a DynaRec code block to be ready.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -722,6 +759,7 @@ "name": "BOX64_DYNAREC_WEAKBARRIER", "description": "Tweak the memory barriers to reduce the performance impact by strong memory emualtion.", "category": "Performance", + "wine": true, "options": [ { "key": "0", @@ -744,6 +782,7 @@ "name": "BOX64_DYNAREC_X87DOUBLE", "description": "Force the use of float/double for x87 emulation.", "category": "Compatibility", + "wine": true, "options": [ { "key": "0", @@ -766,6 +805,7 @@ "name": "BOX64_EMULATED_LIBS", "description": "Force the use of emulated libraries.", "category": "Libraries", + "wine": false, "options": [ { "key": "XXXX", @@ -783,6 +823,7 @@ "name": "BOX64_ENV", "description": "Add an environment variable.", "category": "Environment", + "wine": false, "options": [ { "key": "XXXX=yyyy", @@ -795,6 +836,7 @@ "name": "BOX64_ENV[1-5]", "description": "Add an environment variable.", "category": "Environment", + "wine": false, "options": [ { "key": "XXXX=yyyy", @@ -807,6 +849,7 @@ "name": "BOX64_EXIT", "description": "Just exit, do not try to run the program.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -824,6 +867,7 @@ "name": "BOX64_FIX_64BIT_INODES", "description": "Fix 64bit inodes.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -841,6 +885,7 @@ "name": "BOX64_IGNOREINT3", "description": "Ignore INT3 instructions.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -858,6 +903,7 @@ "name": "BOX64_INSERT_ARGS", "description": "Prepend arguments to the command line.", "category": "Arguments", + "wine": false, "options": [ { "key": "XXXX", @@ -875,6 +921,7 @@ "name": "BOX64_INPROCESSGPU", "description": "Add --in-process-gpu argument to the guest program.", "category": "Arguments", + "wine": false, "options": [ { "key": "0", @@ -892,6 +939,7 @@ "name": "BOX64_JITGDB", "description": "Launch gdb or not for SIGSEGV, SIGILL, and SIGBUS.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -919,6 +967,7 @@ "name": "BOX64_JVM", "description": "Detect libjvm and apply conservative settings.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -936,6 +985,7 @@ "name": "BOX64_LD_LIBRARY_PATH", "description": "Path to look for x86_64 libraries.", "category": "Libraries", + "wine": false, "options": [ { "key": "XXXX", @@ -948,6 +998,7 @@ "name": "BOX64_LD_PRELOAD", "description": "Force loading libraries with the binary.", "category": "Libraries", + "wine": false, "options": [ { "key": "XXXX", @@ -965,6 +1016,7 @@ "name": "BOX64_LIBCEF", "description": "Detect libcef and apply BOX64_MALLOC_HACK settings.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -982,6 +1034,7 @@ "name": "BOX64_LIBGL", "description": "Set the name for libGL.", "category": "Libraries", + "wine": false, "options": [ { "key": "libXXXX", @@ -999,6 +1052,7 @@ "name": "BOX64_LOAD_ADDR", "description": "Set the address where the program is loaded, only active for PIE guest programs.", "category": "Debugging", + "wine": false, "options": [ { "key": "0xXXXXXXXX", @@ -1011,6 +1065,7 @@ "name": "BOX64_LOG", "description": "Enable or disable Box64 logs, default value is 0 if stdout is not terminal, 1 otherwise.", "category": "Debugging", + "wine": true, "options": [ { "key": "0", @@ -1038,6 +1093,7 @@ "name": "BOX64_MALLOC_HACK", "description": "Behaviour when hooking malloc operators.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1060,6 +1116,7 @@ "name": "BOX64_MAXCPU", "description": "Maximum CPU cores exposed.", "category": "Compatibility", + "wine": true, "options": [ { "key": "0", @@ -1077,6 +1134,7 @@ "name": "BOX64_MMAP32", "description": "Force 32-bit compatible memory mappings on 64-bit programs that run 32-bit code (like Wine WOW64), can improve performance.", "category": "Performance", + "wine": false, "options": [ { "key": "0", @@ -1094,6 +1152,7 @@ "name": "BOX64_NOBANNER", "description": "Disable the Box64 banner.", "category": "Debugging", + "wine": true, "options": [ { "key": "0", @@ -1111,6 +1170,7 @@ "name": "BOX64_NODYNAREC", "description": "Forbid dynablock creation in the address range specified, helpful for debugging behaviour difference between Dynarec and Interpreter.", "category": "Performance", + "wine": true, "options": [ { "key": "0xXXXXXXXX-0xYYYYYYYY", @@ -1123,6 +1183,7 @@ "name": "BOX64_NOGTK", "description": "Do not load wrapped GTK libraries.", "category": "Libraries", + "wine": false, "options": [ { "key": "0", @@ -1140,6 +1201,7 @@ "name": "BOX64_NOPULSE", "description": "Do not load PulseAudio libraries (both native and x86_64).", "category": "Libraries", + "wine": false, "options": [ { "key": "0", @@ -1157,6 +1219,7 @@ "name": "BOX64_NORCFILES", "description": "Do not load any rc files.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1174,6 +1237,7 @@ "name": "BOX64_NOSANDBOX", "description": "Add --no-sandbox argument to the guest program.", "category": "Arguments", + "wine": false, "options": [ { "key": "0", @@ -1191,6 +1255,7 @@ "name": "BOX64_NOSIGSEGV", "description": "Disable the handling of SIGSEGV.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1208,6 +1273,7 @@ "name": "BOX64_NOSIGILL", "description": "Disable the handling of SIGILL.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1225,6 +1291,7 @@ "name": "BOX64_NOVULKAN", "description": "Do not load Vulkan libraries.", "category": "Libraries", + "wine": false, "options": [ { "key": "0", @@ -1242,6 +1309,7 @@ "name": "BOX64_PATH", "description": "Path to look for x86_64 binaries.", "category": "Compatibility", + "wine": false, "options": [ { "key": "XXXX", @@ -1254,6 +1322,7 @@ "name": "BOX64_PREFER_EMULATED", "description": "Prefer emulated libraries over native ones.", "category": "Libraries", + "wine": false, "options": [ { "key": "0", @@ -1271,6 +1340,7 @@ "name": "BOX64_PREFER_WRAPPED", "description": "Prefer wrapped libs first even if the lib is specified with absolute path.", "category": "Libraries", + "wine": false, "options": [ { "key": "0", @@ -1288,6 +1358,7 @@ "name": "BOX64_RCFILE", "description": "Path to the rc file to load.", "category": "Compatibility", + "wine": false, "options": [ { "key": "XXXX", @@ -1300,6 +1371,7 @@ "name": "BOX64_RDTSC_1GHZ", "description": "Use hardware counter for rdtsc if available.", "category": "Performance", + "wine": false, "options": [ { "key": "0", @@ -1317,6 +1389,7 @@ "name": "BOX64_RESERVE_HIGH", "description": "Reserve high memory area for the program, always enabled on Box32.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1334,6 +1407,7 @@ "name": "BOX64_ROLLING_LOG", "description": "Show last few wrapped function call when a signal is caught.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1356,6 +1430,7 @@ "name": "BOX64_SDL2_JGUID", "description": "Use a workaround for SDL_GetJoystickGUIDInfo function for wrapped SDL2.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1373,6 +1448,7 @@ "name": "BOX64_SHAEXT", "description": "Expose SHAEXT (a.k.a. SHA_NI) capabilities.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1390,6 +1466,7 @@ "name": "BOX64_SHOWBT", "description": "Show native and emulated backtrace when a signal is caught.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1407,6 +1484,7 @@ "name": "BOX64_SHOWSEGV", "description": "Always show SIGSEGV signal detailes.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1424,6 +1502,7 @@ "name": "BOX64_SSE_FLUSHTO0", "description": "Behaviour of SSE Flush to 0 flags.", "category": "Compatibility", + "wine": true, "options": [ { "key": "0", @@ -1441,6 +1520,7 @@ "name": "BOX64_SSE42", "description": "Expose SSE4.2 capabilities.", "category": "Compatibility", + "wine": true, "options": [ { "key": "0", @@ -1458,6 +1538,7 @@ "name": "BOX64_SYNC_ROUNDING", "description": "Synchronize rounding mode between x86 and native.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1475,6 +1556,7 @@ "name": "BOX64_TRACE_COLOR", "description": "Enable or disable colored trace output.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1492,6 +1574,7 @@ "name": "BOX64_TRACE_EMM", "description": "Enable or disable EMM (i.e. MMX) trace output.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1509,6 +1592,7 @@ "name": "BOX64_TRACE_FILE", "description": "Send all log and trace to a file instead of `stdout`.", "category": "Debugging", + "wine": false, "options": [ { "key": "XXXX", @@ -1531,6 +1615,7 @@ "name": "BOX64_TRACE_INIT", "description": "Same as BOX64_TRACE but starts the trace immediately.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1548,6 +1633,7 @@ "name": "BOX64_TRACE_START", "description": "Start trace after N opcodes executed.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1570,6 +1656,7 @@ "name": "BOX64_TRACE_XMM", "description": "Enable or disable XMM (i.e. SSE) trace output.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1587,6 +1674,7 @@ "name": "BOX64_TRACE", "description": "Only available on box64 build with trace. Adds trace of all instructions executed, along with a register dump.", "category": "Debugging", + "wine": false, "options": [ { "key": "0", @@ -1614,6 +1702,7 @@ "name": "BOX64_UNITYPLAYER", "description": "Detect UnityPlayer and apply conservative settings.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1631,6 +1720,7 @@ "name": "BOX64_WRAP_EGL", "description": "Prefer wrapped libs for EGL and GLESv2.", "category": "Libraries", + "wine": false, "options": [ { "key": "0", @@ -1648,6 +1738,7 @@ "name": "BOX64_X11GLX", "description": "Force Xorg GLX extension to be present.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1665,6 +1756,7 @@ "name": "BOX64_X11SYNC", "description": "Force synchronized operation on X11 display.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1682,6 +1774,7 @@ "name": "BOX64_X11THREADS", "description": "Call XInitThreads when loading X11. This is mostly for old Loki games with the Loki_Compat library.", "category": "Compatibility", + "wine": false, "options": [ { "key": "0", @@ -1699,6 +1792,7 @@ "name": "BOX64_X87_NO80BITS", "description": "Behavoiur of x87 80bits long double.", "category": "Compatibility", + "wine": true, "options": [ { "key": "0", |