about summary refs log tree commit diff stats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/USAGE.md72
-rw-r--r--docs/box64.pod64
-rw-r--r--docs/gen/gen.py55
-rw-r--r--docs/gen/usage.json96
4 files changed, 201 insertions, 86 deletions
diff --git a/docs/USAGE.md b/docs/USAGE.md
index 7240a773..6fdd3c1c 100644
--- a/docs/USAGE.md
+++ b/docs/USAGE.md
@@ -4,9 +4,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:
@@ -21,7 +23,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**
 
@@ -173,7 +175,7 @@ Add --no-sandbox argument to the guest program.
 
 ### BOX64_AVX
 
-Expose AVX extension to CPUID and cpuinfo file. Default value is 2 on Arm64 because it's fully implemented in DynaRec, 0 otherwise.
+Expose AVX extension to CPUID and cpuinfo file. Default value is 2 on Arm64 because it's fully implemented in DynaRec, 0 otherwise. Availble in WowBox64.
 
  * 0: Do not expose AVX capabilities. 
  * 1: Expose AVX, BMI1, F16C and VAES extensions to CPUID and cpuinfo file. 
@@ -187,7 +189,7 @@ Path to the bash executable.
 
 ### BOX64_CPUTYPE
 
-Specify the CPU type to emulate.
+Specify the CPU type to emulate. Availble in WowBox64.
 
  * 0: Emulate a Intel CPU Model. [Default]
  * 1: Emulate a AMD CPU Model. 
@@ -208,7 +210,7 @@ Detect MonoBleedingEdge and apply conservative settings.
 
 ### BOX64_DYNAREC_DIV0
 
-Enable or disable the generation of division-by-zero exception.
+Enable or disable the generation of division-by-zero exception. Availble in WowBox64.
 
  * 0: Do not generate thr division-by-zero exception. [Default]
  * 1: Generate the division-by-zero exception. 
@@ -222,7 +224,7 @@ Enable or disable libtbb detection.
 
 ### BOX64_DYNAREC_X87DOUBLE
 
-Force the use of float/double for x87 emulation.
+Force the use of float/double for x87 emulation. Availble in WowBox64.
 
  * 0: Try to use float when possible for x87 emulation. [Default]
  * 1: Only use Double for x87 emulation. 
@@ -273,7 +275,7 @@ Behaviour when hooking malloc operators.
 
 ### BOX64_MAXCPU
 
-Maximum CPU cores exposed.
+Maximum CPU cores exposed. Availble in WowBox64.
 
  * 0: Use the actual number of CPU cores. [Default]
  * XXXX: Use XXXX CPU cores. 
@@ -320,14 +322,14 @@ Expose SHAEXT (a.k.a. SHA_NI) capabilities.
 
 ### BOX64_SSE_FLUSHTO0
 
-Behaviour of SSE Flush to 0 flags.
+Behaviour of SSE Flush to 0 flags. Availble in WowBox64.
 
  * 0: Just track the flag. [Default]
  * 1: Apply SSE Flush to 0 flag directly. 
 
 ### BOX64_SSE42
 
-Expose SSE4.2 capabilities.
+Expose SSE4.2 capabilities. Availble in WowBox64.
 
  * 0: Do not expose SSE4.2 capabilities. 
  * 1: Expose SSE4.2 capabilities. [Default]
@@ -369,7 +371,7 @@ Call XInitThreads when loading X11. This is mostly for old Loki games with the L
 
 ### BOX64_X87_NO80BITS
 
-Behavoiur of x87 80bits long double.
+Behavoiur of x87 80bits long double. Availble in WowBox64.
 
  * 0: Try to handle 80bits long double as precise as possible. [Default]
  * 1: Use 64bits double for x87. 
@@ -385,14 +387,14 @@ Enable or disable the logging of dlsym errors.
 
 ### BOX64_DUMP
 
-Dump elfloader debug information.
+Dump elfloader debug information. Availble in WowBox64.
 
  * 0: Do not dump elfloader debug information. [Default]
  * 1: Dump elfloader debug information. 
 
 ### BOX64_DYNAREC_DUMP
 
-Enable DynaRec dump.
+Enable DynaRec dump. Availble in WowBox64.
 
  * 0: Do not dump DynaRec blocks. [Default]
  * 1: Dump DynaRec blocks. 
@@ -400,7 +402,7 @@ Enable DynaRec dump.
 
 ### BOX64_DYNAREC_DUMP_RANGE
 
-Dump DynaRec blocks in the specified range.
+Dump DynaRec blocks in the specified range. Availble in WowBox64.
 
  * 0xXXXXXXXX-0xYYYYYYYY: Define the range where dynablock gets dumped (inclusive-exclusive). 
 
@@ -416,7 +418,7 @@ The GDBJIT debugging support, only available on build with `-DGDBJIT=ON`, enable
 
 ### BOX64_DYNAREC_LOG
 
-Disable or enable DynaRec logs.
+Disable or enable DynaRec logs. Availble in WowBox64.
 
  * 0: Disable DynaRec logs. [Default]
  * 1: Enable minimal DynaRec logs. 
@@ -425,7 +427,7 @@ Disable or enable DynaRec logs.
 
 ### BOX64_DYNAREC_MISSING
 
-Print missing opcodes.
+Print missing opcodes. Availble in WowBox64.
 
  * 0: Do not print the missing opcode. [Default]
  * 1: Print missing opcodes. 
@@ -440,7 +442,7 @@ Generate map file for Linux perf tool.
 
 ### BOX64_DYNAREC_TEST
 
-Enable DynaRec execution comparison with the interpreter, very slow, only for testing.
+Enable DynaRec execution comparison with the interpreter, very slow, only for testing. Availble in WowBox64.
 
  * 0: No comparison. [Default]
  * 1: Each opcode runs on interpreter and on Dynarec, regs and memory are compared and printed when they differ. 
@@ -470,7 +472,7 @@ Set the address where the program is loaded, only active for PIE guest programs.
 
 ### BOX64_LOG
 
-Enable or disable Box64 logs, default value is 0 if stdout is not terminal, 1 otherwise.
+Enable or disable Box64 logs, default value is 0 if stdout is not terminal, 1 otherwise. Availble in WowBox64.
 
  * 0: Disable Box64 logs. 
  * 1: Enable minimal Box64 logs. 
@@ -479,7 +481,7 @@ Enable or disable Box64 logs, default value is 0 if stdout is not terminal, 1 ot
 
 ### BOX64_NOBANNER
 
-Disable the Box64 banner.
+Disable the Box64 banner. Availble in WowBox64.
 
  * 0: Show the Box64 banner. 
  * 1: Do not show the Box64 banner. 
@@ -577,21 +579,21 @@ Only available on box64 build with trace. Adds trace of all instructions execute
 
 ### BOX64_DYNAREC
 
-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.
+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. Availble in WowBox64.
 
  * 0: Disable DynaRec. 
  * 1: Enable DynaRec. 
 
 ### BOX64_DYNAREC_ALIGNED_ATOMICS
 
-Generate aligned atomics only (only available on Arm64 for now).
+Generate aligned atomics only (only available on Arm64 for now). Availble in WowBox64.
 
  * 0: Generate unaligned atomics handling code. [Default]
  * 1: Generate aligned atomics only, which is faster and smaller code size, but will cause SIGBUS for LOCK prefixed opcodes operating on aligned data addresses. 
 
 ### BOX64_DYNAREC_BIGBLOCK
 
-Enable building bigger DynaRec code blocks for better performance.
+Enable building bigger DynaRec code blocks for better performance. Availble in WowBox64.
 
  * 0: Do not try to build block as big as possible, suitable for programs using lots of threads and JIT, like Unity. 
  * 1: Build Dynarec block as big as possible. 
@@ -600,15 +602,15 @@ Enable building bigger DynaRec code blocks for better performance.
 
 ### BOX64_DYNAREC_CALLRET
 
-Optimize CALL/RET opcodes.
+Optimize CALL/RET opcodes. Availble in WowBox64.
 
  * 0: Do not optimize CALL/RET, use jump table. [Default]
  * 1: Try to optimize CALL/RET, skipping the jump table when possible. 
- * 2: Try to optimize CALL/RET, skipping the jump table when possible, adding code to handle return to dirty/modified block. 
+ * 2: 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. 
 
 ### BOX64_DYNAREC_DF
 
-Enable or disable the use of deferred flags.
+Enable or disable the use of deferred flags. Availble in WowBox64.
 
  * 0: Disable the use of deferred flags. 
  * 1: Enable the use of deferred flags. [Default]
@@ -623,14 +625,14 @@ Allow continue running a block that is unprotected and potentially dirty.
 
 ### BOX64_DYNAREC_FASTNAN
 
-Enable or disable fast NaN handling.
+Enable or disable fast NaN handling. Availble in WowBox64.
 
  * 0: Precisely emulate the -NaN generation like on x86. 
  * 1: Do not do anything special with -NAN generation, faster. [Default]
 
 ### BOX64_DYNAREC_FASTROUND
 
-Enable or disable fast rounding.
+Enable or disable fast rounding. Availble in WowBox64.
 
  * 0: Generate float/double -> int rounding and use current rounding mode for float/double computation like on x86. 
  * 1: Do not do anything special with edge case rounding, faster. [Default]
@@ -638,7 +640,7 @@ Enable or disable fast rounding.
 
 ### BOX64_DYNAREC_FORWARD
 
-Define max allowed forward value when building block.
+Define max allowed forward value when building block. Availble in WowBox64.
 
  * 0: No forward value. When current block ends, do not try to go further even if there are previous forward jumps. 
  * 128: Allow up to 128 bytes of gap between end of the block and the next forward jump. [Default]
@@ -646,14 +648,14 @@ Define max allowed forward value when building block.
 
 ### BOX64_DYNAREC_NATIVEFLAGS
 
-Enable or disable the use of native flags.
+Enable or disable the use of native flags. Availble in WowBox64.
 
  * 0: Do not use native flags. 
  * 1: Use native flags when possible. [Default]
 
 ### BOX64_DYNAREC_PAUSE
 
-Enable x86 PAUSE emulation, may help the performance of spinlocks.
+Enable x86 PAUSE emulation, may help the performance of spinlocks. Availble in WowBox64.
 
  * 0: Ignore x86 PAUSE instruction. [Default]
  * 1: Use YIELD to emulate x86 PAUSE instruction. 
@@ -662,7 +664,7 @@ Enable x86 PAUSE emulation, may help the performance of spinlocks.
 
 ### BOX64_DYNAREC_SAFEFLAGS
 
-Behaviour of flags emulation on CALL/RET opcodes.
+Behaviour of flags emulation on CALL/RET opcodes. Availble in WowBox64.
 
  * 0: Treat CALL/RET as if it never needs any flags. 
  * 1: Most of RETs will need flags, most of CALLs will not. [Default]
@@ -670,7 +672,7 @@ Behaviour of flags emulation on CALL/RET opcodes.
 
 ### BOX64_DYNAREC_STRONGMEM
 
-Enable the emulation of x86 strong memory model.
+Enable the emulation of x86 strong memory model. Availble in WowBox64.
 
  * 0: Do not try anything special. [Default]
  * 1: Enable some memory barriers when writing to memory to emulate the x86 strong memory model in a limited way. 
@@ -686,14 +688,14 @@ Use volatile metadata parsed from PE files, only valid for 64bit Windows games.
 
 ### BOX64_DYNAREC_WAIT
 
-Wait or not for the building of a DynaRec code block to be ready.
+Wait or not for the building of a DynaRec code block to be ready. Availble in WowBox64.
 
  * 0: Do not wait and use interpreter instead, might speedup a bit on massive multithread or JIT programs. 
  * 1: Wait for a DynaRec code block to be ready. [Default]
 
 ### BOX64_DYNAREC_WEAKBARRIER
 
-Tweak the memory barriers to reduce the performance impact by strong memory emualtion.
+Tweak the memory barriers to reduce the performance impact by strong memory emualtion. Availble in WowBox64.
 
  * 0: Use regular safe barrier. 
  * 1: Use weak barriers to have more performance boost. [Default]
@@ -708,7 +710,7 @@ Force 32-bit compatible memory mappings on 64-bit programs that run 32-bit code
 
 ### BOX64_NODYNAREC
 
-Forbid dynablock creation in the address range specified, helpful for debugging behaviour difference between Dynarec and Interpreter.
+Forbid dynablock creation in the address range specified, helpful for debugging behaviour difference between Dynarec and Interpreter. Availble in WowBox64.
 
  * 0xXXXXXXXX-0xYYYYYYYY: Define the range where dynablock creation is forbidden (inclusive-exclusive). 
 
diff --git a/docs/box64.pod b/docs/box64.pod
index 444d5702..3d58ee10 100644
--- a/docs/box64.pod
+++ b/docs/box64.pod
@@ -75,7 +75,7 @@ Arguments to pass to the guest program, only valid if there is no existing argum
 
 =item B<BOX64_AVX> =I<0|1|2>
 
-Expose AVX extension to CPUID and cpuinfo file. Default value is 2 on Arm64 because it's fully implemented in DynaRec, 0 otherwise.
+Expose AVX extension to CPUID and cpuinfo file. Default value is 2 on Arm64 because it's fully implemented in DynaRec, 0 otherwise. Availble in WowBox64.
 
  * 0 : Do not expose AVX capabilities. 
  * 1 : Expose AVX, BMI1, F16C and VAES extensions to CPUID and cpuinfo file. 
@@ -107,7 +107,7 @@ Add -cef-disable-gpu-compositor argument to the guest program.
 
 =item B<BOX64_CPUTYPE> =I<0|1>
 
-Specify the CPU type to emulate.
+Specify the CPU type to emulate. Availble in WowBox64.
 
  * 0 : Emulate a Intel CPU Model. [Default]
  * 1 : Emulate a AMD CPU Model. 
@@ -131,7 +131,7 @@ Enable or disable the logging of dlsym errors.
 
 =item B<BOX64_DUMP> =I<0|1>
 
-Dump elfloader debug information.
+Dump elfloader debug information. Availble in WowBox64.
 
  * 0 : Do not dump elfloader debug information. [Default]
  * 1 : Dump elfloader debug information. 
@@ -139,7 +139,7 @@ Dump elfloader debug information.
 
 =item B<BOX64_DYNAREC> =I<0|1>
 
-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.
+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. Availble in WowBox64.
 
  * 0 : Disable DynaRec. 
  * 1 : Enable DynaRec. 
@@ -147,7 +147,7 @@ Enable/disable the Dynamic Recompiler (a.k.a DynaRec). This option defaults to 1
 
 =item B<BOX64_DYNAREC_ALIGNED_ATOMICS> =I<0|1>
 
-Generate aligned atomics only (only available on Arm64 for now).
+Generate aligned atomics only (only available on Arm64 for now). Availble in WowBox64.
 
  * 0 : Generate unaligned atomics handling code. [Default]
  * 1 : Generate aligned atomics only, which is faster and smaller code size, but will cause SIGBUS for LOCK prefixed opcodes operating on aligned data addresses. 
@@ -155,7 +155,7 @@ Generate aligned atomics only (only available on Arm64 for now).
 
 =item B<BOX64_DYNAREC_BIGBLOCK> =I<0|1|2|3>
 
-Enable building bigger DynaRec code blocks for better performance.
+Enable building bigger DynaRec code blocks for better performance. Availble in WowBox64.
 
  * 0 : Do not try to build block as big as possible, suitable for programs using lots of threads and JIT, like Unity. 
  * 1 : Build Dynarec block as big as possible. 
@@ -173,16 +173,16 @@ Detect MonoBleedingEdge and apply conservative settings.
 
 =item B<BOX64_DYNAREC_CALLRET> =I<0|1|2>
 
-Optimize CALL/RET opcodes.
+Optimize CALL/RET opcodes. Availble in WowBox64.
 
  * 0 : Do not optimize CALL/RET, use jump table. [Default]
  * 1 : Try to optimize CALL/RET, skipping the jump table when possible. 
- * 2 : Try to optimize CALL/RET, skipping the jump table when possible, adding code to handle return to dirty/modified block. 
+ * 2 : 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. 
 
 
 =item B<BOX64_DYNAREC_DF> =I<0|1>
 
-Enable or disable the use of deferred flags.
+Enable or disable the use of deferred flags. Availble in WowBox64.
 
  * 0 : Disable the use of deferred flags. 
  * 1 : Enable the use of deferred flags. [Default]
@@ -199,7 +199,7 @@ Allow continue running a block that is unprotected and potentially dirty.
 
 =item B<BOX64_DYNAREC_DIV0> =I<0|1>
 
-Enable or disable the generation of division-by-zero exception.
+Enable or disable the generation of division-by-zero exception. Availble in WowBox64.
 
  * 0 : Do not generate thr division-by-zero exception. [Default]
  * 1 : Generate the division-by-zero exception. 
@@ -207,7 +207,7 @@ Enable or disable the generation of division-by-zero exception.
 
 =item B<BOX64_DYNAREC_DUMP> =I<0|1|2>
 
-Enable DynaRec dump.
+Enable DynaRec dump. Availble in WowBox64.
 
  * 0 : Do not dump DynaRec blocks. [Default]
  * 1 : Dump DynaRec blocks. 
@@ -216,14 +216,14 @@ Enable DynaRec dump.
 
 =item B<BOX64_DYNAREC_DUMP_RANGE> =I<0xXXXXXXXX-0xYYYYYYYY>
 
-Dump DynaRec blocks in the specified range.
+Dump DynaRec blocks in the specified range. Availble in WowBox64.
 
  * 0xXXXXXXXX-0xYYYYYYYY : Define the range where dynablock gets dumped (inclusive-exclusive). 
 
 
 =item B<BOX64_DYNAREC_FASTNAN> =I<0|1>
 
-Enable or disable fast NaN handling.
+Enable or disable fast NaN handling. Availble in WowBox64.
 
  * 0 : Precisely emulate the -NaN generation like on x86. 
  * 1 : Do not do anything special with -NAN generation, faster. [Default]
@@ -231,7 +231,7 @@ Enable or disable fast NaN handling.
 
 =item B<BOX64_DYNAREC_FASTROUND> =I<0|1|2>
 
-Enable or disable fast rounding.
+Enable or disable fast rounding. Availble in WowBox64.
 
  * 0 : Generate float/double -> int rounding and use current rounding mode for float/double computation like on x86. 
  * 1 : Do not do anything special with edge case rounding, faster. [Default]
@@ -240,7 +240,7 @@ Enable or disable fast rounding.
 
 =item B<BOX64_DYNAREC_FORWARD> =I<0|128|XXXX>
 
-Define max allowed forward value when building block.
+Define max allowed forward value when building block. Availble in WowBox64.
 
  * 0 : No forward value. When current block ends, do not try to go further even if there are previous forward jumps. 
  * 128 : Allow up to 128 bytes of gap between end of the block and the next forward jump. [Default]
@@ -260,7 +260,7 @@ The GDBJIT debugging support, only available on build with `-DGDBJIT=ON`, enable
 
 =item B<BOX64_DYNAREC_LOG> =I<0|1|2|3>
 
-Disable or enable DynaRec logs.
+Disable or enable DynaRec logs. Availble in WowBox64.
 
  * 0 : Disable DynaRec logs. [Default]
  * 1 : Enable minimal DynaRec logs. 
@@ -270,7 +270,7 @@ Disable or enable DynaRec logs.
 
 =item B<BOX64_DYNAREC_MISSING> =I<0|1|2>
 
-Print missing opcodes.
+Print missing opcodes. Availble in WowBox64.
 
  * 0 : Do not print the missing opcode. [Default]
  * 1 : Print missing opcodes. 
@@ -279,7 +279,7 @@ Print missing opcodes.
 
 =item B<BOX64_DYNAREC_NATIVEFLAGS> =I<0|1>
 
-Enable or disable the use of native flags.
+Enable or disable the use of native flags. Availble in WowBox64.
 
  * 0 : Do not use native flags. 
  * 1 : Use native flags when possible. [Default]
@@ -287,7 +287,7 @@ Enable or disable the use of native flags.
 
 =item B<BOX64_DYNAREC_PAUSE> =I<0|1|2|3>
 
-Enable x86 PAUSE emulation, may help the performance of spinlocks.
+Enable x86 PAUSE emulation, may help the performance of spinlocks. Availble in WowBox64.
 
  * 0 : Ignore x86 PAUSE instruction. [Default]
  * 1 : Use YIELD to emulate x86 PAUSE instruction. 
@@ -305,7 +305,7 @@ Generate map file for Linux perf tool.
 
 =item B<BOX64_DYNAREC_SAFEFLAGS> =I<0|1|2>
 
-Behaviour of flags emulation on CALL/RET opcodes.
+Behaviour of flags emulation on CALL/RET opcodes. Availble in WowBox64.
 
  * 0 : Treat CALL/RET as if it never needs any flags. 
  * 1 : Most of RETs will need flags, most of CALLs will not. [Default]
@@ -314,7 +314,7 @@ Behaviour of flags emulation on CALL/RET opcodes.
 
 =item B<BOX64_DYNAREC_STRONGMEM> =I<0|1|2|3>
 
-Enable the emulation of x86 strong memory model.
+Enable the emulation of x86 strong memory model. Availble in WowBox64.
 
  * 0 : Do not try anything special. [Default]
  * 1 : Enable some memory barriers when writing to memory to emulate the x86 strong memory model in a limited way. 
@@ -332,7 +332,7 @@ Enable or disable libtbb detection.
 
 =item B<BOX64_DYNAREC_TEST> =I<0|1|0xXXXXXXXX-0xYYYYYYYY>
 
-Enable DynaRec execution comparison with the interpreter, very slow, only for testing.
+Enable DynaRec execution comparison with the interpreter, very slow, only for testing. Availble in WowBox64.
 
  * 0 : No comparison. [Default]
  * 1 : Each opcode runs on interpreter and on Dynarec, regs and memory are compared and printed when they differ. 
@@ -357,7 +357,7 @@ Use volatile metadata parsed from PE files, only valid for 64bit Windows games.
 
 =item B<BOX64_DYNAREC_WAIT> =I<0|1>
 
-Wait or not for the building of a DynaRec code block to be ready.
+Wait or not for the building of a DynaRec code block to be ready. Availble in WowBox64.
 
  * 0 : Do not wait and use interpreter instead, might speedup a bit on massive multithread or JIT programs. 
  * 1 : Wait for a DynaRec code block to be ready. [Default]
@@ -365,7 +365,7 @@ Wait or not for the building of a DynaRec code block to be ready.
 
 =item B<BOX64_DYNAREC_WEAKBARRIER> =I<0|1|2>
 
-Tweak the memory barriers to reduce the performance impact by strong memory emualtion.
+Tweak the memory barriers to reduce the performance impact by strong memory emualtion. Availble in WowBox64.
 
  * 0 : Use regular safe barrier. 
  * 1 : Use weak barriers to have more performance boost. [Default]
@@ -374,7 +374,7 @@ Tweak the memory barriers to reduce the performance impact by strong memory emua
 
 =item B<BOX64_DYNAREC_X87DOUBLE> =I<0|1|2>
 
-Force the use of float/double for x87 emulation.
+Force the use of float/double for x87 emulation. Availble in WowBox64.
 
  * 0 : Try to use float when possible for x87 emulation. [Default]
  * 1 : Only use Double for x87 emulation. 
@@ -501,7 +501,7 @@ Set the address where the program is loaded, only active for PIE guest programs.
 
 =item B<BOX64_LOG> =I<0|1|2|3>
 
-Enable or disable Box64 logs, default value is 0 if stdout is not terminal, 1 otherwise.
+Enable or disable Box64 logs, default value is 0 if stdout is not terminal, 1 otherwise. Availble in WowBox64.
 
  * 0 : Disable Box64 logs. 
  * 1 : Enable minimal Box64 logs. 
@@ -520,7 +520,7 @@ Behaviour when hooking malloc operators.
 
 =item B<BOX64_MAXCPU> =I<0|XXXX>
 
-Maximum CPU cores exposed.
+Maximum CPU cores exposed. Availble in WowBox64.
 
  * 0 : Use the actual number of CPU cores. [Default]
  * XXXX : Use XXXX CPU cores. 
@@ -536,7 +536,7 @@ Force 32-bit compatible memory mappings on 64-bit programs that run 32-bit code
 
 =item B<BOX64_NOBANNER> =I<0|1>
 
-Disable the Box64 banner.
+Disable the Box64 banner. Availble in WowBox64.
 
  * 0 : Show the Box64 banner. 
  * 1 : Do not show the Box64 banner. 
@@ -544,7 +544,7 @@ Disable the Box64 banner.
 
 =item B<BOX64_NODYNAREC> =I<0xXXXXXXXX-0xYYYYYYYY>
 
-Forbid dynablock creation in the address range specified, helpful for debugging behaviour difference between Dynarec and Interpreter.
+Forbid dynablock creation in the address range specified, helpful for debugging behaviour difference between Dynarec and Interpreter. Availble in WowBox64.
 
  * 0xXXXXXXXX-0xYYYYYYYY : Define the range where dynablock creation is forbidden (inclusive-exclusive). 
 
@@ -694,7 +694,7 @@ Always show SIGSEGV signal detailes.
 
 =item B<BOX64_SSE_FLUSHTO0> =I<0|1>
 
-Behaviour of SSE Flush to 0 flags.
+Behaviour of SSE Flush to 0 flags. Availble in WowBox64.
 
  * 0 : Just track the flag. [Default]
  * 1 : Apply SSE Flush to 0 flag directly. 
@@ -702,7 +702,7 @@ Behaviour of SSE Flush to 0 flags.
 
 =item B<BOX64_SSE42> =I<0|1>
 
-Expose SSE4.2 capabilities.
+Expose SSE4.2 capabilities. Availble in WowBox64.
 
  * 0 : Do not expose SSE4.2 capabilities. 
  * 1 : Expose SSE4.2 capabilities. [Default]
@@ -818,7 +818,7 @@ Call XInitThreads when loading X11. This is mostly for old Loki games with the L
 
 =item B<BOX64_X87_NO80BITS> =I<0|1>
 
-Behavoiur of x87 80bits long double.
+Behavoiur of x87 80bits long double. Availble in WowBox64.
 
  * 0 : Try to handle 80bits long double as precise as possible. [Default]
  * 1 : Use 64bits double for x87. 
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",