about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-25 13:26:02 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-25 13:26:02 +0100
commit348bd64449843f70e08dd591c867973d83ea87eb (patch)
tree831a18b17437f0d3d29f4097a5b3487aea3b8b01 /src
parentb36eca9792b55ccf038407470e480edc80daf543 (diff)
downloadbox64-348bd64449843f70e08dd591c867973d83ea87eb.tar.gz
box64-348bd64449843f70e08dd591c867973d83ea87eb.zip
Added a bunch of X11 related wrapped libs
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h20
-rw-r--r--src/wrapped/generated/functions_list.txt29
-rw-r--r--src/wrapped/generated/wrapper.c58
-rw-r--r--src/wrapped/generated/wrapper.h29
-rw-r--r--src/wrapped/wrappedlibx11xcb.c19
-rw-r--r--src/wrapped/wrappedlibx11xcb_private.h6
-rwxr-xr-xsrc/wrapped/wrappedlibxcomposite.c19
-rwxr-xr-xsrc/wrapped/wrappedlibxcomposite_private.h16
-rwxr-xr-xsrc/wrapped/wrappedlibxcursor.c18
-rwxr-xr-xsrc/wrapped/wrappedlibxcursor_private.h66
-rwxr-xr-xsrc/wrapped/wrappedlibxdamage.c19
-rwxr-xr-xsrc/wrapped/wrappedlibxdamage_private.h12
-rwxr-xr-xsrc/wrapped/wrappedlibxfixes.c26
-rwxr-xr-xsrc/wrapped/wrappedlibxfixes_private.h42
-rwxr-xr-xsrc/wrapped/wrappedlibxmu.c24
-rwxr-xr-xsrc/wrapped/wrappedlibxmu_private.h133
-rwxr-xr-xsrc/wrapped/wrappedlibxpm.c23
-rwxr-xr-xsrc/wrapped/wrappedlibxpm_private.h69
-rwxr-xr-xsrc/wrapped/wrappedlibxss.c23
-rwxr-xr-xsrc/wrapped/wrappedlibxss_private.h15
-rwxr-xr-xsrc/wrapped/wrappedlibxt.c104
-rwxr-xr-xsrc/wrapped/wrappedlibxt_private.h444
-rwxr-xr-xsrc/wrapped/wrappedlibxtst.c107
-rwxr-xr-xsrc/wrapped/wrappedlibxtst_private.h33
24 files changed, 1344 insertions, 10 deletions
diff --git a/src/library_list.h b/src/library_list.h
index 10d7a401..7c37cd9b 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -34,15 +34,15 @@ GO("libXxf86vm.so.1", libxxf86vm)
 GO("libXinerama.so.1", xinerama)
 GO("libXrandr.so.2", libxrandr)
 GO("libXext.so.6", libxext)
-//GO("libXfixes.so.3", libxfixes)
-//GO("libXcursor.so.1", libxcursor)
+GO("libXfixes.so.3", libxfixes)
+GO("libXcursor.so.1", libxcursor)
 GO("libXrender.so.1", libxrender)
 GO("libXi.so.6", libxi)
-//GO("libXss.so.1", libxss)
-//GO("libXpm.so.4", libxpm)
+GO("libXss.so.1", libxss)
+GO("libXpm.so.4", libxpm)
 GO("libXau.so.6", libxau)
 GO("libXdmcp.so.6", libxdmcp)
-//GO("libX11-xcb.so.1", libx11xcb)
+GO("libX11-xcb.so.1", libx11xcb)
 GO("libxcb.so.1", libxcb)
 //GO("libxcb-xfixes.so.0", libxcbxfixes)
 //GO("libxcb-shape.so.0", libxcbshape)
@@ -54,11 +54,11 @@ GO("libxcb.so.1", libxcb)
 //GO("libxcb-dri2.so.0", libxcbdri2)
 //GO("libxcb-dri3.so.0", libxcbdri3)
 //GO("libxcb-present.so.0", libxcbpresent)
-//GO("libXtst.so.6", libxtst)
-//GO("libXt.so.6", libxt)
-//GO("libXcomposite.so.1", libxcomposite)
-//GO("libXdamage.so.1", libxdamage)
-//GO("libXmu.so.6", libxmu)
+GO("libXtst.so.6", libxtst)
+GO("libXt.so.6", libxt)
+GO("libXcomposite.so.1", libxcomposite)
+GO("libXdamage.so.1", libxdamage)
+GO("libXmu.so.6", libxmu)
 GO("libz.so.1", libz)
 GO("libopenal.so.1", openal)
 GO("libopenal.so.0", openal)
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 3fca489f..b7a2e4d5 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -198,6 +198,8 @@
 #() vFpuI
 #() vFpuu
 #() vFpup
+#() vFpLi
+#() vFpLL
 #() vFppi
 #() vFppu
 #() vFppL
@@ -290,6 +292,7 @@
 #() LFLpL
 #() LFpii
 #() LFpup
+#() LFpLi
 #() LFpLp
 #() LFppi
 #() LFppL
@@ -368,13 +371,17 @@
 #() vFdddd
 #() vFpiii
 #() vFpiip
+#() vFpiup
 #() vFpipp
+#() vFpuuu
 #() vFpupp
 #() vFpdii
 #() vFpddd
+#() vFpLLL
 #() vFppii
 #() vFppip
 #() vFppui
+#() vFppuu
 #() vFppup
 #() vFpppi
 #() vFpppu
@@ -415,6 +422,7 @@
 #() iFpipp
 #() iFpCCC
 #() iFpWWu
+#() iFpuiL
 #() iFpuip
 #() iFpuui
 #() iFpuuu
@@ -422,6 +430,7 @@
 #() iFpuLL
 #() iFpuLp
 #() iFpupV
+#() iFpLpi
 #() iFppii
 #() iFppiu
 #() iFppiL
@@ -578,6 +587,8 @@
 #() iFipppi
 #() iFipppp
 #() iFpiiii
+#() iFpiiiu
+#() iFpiiiL
 #() iFpiiip
 #() iFpiiuu
 #() iFpiipi
@@ -645,6 +656,7 @@
 #() pFppppi
 #() pFppppp
 #() vFEiiipp
+#() vFEpuipp
 #() vFEpLLpp
 #() vFiiiiii
 #() vFiiiuil
@@ -688,12 +700,15 @@
 #() vFuppppp
 #() vFffffff
 #() vFdddddd
+#() vFpiiuuu
 #() vFpipipV
 #() vFpipppi
 #() vFpdddii
 #() vFppiiii
+#() vFppiiip
 #() vFppiipi
 #() vFppupii
+#() vFpppiii
 #() vFpppppp
 #() iFEiippi
 #() iFEpilpV
@@ -711,6 +726,7 @@
 #() iFpipppp
 #() iFpupuui
 #() iFppiiuu
+#() iFppipiL
 #() iFppIppp
 #() iFppuiii
 #() iFppuiiL
@@ -728,6 +744,7 @@
 #() UFpippup
 #() lFipLipu
 #() lFipLipp
+#() LFpipipi
 #() LFSpLiip
 #() pFEpippp
 #() pFEpuipp
@@ -745,6 +762,7 @@
 #() pFpCuuup
 #() pFpuuuuu
 #() pFppiiii
+#() pFpppppu
 #() pFpppppp
 #() pFSpiiii
 #() vFiiiiiip
@@ -786,6 +804,7 @@
 #() vFpddiidd
 #() vFppiiipi
 #() vFpppiiii
+#() vFpppuuuu
 #() vFppppipi
 #() iFEpLiLpV
 #() iFEppLpIi
@@ -793,15 +812,19 @@
 #() iFEpppppp
 #() iFiiiiiip
 #() iFpiiuuiu
+#() iFpiuiipp
 #() iFpiupiii
 #() iFpuuiuui
 #() iFpupuuui
 #() iFpuppppp
+#() iFpLipipi
 #() iFppiiiip
 #() iFppiiuui
 #() iFppiipii
+#() iFppiipiL
 #() iFppipipi
 #() iFppipppp
+#() iFppuipiL
 #() iFpppiiii
 #() iFpppiiuu
 #() iFpppiipi
@@ -819,6 +842,7 @@
 #() pFpCuuwwp
 #() pFpCuuuuu
 #() pFppuuppp
+#() pFpppuupp
 #() pFppppuuu
 #() pFpppppuu
 #() pFppppppp
@@ -865,6 +889,7 @@
 #() pFpCuwwWWu
 #() pFpCuuuCup
 #() pFpppuuLLu
+#() pFpppppupp
 #() vFuiiiiiiii
 #() vFuiiiiiuip
 #() vFuiiiiiuup
@@ -880,6 +905,7 @@
 #() vFuffffffff
 #() vFffuuuufff
 #() vFddddddddd
+#() vFpipiuiipp
 #() vFpipppiipi
 #() vFppiiipiii
 #() vFpppppippp
@@ -898,6 +924,7 @@
 #() pFpiiiiuuuu
 #() pFpCuWCCuuu
 #() pFpuuwwWWww
+#() pFppiiiiiip
 #() pFppiiuuuLL
 #() pFppipppppp
 #() vFiiiiiiiiiu
@@ -947,6 +974,7 @@
 #() vFffffffffffff
 #() vFpipppiiiipii
 #() vFpippppiiiipi
+#() vFppiiuuuiupup
 #() iFEppppiiiiuui
 #() iFpipppppppppp
 #() iFpppllipppppp
@@ -967,6 +995,7 @@
 #() vFuddiiddiiddiip
 #() vFuuiiiiuuiiiiiii
 #() vFfffffffffffffff
+#() pFppppppppppppppp
 #() pFpppppppppppppppp
 #() vFppuiiiiipuiiiiiiii
 #() pFipppppppppppppppppppppp
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 838512f4..c793f52a 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -231,6 +231,8 @@ typedef void (*vFpui_t)(void*, uint32_t, int32_t);
 typedef void (*vFpuI_t)(void*, uint32_t, int64_t);
 typedef void (*vFpuu_t)(void*, uint32_t, uint32_t);
 typedef void (*vFpup_t)(void*, uint32_t, void*);
+typedef void (*vFpLi_t)(void*, uintptr_t, int32_t);
+typedef void (*vFpLL_t)(void*, uintptr_t, uintptr_t);
 typedef void (*vFppi_t)(void*, void*, int32_t);
 typedef void (*vFppu_t)(void*, void*, uint32_t);
 typedef void (*vFppL_t)(void*, void*, uintptr_t);
@@ -323,6 +325,7 @@ typedef uintptr_t (*LFLpu_t)(uintptr_t, void*, uint32_t);
 typedef uintptr_t (*LFLpL_t)(uintptr_t, void*, uintptr_t);
 typedef uintptr_t (*LFpii_t)(void*, int32_t, int32_t);
 typedef uintptr_t (*LFpup_t)(void*, uint32_t, void*);
+typedef uintptr_t (*LFpLi_t)(void*, uintptr_t, int32_t);
 typedef uintptr_t (*LFpLp_t)(void*, uintptr_t, void*);
 typedef uintptr_t (*LFppi_t)(void*, void*, int32_t);
 typedef uintptr_t (*LFppL_t)(void*, void*, uintptr_t);
@@ -401,13 +404,17 @@ typedef void (*vFffff_t)(float, float, float, float);
 typedef void (*vFdddd_t)(double, double, double, double);
 typedef void (*vFpiii_t)(void*, int32_t, int32_t, int32_t);
 typedef void (*vFpiip_t)(void*, int32_t, int32_t, void*);
+typedef void (*vFpiup_t)(void*, int32_t, uint32_t, void*);
 typedef void (*vFpipp_t)(void*, int32_t, void*, void*);
+typedef void (*vFpuuu_t)(void*, uint32_t, uint32_t, uint32_t);
 typedef void (*vFpupp_t)(void*, uint32_t, void*, void*);
 typedef void (*vFpdii_t)(void*, double, int32_t, int32_t);
 typedef void (*vFpddd_t)(void*, double, double, double);
+typedef void (*vFpLLL_t)(void*, uintptr_t, uintptr_t, uintptr_t);
 typedef void (*vFppii_t)(void*, void*, int32_t, int32_t);
 typedef void (*vFppip_t)(void*, void*, int32_t, void*);
 typedef void (*vFppui_t)(void*, void*, uint32_t, int32_t);
+typedef void (*vFppuu_t)(void*, void*, uint32_t, uint32_t);
 typedef void (*vFppup_t)(void*, void*, uint32_t, void*);
 typedef void (*vFpppi_t)(void*, void*, void*, int32_t);
 typedef void (*vFpppu_t)(void*, void*, void*, uint32_t);
@@ -448,6 +455,7 @@ typedef int32_t (*iFpipi_t)(void*, int32_t, void*, int32_t);
 typedef int32_t (*iFpipp_t)(void*, int32_t, void*, void*);
 typedef int32_t (*iFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
 typedef int32_t (*iFpWWu_t)(void*, uint16_t, uint16_t, uint32_t);
+typedef int32_t (*iFpuiL_t)(void*, uint32_t, int32_t, uintptr_t);
 typedef int32_t (*iFpuip_t)(void*, uint32_t, int32_t, void*);
 typedef int32_t (*iFpuui_t)(void*, uint32_t, uint32_t, int32_t);
 typedef int32_t (*iFpuuu_t)(void*, uint32_t, uint32_t, uint32_t);
@@ -455,6 +463,7 @@ typedef int32_t (*iFpuup_t)(void*, uint32_t, uint32_t, void*);
 typedef int32_t (*iFpuLL_t)(void*, uint32_t, uintptr_t, uintptr_t);
 typedef int32_t (*iFpuLp_t)(void*, uint32_t, uintptr_t, void*);
 typedef int32_t (*iFpupV_t)(void*, uint32_t, void*, void*);
+typedef int32_t (*iFpLpi_t)(void*, uintptr_t, void*, int32_t);
 typedef int32_t (*iFppii_t)(void*, void*, int32_t, int32_t);
 typedef int32_t (*iFppiu_t)(void*, void*, int32_t, uint32_t);
 typedef int32_t (*iFppiL_t)(void*, void*, int32_t, uintptr_t);
@@ -611,6 +620,8 @@ typedef int32_t (*iFipuip_t)(int32_t, void*, uint32_t, int32_t, void*);
 typedef int32_t (*iFipppi_t)(int32_t, void*, void*, void*, int32_t);
 typedef int32_t (*iFipppp_t)(int32_t, void*, void*, void*, void*);
 typedef int32_t (*iFpiiii_t)(void*, int32_t, int32_t, int32_t, int32_t);
+typedef int32_t (*iFpiiiu_t)(void*, int32_t, int32_t, int32_t, uint32_t);
+typedef int32_t (*iFpiiiL_t)(void*, int32_t, int32_t, int32_t, uintptr_t);
 typedef int32_t (*iFpiiip_t)(void*, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t);
 typedef int32_t (*iFpiipi_t)(void*, int32_t, int32_t, void*, int32_t);
@@ -678,6 +689,7 @@ typedef void* (*pFpppup_t)(void*, void*, void*, uint32_t, void*);
 typedef void* (*pFppppi_t)(void*, void*, void*, void*, int32_t);
 typedef void* (*pFppppp_t)(void*, void*, void*, void*, void*);
 typedef void (*vFEiiipp_t)(x64emu_t*, int32_t, int32_t, int32_t, void*, void*);
+typedef void (*vFEpuipp_t)(x64emu_t*, void*, uint32_t, int32_t, void*, void*);
 typedef void (*vFEpLLpp_t)(x64emu_t*, void*, uintptr_t, uintptr_t, void*, void*);
 typedef void (*vFiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFiiiuil_t)(int32_t, int32_t, int32_t, uint32_t, int32_t, intptr_t);
@@ -721,12 +733,15 @@ typedef void (*vFupupip_t)(uint32_t, void*, uint32_t, void*, int32_t, void*);
 typedef void (*vFuppppp_t)(uint32_t, void*, void*, void*, void*, void*);
 typedef void (*vFffffff_t)(float, float, float, float, float, float);
 typedef void (*vFdddddd_t)(double, double, double, double, double, double);
+typedef void (*vFpiiuuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFpipipV_t)(void*, int32_t, void*, int32_t, void*, void*);
 typedef void (*vFpipppi_t)(void*, int32_t, void*, void*, void*, int32_t);
 typedef void (*vFpdddii_t)(void*, double, double, double, int32_t, int32_t);
 typedef void (*vFppiiii_t)(void*, void*, int32_t, int32_t, int32_t, int32_t);
+typedef void (*vFppiiip_t)(void*, void*, int32_t, int32_t, int32_t, void*);
 typedef void (*vFppiipi_t)(void*, void*, int32_t, int32_t, void*, int32_t);
 typedef void (*vFppupii_t)(void*, void*, uint32_t, void*, int32_t, int32_t);
+typedef void (*vFpppiii_t)(void*, void*, void*, int32_t, int32_t, int32_t);
 typedef void (*vFpppppp_t)(void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFEiippi_t)(x64emu_t*, int32_t, int32_t, void*, void*, int32_t);
 typedef int32_t (*iFEpilpV_t)(x64emu_t*, void*, int32_t, intptr_t, void*, void*);
@@ -744,6 +759,7 @@ typedef int32_t (*iFpiippp_t)(void*, int32_t, int32_t, void*, void*, void*);
 typedef int32_t (*iFpipppp_t)(void*, int32_t, void*, void*, void*, void*);
 typedef int32_t (*iFpupuui_t)(void*, uint32_t, void*, uint32_t, uint32_t, int32_t);
 typedef int32_t (*iFppiiuu_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t);
+typedef int32_t (*iFppipiL_t)(void*, void*, int32_t, void*, int32_t, uintptr_t);
 typedef int32_t (*iFppIppp_t)(void*, void*, int64_t, void*, void*, void*);
 typedef int32_t (*iFppuiii_t)(void*, void*, uint32_t, int32_t, int32_t, int32_t);
 typedef int32_t (*iFppuiiL_t)(void*, void*, uint32_t, int32_t, int32_t, uintptr_t);
@@ -761,6 +777,7 @@ typedef uint32_t (*uFpippup_t)(void*, int32_t, void*, void*, uint32_t, void*);
 typedef uint64_t (*UFpippup_t)(void*, int32_t, void*, void*, uint32_t, void*);
 typedef intptr_t (*lFipLipu_t)(int32_t, void*, uintptr_t, int32_t, void*, uint32_t);
 typedef intptr_t (*lFipLipp_t)(int32_t, void*, uintptr_t, int32_t, void*, void*);
+typedef uintptr_t (*LFpipipi_t)(void*, int32_t, void*, int32_t, void*, int32_t);
 typedef uintptr_t (*LFSpLiip_t)(void*, void*, uintptr_t, int32_t, int32_t, void*);
 typedef void* (*pFEpippp_t)(x64emu_t*, void*, int32_t, void*, void*, void*);
 typedef void* (*pFEpuipp_t)(x64emu_t*, void*, uint32_t, int32_t, void*, void*);
@@ -778,6 +795,7 @@ typedef void* (*pFpCuuWW_t)(void*, uint8_t, uint32_t, uint32_t, uint16_t, uint16
 typedef void* (*pFpCuuup_t)(void*, uint8_t, uint32_t, uint32_t, uint32_t, void*);
 typedef void* (*pFpuuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFppiiii_t)(void*, void*, int32_t, int32_t, int32_t, int32_t);
+typedef void* (*pFpppppu_t)(void*, void*, void*, void*, void*, uint32_t);
 typedef void* (*pFpppppp_t)(void*, void*, void*, void*, void*, void*);
 typedef void* (*pFSpiiii_t)(void*, void*, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
@@ -819,6 +837,7 @@ typedef void (*vFpipipii_t)(void*, int32_t, void*, int32_t, void*, int32_t, int3
 typedef void (*vFpddiidd_t)(void*, double, double, int32_t, int32_t, double, double);
 typedef void (*vFppiiipi_t)(void*, void*, int32_t, int32_t, int32_t, void*, int32_t);
 typedef void (*vFpppiiii_t)(void*, void*, void*, int32_t, int32_t, int32_t, int32_t);
+typedef void (*vFpppuuuu_t)(void*, void*, void*, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFppppipi_t)(void*, void*, void*, void*, int32_t, void*, int32_t);
 typedef int32_t (*iFEpLiLpV_t)(x64emu_t*, void*, uintptr_t, int32_t, uintptr_t, void*, void*);
 typedef int32_t (*iFEppLpIi_t)(x64emu_t*, void*, void*, uintptr_t, void*, int64_t, int32_t);
@@ -826,15 +845,19 @@ typedef int32_t (*iFEpppiiu_t)(x64emu_t*, void*, void*, void*, int32_t, int32_t,
 typedef int32_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFpiiuuiu_t)(void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, uint32_t);
+typedef int32_t (*iFpiuiipp_t)(void*, int32_t, uint32_t, int32_t, int32_t, void*, void*);
 typedef int32_t (*iFpiupiii_t)(void*, int32_t, uint32_t, void*, int32_t, int32_t, int32_t);
 typedef int32_t (*iFpuuiuui_t)(void*, uint32_t, uint32_t, int32_t, uint32_t, uint32_t, int32_t);
 typedef int32_t (*iFpupuuui_t)(void*, uint32_t, void*, uint32_t, uint32_t, uint32_t, int32_t);
 typedef int32_t (*iFpuppppp_t)(void*, uint32_t, void*, void*, void*, void*, void*);
+typedef int32_t (*iFpLipipi_t)(void*, uintptr_t, int32_t, void*, int32_t, void*, int32_t);
 typedef int32_t (*iFppiiiip_t)(void*, void*, int32_t, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFppiiuui_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t);
 typedef int32_t (*iFppiipii_t)(void*, void*, int32_t, int32_t, void*, int32_t, int32_t);
+typedef int32_t (*iFppiipiL_t)(void*, void*, int32_t, int32_t, void*, int32_t, uintptr_t);
 typedef int32_t (*iFppipipi_t)(void*, void*, int32_t, void*, int32_t, void*, int32_t);
 typedef int32_t (*iFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*);
+typedef int32_t (*iFppuipiL_t)(void*, void*, uint32_t, int32_t, void*, int32_t, uintptr_t);
 typedef int32_t (*iFpppiiii_t)(void*, void*, void*, int32_t, int32_t, int32_t, int32_t);
 typedef int32_t (*iFpppiiuu_t)(void*, void*, void*, int32_t, int32_t, uint32_t, uint32_t);
 typedef int32_t (*iFpppiipi_t)(void*, void*, void*, int32_t, int32_t, void*, int32_t);
@@ -852,6 +875,7 @@ typedef void* (*pFpCuWCCC_t)(void*, uint8_t, uint32_t, uint16_t, uint8_t, uint8_
 typedef void* (*pFpCuuwwp_t)(void*, uint8_t, uint32_t, uint32_t, int16_t, int16_t, void*);
 typedef void* (*pFpCuuuuu_t)(void*, uint8_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFppuuppp_t)(void*, void*, uint32_t, uint32_t, void*, void*, void*);
+typedef void* (*pFpppuupp_t)(void*, void*, void*, uint32_t, uint32_t, void*, void*);
 typedef void* (*pFppppuuu_t)(void*, void*, void*, void*, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFpppppuu_t)(void*, void*, void*, void*, void*, uint32_t, uint32_t);
 typedef void* (*pFppppppp_t)(void*, void*, void*, void*, void*, void*, void*);
@@ -898,6 +922,7 @@ typedef void* (*pFuupupipp_t)(uint32_t, uint32_t, void*, uint32_t, void*, int32_
 typedef void* (*pFpCuwwWWu_t)(void*, uint8_t, uint32_t, int16_t, int16_t, uint16_t, uint16_t, uint32_t);
 typedef void* (*pFpCuuuCup_t)(void*, uint8_t, uint32_t, uint32_t, uint32_t, uint8_t, uint32_t, void*);
 typedef void* (*pFpppuuLLu_t)(void*, void*, void*, uint32_t, uint32_t, uintptr_t, uintptr_t, uint32_t);
+typedef void* (*pFpppppupp_t)(void*, void*, void*, void*, void*, uint32_t, void*, void*);
 typedef void (*vFuiiiiiiii_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFuiiiiiuip_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t, void*);
 typedef void (*vFuiiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
@@ -913,6 +938,7 @@ typedef void (*vFuupiuiuuf_t)(uint32_t, uint32_t, void*, int32_t, uint32_t, int3
 typedef void (*vFuffffffff_t)(uint32_t, float, float, float, float, float, float, float, float);
 typedef void (*vFffuuuufff_t)(float, float, uint32_t, uint32_t, uint32_t, uint32_t, float, float, float);
 typedef void (*vFddddddddd_t)(double, double, double, double, double, double, double, double, double);
+typedef void (*vFpipiuiipp_t)(void*, int32_t, void*, int32_t, uint32_t, int32_t, int32_t, void*, void*);
 typedef void (*vFpipppiipi_t)(void*, int32_t, void*, void*, void*, int32_t, int32_t, void*, int32_t);
 typedef void (*vFppiiipiii_t)(void*, void*, int32_t, int32_t, int32_t, void*, int32_t, int32_t, int32_t);
 typedef void (*vFpppppippp_t)(void*, void*, void*, void*, void*, int32_t, void*, void*, void*);
@@ -931,6 +957,7 @@ typedef void* (*pFEppuippuu_t)(x64emu_t*, void*, void*, uint32_t, int32_t, void*
 typedef void* (*pFpiiiiuuuu_t)(void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFpCuWCCuuu_t)(void*, uint8_t, uint32_t, uint16_t, uint8_t, uint8_t, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFpuuwwWWww_t)(void*, uint32_t, uint32_t, int16_t, int16_t, uint16_t, uint16_t, int16_t, int16_t);
+typedef void* (*pFppiiiiiip_t)(void*, void*, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef void* (*pFppiiuuuLL_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uintptr_t, uintptr_t);
 typedef void* (*pFppipppppp_t)(void*, void*, int32_t, void*, void*, void*, void*, void*, void*);
 typedef void (*vFiiiiiiiiiu_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t);
@@ -980,6 +1007,7 @@ typedef void (*vFuuuuuuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_
 typedef void (*vFffffffffffff_t)(float, float, float, float, float, float, float, float, float, float, float, float);
 typedef void (*vFpipppiiiipii_t)(void*, int32_t, void*, void*, void*, int32_t, int32_t, int32_t, int32_t, void*, int32_t, int32_t);
 typedef void (*vFpippppiiiipi_t)(void*, int32_t, void*, void*, void*, void*, int32_t, int32_t, int32_t, int32_t, void*, int32_t);
+typedef void (*vFppiiuuuiupup_t)(void*, void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, int32_t, uint32_t, void*, uint32_t, void*);
 typedef int32_t (*iFEppppiiiiuui_t)(x64emu_t*, void*, void*, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t);
 typedef int32_t (*iFpipppppppppp_t)(void*, int32_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFpppllipppppp_t)(void*, void*, void*, intptr_t, intptr_t, int32_t, void*, void*, void*, void*, void*, void*);
@@ -1000,6 +1028,7 @@ typedef void (*vFuffiiffiiffiip_t)(uint32_t, float, float, int32_t, int32_t, flo
 typedef void (*vFuddiiddiiddiip_t)(uint32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, double, double, int32_t, int32_t, void*);
 typedef void (*vFuuiiiiuuiiiiiii_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFfffffffffffffff_t)(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float);
+typedef void* (*pFppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFpppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFppuiiiiipuiiiiiiii_t)(void*, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void* (*pFipppppppppppppppppppppp_t)(int32_t, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
@@ -1216,6 +1245,8 @@ void vFpui(x64emu_t *emu, uintptr_t fcn) { vFpui_t fn = (vFpui_t)fcn; fn((void*)
 void vFpuI(x64emu_t *emu, uintptr_t fcn) { vFpuI_t fn = (vFpuI_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (int64_t)R_RDX); }
 void vFpuu(x64emu_t *emu, uintptr_t fcn) { vFpuu_t fn = (vFpuu_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); }
 void vFpup(x64emu_t *emu, uintptr_t fcn) { vFpup_t fn = (vFpup_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
+void vFpLi(x64emu_t *emu, uintptr_t fcn) { vFpLi_t fn = (vFpLi_t)fcn; fn((void*)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX); }
+void vFpLL(x64emu_t *emu, uintptr_t fcn) { vFpLL_t fn = (vFpLL_t)fcn; fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX); }
 void vFppi(x64emu_t *emu, uintptr_t fcn) { vFppi_t fn = (vFppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void vFppu(x64emu_t *emu, uintptr_t fcn) { vFppu_t fn = (vFppu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); }
 void vFppL(x64emu_t *emu, uintptr_t fcn) { vFppL_t fn = (vFppL_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
@@ -1308,6 +1339,7 @@ void LFLpu(x64emu_t *emu, uintptr_t fcn) { LFLpu_t fn = (LFLpu_t)fcn; R_RAX=(uin
 void LFLpL(x64emu_t *emu, uintptr_t fcn) { LFLpL_t fn = (LFLpL_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
 void LFpii(x64emu_t *emu, uintptr_t fcn) { LFpii_t fn = (LFpii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); }
 void LFpup(x64emu_t *emu, uintptr_t fcn) { LFpup_t fn = (LFpup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
+void LFpLi(x64emu_t *emu, uintptr_t fcn) { LFpLi_t fn = (LFpLi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX); }
 void LFpLp(x64emu_t *emu, uintptr_t fcn) { LFpLp_t fn = (LFpLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX); }
 void LFppi(x64emu_t *emu, uintptr_t fcn) { LFppi_t fn = (LFppi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void LFppL(x64emu_t *emu, uintptr_t fcn) { LFppL_t fn = (LFppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
@@ -1386,13 +1418,17 @@ void vFffff(x64emu_t *emu, uintptr_t fcn) { vFffff_t fn = (vFffff_t)fcn; fn(emu-
 void vFdddd(x64emu_t *emu, uintptr_t fcn) { vFdddd_t fn = (vFdddd_t)fcn; fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0]); }
 void vFpiii(x64emu_t *emu, uintptr_t fcn) { vFpiii_t fn = (vFpiii_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void vFpiip(x64emu_t *emu, uintptr_t fcn) { vFpiip_t fn = (vFpiip_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
+void vFpiup(x64emu_t *emu, uintptr_t fcn) { vFpiup_t fn = (vFpiup_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
 void vFpipp(x64emu_t *emu, uintptr_t fcn) { vFpipp_t fn = (vFpipp_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
+void vFpuuu(x64emu_t *emu, uintptr_t fcn) { vFpuuu_t fn = (vFpuuu_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
 void vFpupp(x64emu_t *emu, uintptr_t fcn) { vFpupp_t fn = (vFpupp_t)fcn; fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void vFpdii(x64emu_t *emu, uintptr_t fcn) { vFpdii_t fn = (vFpdii_t)fcn; fn((void*)R_RDI, emu->xmm[0].d[0], (int32_t)R_RSI, (int32_t)R_RDX); }
 void vFpddd(x64emu_t *emu, uintptr_t fcn) { vFpddd_t fn = (vFpddd_t)fcn; fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0]); }
+void vFpLLL(x64emu_t *emu, uintptr_t fcn) { vFpLLL_t fn = (vFpLLL_t)fcn; fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX); }
 void vFppii(x64emu_t *emu, uintptr_t fcn) { vFppii_t fn = (vFppii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void vFppip(x64emu_t *emu, uintptr_t fcn) { vFppip_t fn = (vFppip_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void vFppui(x64emu_t *emu, uintptr_t fcn) { vFppui_t fn = (vFppui_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX); }
+void vFppuu(x64emu_t *emu, uintptr_t fcn) { vFppuu_t fn = (vFppuu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
 void vFppup(x64emu_t *emu, uintptr_t fcn) { vFppup_t fn = (vFppup_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX); }
 void vFpppi(x64emu_t *emu, uintptr_t fcn) { vFpppi_t fn = (vFpppi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
 void vFpppu(x64emu_t *emu, uintptr_t fcn) { vFpppu_t fn = (vFpppu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); }
@@ -1433,6 +1469,7 @@ void iFpipi(x64emu_t *emu, uintptr_t fcn) { iFpipi_t fn = (iFpipi_t)fcn; R_RAX=f
 void iFpipp(x64emu_t *emu, uintptr_t fcn) { iFpipp_t fn = (iFpipp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFpCCC(x64emu_t *emu, uintptr_t fcn) { iFpCCC_t fn = (iFpCCC_t)fcn; R_RAX=fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX); }
 void iFpWWu(x64emu_t *emu, uintptr_t fcn) { iFpWWu_t fn = (iFpWWu_t)fcn; R_RAX=fn((void*)R_RDI, (uint16_t)R_RSI, (uint16_t)R_RDX, (uint32_t)R_RCX); }
+void iFpuiL(x64emu_t *emu, uintptr_t fcn) { iFpuiL_t fn = (iFpuiL_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (uintptr_t)R_RCX); }
 void iFpuip(x64emu_t *emu, uintptr_t fcn) { iFpuip_t fn = (iFpuip_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void iFpuui(x64emu_t *emu, uintptr_t fcn) { iFpuui_t fn = (iFpuui_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX); }
 void iFpuuu(x64emu_t *emu, uintptr_t fcn) { iFpuuu_t fn = (iFpuuu_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX); }
@@ -1440,6 +1477,7 @@ void iFpuup(x64emu_t *emu, uintptr_t fcn) { iFpuup_t fn = (iFpuup_t)fcn; R_RAX=f
 void iFpuLL(x64emu_t *emu, uintptr_t fcn) { iFpuLL_t fn = (iFpuLL_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX); }
 void iFpuLp(x64emu_t *emu, uintptr_t fcn) { iFpuLp_t fn = (iFpuLp_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); }
 void iFpupV(x64emu_t *emu, uintptr_t fcn) { iFpupV_t fn = (iFpupV_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
+void iFpLpi(x64emu_t *emu, uintptr_t fcn) { iFpLpi_t fn = (iFpLpi_t)fcn; R_RAX=fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
 void iFppii(x64emu_t *emu, uintptr_t fcn) { iFppii_t fn = (iFppii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); }
 void iFppiu(x64emu_t *emu, uintptr_t fcn) { iFppiu_t fn = (iFppiu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX); }
 void iFppiL(x64emu_t *emu, uintptr_t fcn) { iFppiL_t fn = (iFppiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uintptr_t)R_RCX); }
@@ -1596,6 +1634,8 @@ void iFipuip(x64emu_t *emu, uintptr_t fcn) { iFipuip_t fn = (iFipuip_t)fcn; R_RA
 void iFipppi(x64emu_t *emu, uintptr_t fcn) { iFipppi_t fn = (iFipppi_t)fcn; R_RAX=fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void iFipppp(x64emu_t *emu, uintptr_t fcn) { iFipppp_t fn = (iFipppp_t)fcn; R_RAX=fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFpiiii(x64emu_t *emu, uintptr_t fcn) { iFpiiii_t fn = (iFpiiii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
+void iFpiiiu(x64emu_t *emu, uintptr_t fcn) { iFpiiiu_t fn = (iFpiiiu_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8); }
+void iFpiiiL(x64emu_t *emu, uintptr_t fcn) { iFpiiiL_t fn = (iFpiiiL_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uintptr_t)R_R8); }
 void iFpiiip(x64emu_t *emu, uintptr_t fcn) { iFpiiip_t fn = (iFpiiip_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void iFpiiuu(x64emu_t *emu, uintptr_t fcn) { iFpiiuu_t fn = (iFpiiuu_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
 void iFpiipi(x64emu_t *emu, uintptr_t fcn) { iFpiipi_t fn = (iFpiipi_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
@@ -1663,6 +1703,7 @@ void pFpppup(x64emu_t *emu, uintptr_t fcn) { pFpppup_t fn = (pFpppup_t)fcn; R_RA
 void pFppppi(x64emu_t *emu, uintptr_t fcn) { pFppppi_t fn = (pFppppi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void pFppppp(x64emu_t *emu, uintptr_t fcn) { pFppppp_t fn = (pFppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void vFEiiipp(x64emu_t *emu, uintptr_t fcn) { vFEiiipp_t fn = (vFEiiipp_t)fcn; fn(emu, (int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
+void vFEpuipp(x64emu_t *emu, uintptr_t fcn) { vFEpuipp_t fn = (vFEpuipp_t)fcn; fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void vFEpLLpp(x64emu_t *emu, uintptr_t fcn) { vFEpLLpp_t fn = (vFEpLLpp_t)fcn; fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void vFiiiiii(x64emu_t *emu, uintptr_t fcn) { vFiiiiii_t fn = (vFiiiiii_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void vFiiiuil(x64emu_t *emu, uintptr_t fcn) { vFiiiuil_t fn = (vFiiiuil_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (intptr_t)R_R9); }
@@ -1706,12 +1747,15 @@ void vFupupip(x64emu_t *emu, uintptr_t fcn) { vFupupip_t fn = (vFupupip_t)fcn; f
 void vFuppppp(x64emu_t *emu, uintptr_t fcn) { vFuppppp_t fn = (vFuppppp_t)fcn; fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void vFffffff(x64emu_t *emu, uintptr_t fcn) { vFffffff_t fn = (vFffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0]); }
 void vFdddddd(x64emu_t *emu, uintptr_t fcn) { vFdddddd_t fn = (vFdddddd_t)fcn; fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0]); }
+void vFpiiuuu(x64emu_t *emu, uintptr_t fcn) { vFpiiuuu_t fn = (vFpiiuuu_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
 void vFpipipV(x64emu_t *emu, uintptr_t fcn) { vFpipipV_t fn = (vFpipipV_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)(R_RSP + 8)); }
 void vFpipppi(x64emu_t *emu, uintptr_t fcn) { vFpipppi_t fn = (vFpipppi_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void vFpdddii(x64emu_t *emu, uintptr_t fcn) { vFpdddii_t fn = (vFpdddii_t)fcn; fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], (int32_t)R_RSI, (int32_t)R_RDX); }
 void vFppiiii(x64emu_t *emu, uintptr_t fcn) { vFppiiii_t fn = (vFppiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
+void vFppiiip(x64emu_t *emu, uintptr_t fcn) { vFppiiip_t fn = (vFppiiip_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void vFppiipi(x64emu_t *emu, uintptr_t fcn) { vFppiipi_t fn = (vFppiipi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void vFppupii(x64emu_t *emu, uintptr_t fcn) { vFppupii_t fn = (vFppupii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
+void vFpppiii(x64emu_t *emu, uintptr_t fcn) { vFpppiii_t fn = (vFpppiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void vFpppppp(x64emu_t *emu, uintptr_t fcn) { vFpppppp_t fn = (vFpppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFEiippi(x64emu_t *emu, uintptr_t fcn) { iFEiippi_t fn = (iFEiippi_t)fcn; R_RAX=fn(emu, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void iFEpilpV(x64emu_t *emu, uintptr_t fcn) { iFEpilpV_t fn = (iFEpilpV_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (int32_t)R_RSI, (intptr_t)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8)); }
@@ -1729,6 +1773,7 @@ void iFpiippp(x64emu_t *emu, uintptr_t fcn) { iFpiippp_t fn = (iFpiippp_t)fcn; R
 void iFpipppp(x64emu_t *emu, uintptr_t fcn) { iFpipppp_t fn = (iFpipppp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFpupuui(x64emu_t *emu, uintptr_t fcn) { iFpupuui_t fn = (iFpupuui_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9); }
 void iFppiiuu(x64emu_t *emu, uintptr_t fcn) { iFppiiuu_t fn = (iFppiiuu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
+void iFppipiL(x64emu_t *emu, uintptr_t fcn) { iFppipiL_t fn = (iFppipiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (uintptr_t)R_R9); }
 void iFppIppp(x64emu_t *emu, uintptr_t fcn) { iFppIppp_t fn = (iFppIppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFppuiii(x64emu_t *emu, uintptr_t fcn) { iFppuiii_t fn = (iFppuiii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void iFppuiiL(x64emu_t *emu, uintptr_t fcn) { iFppuiiL_t fn = (iFppuiiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uintptr_t)R_R9); }
@@ -1746,6 +1791,7 @@ void uFpippup(x64emu_t *emu, uintptr_t fcn) { uFpippup_t fn = (uFpippup_t)fcn; R
 void UFpippup(x64emu_t *emu, uintptr_t fcn) { UFpippup_t fn = (UFpippup_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9); }
 void lFipLipu(x64emu_t *emu, uintptr_t fcn) { lFipLipu_t fn = (lFipLipu_t)fcn; R_RAX=(intptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9); }
 void lFipLipp(x64emu_t *emu, uintptr_t fcn) { lFipLipp_t fn = (lFipLipp_t)fcn; R_RAX=(intptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
+void LFpipipi(x64emu_t *emu, uintptr_t fcn) { LFpipipi_t fn = (LFpipipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void LFSpLiip(x64emu_t *emu, uintptr_t fcn) { LFSpLiip_t fn = (LFSpLiip_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void pFEpippp(x64emu_t *emu, uintptr_t fcn) { pFEpippp_t fn = (pFEpippp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFEpuipp(x64emu_t *emu, uintptr_t fcn) { pFEpuipp_t fn = (pFEpuipp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
@@ -1763,6 +1809,7 @@ void pFpCuuWW(x64emu_t *emu, uintptr_t fcn) { pFpCuuWW_t fn = (pFpCuuWW_t)fcn; R
 void pFpCuuup(x64emu_t *emu, uintptr_t fcn) { pFpCuuup_t fn = (pFpCuuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); }
 void pFpuuuuu(x64emu_t *emu, uintptr_t fcn) { pFpuuuuu_t fn = (pFpuuuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
 void pFppiiii(x64emu_t *emu, uintptr_t fcn) { pFppiiii_t fn = (pFppiiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
+void pFpppppu(x64emu_t *emu, uintptr_t fcn) { pFpppppu_t fn = (pFpppppu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9); }
 void pFpppppp(x64emu_t *emu, uintptr_t fcn) { pFpppppp_t fn = (pFpppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void pFSpiiii(x64emu_t *emu, uintptr_t fcn) { pFSpiiii_t fn = (pFSpiiii_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void vFiiiiiip(x64emu_t *emu, uintptr_t fcn) { vFiiiiiip_t fn = (vFiiiiiip_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
@@ -1804,6 +1851,7 @@ void vFpipipii(x64emu_t *emu, uintptr_t fcn) { vFpipipii_t fn = (vFpipipii_t)fcn
 void vFpddiidd(x64emu_t *emu, uintptr_t fcn) { vFpddiidd_t fn = (vFpddiidd_t)fcn; fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].d[0], emu->xmm[3].d[0]); }
 void vFppiiipi(x64emu_t *emu, uintptr_t fcn) { vFppiiipi_t fn = (vFppiiipi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
 void vFpppiiii(x64emu_t *emu, uintptr_t fcn) { vFpppiiii_t fn = (vFpppiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
+void vFpppuuuu(x64emu_t *emu, uintptr_t fcn) { vFpppuuuu_t fn = (vFpppuuuu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
 void vFppppipi(x64emu_t *emu, uintptr_t fcn) { vFppppipi_t fn = (vFppppipi_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFEpLiLpV(x64emu_t *emu, uintptr_t fcn) { iFEpLiLpV_t fn = (iFEpLiLpV_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (void*)(R_RSP + 8)); }
 void iFEppLpIi(x64emu_t *emu, uintptr_t fcn) { iFEppLpIi_t fn = (iFEppLpIi_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int32_t)R_R9); }
@@ -1811,15 +1859,19 @@ void iFEpppiiu(x64emu_t *emu, uintptr_t fcn) { iFEpppiiu_t fn = (iFEpppiiu_t)fcn
 void iFEpppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiip_t fn = (iFiiiiiip_t)fcn; R_RAX=fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
 void iFpiiuuiu(x64emu_t *emu, uintptr_t fcn) { iFpiiuuiu_t fn = (iFpiiuuiu_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
+void iFpiuiipp(x64emu_t *emu, uintptr_t fcn) { iFpiuiipp_t fn = (iFpiuiipp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void iFpiupiii(x64emu_t *emu, uintptr_t fcn) { iFpiupiii_t fn = (iFpiupiii_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFpuuiuui(x64emu_t *emu, uintptr_t fcn) { iFpuuiuui_t fn = (iFpuuiuui_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFpupuuui(x64emu_t *emu, uintptr_t fcn) { iFpupuuui_t fn = (iFpupuuui_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFpuppppp(x64emu_t *emu, uintptr_t fcn) { iFpuppppp_t fn = (iFpuppppp_t)fcn; R_RAX=fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void iFpLipipi(x64emu_t *emu, uintptr_t fcn) { iFpLipipi_t fn = (iFpLipipi_t)fcn; R_RAX=fn((void*)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFppiiiip(x64emu_t *emu, uintptr_t fcn) { iFppiiiip_t fn = (iFppiiiip_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
 void iFppiiuui(x64emu_t *emu, uintptr_t fcn) { iFppiiuui_t fn = (iFppiiuui_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFppiipii(x64emu_t *emu, uintptr_t fcn) { iFppiipii_t fn = (iFppiipii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
+void iFppiipiL(x64emu_t *emu, uintptr_t fcn) { iFppiipiL_t fn = (iFppiipiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(uintptr_t*)(R_RSP + 8)); }
 void iFppipipi(x64emu_t *emu, uintptr_t fcn) { iFppipipi_t fn = (iFppipipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFppipppp(x64emu_t *emu, uintptr_t fcn) { iFppipppp_t fn = (iFppipppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void iFppuipiL(x64emu_t *emu, uintptr_t fcn) { iFppuipiL_t fn = (iFppuipiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(uintptr_t*)(R_RSP + 8)); }
 void iFpppiiii(x64emu_t *emu, uintptr_t fcn) { iFpppiiii_t fn = (iFpppiiii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void iFpppiiuu(x64emu_t *emu, uintptr_t fcn) { iFpppiiuu_t fn = (iFpppiiuu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
 void iFpppiipi(x64emu_t *emu, uintptr_t fcn) { iFpppiipi_t fn = (iFpppiipi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8)); }
@@ -1837,6 +1889,7 @@ void pFpCuWCCC(x64emu_t *emu, uintptr_t fcn) { pFpCuWCCC_t fn = (pFpCuWCCC_t)fcn
 void pFpCuuwwp(x64emu_t *emu, uintptr_t fcn) { pFpCuuwwp_t fn = (pFpCuuwwp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(void**)(R_RSP + 8)); }
 void pFpCuuuuu(x64emu_t *emu, uintptr_t fcn) { pFpCuuuuu_t fn = (pFpCuuuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
 void pFppuuppp(x64emu_t *emu, uintptr_t fcn) { pFppuuppp_t fn = (pFppuuppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void pFpppuupp(x64emu_t *emu, uintptr_t fcn) { pFpppuupp_t fn = (pFpppuupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFppppuuu(x64emu_t *emu, uintptr_t fcn) { pFppppuuu_t fn = (pFppppuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
 void pFpppppuu(x64emu_t *emu, uintptr_t fcn) { pFpppppuu_t fn = (pFpppppuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
 void pFppppppp(x64emu_t *emu, uintptr_t fcn) { pFppppppp_t fn = (pFppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
@@ -1883,6 +1936,7 @@ void pFuupupipp(x64emu_t *emu, uintptr_t fcn) { pFuupupipp_t fn = (pFuupupipp_t)
 void pFpCuwwWWu(x64emu_t *emu, uintptr_t fcn) { pFpCuwwWWu_t fn = (pFpCuwwWWu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (int16_t)R_RCX, (int16_t)R_R8, (uint16_t)R_R9, *(uint16_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
 void pFpCuuuCup(x64emu_t *emu, uintptr_t fcn) { pFpCuuuCup_t fn = (pFpCuuuCup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint8_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void pFpppuuLLu(x64emu_t *emu, uintptr_t fcn) { pFpppuuLLu_t fn = (pFpppuuLLu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uintptr_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
+void pFpppppupp(x64emu_t *emu, uintptr_t fcn) { pFpppppupp_t fn = (pFpppppupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFuiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiii_t fn = (vFuiiiiiiii_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
 void vFuiiiiiuip(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiuip_t fn = (vFuiiiiiuip_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void vFuiiiiiuup(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiuup_t fn = (vFuiiiiiuup_t)fcn; fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
@@ -1898,6 +1952,7 @@ void vFuupiuiuuf(x64emu_t *emu, uintptr_t fcn) { vFuupiuiuuf_t fn = (vFuupiuiuuf
 void vFuffffffff(x64emu_t *emu, uintptr_t fcn) { vFuffffffff_t fn = (vFuffffffff_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0]); }
 void vFffuuuufff(x64emu_t *emu, uintptr_t fcn) { vFffuuuufff_t fn = (vFffuuuufff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], (uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0]); }
 void vFddddddddd(x64emu_t *emu, uintptr_t fcn) { vFddddddddd_t fn = (vFddddddddd_t)fcn; fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0], emu->xmm[6].d[0], emu->xmm[7].d[0], *(double*)(R_RSP + 8)); }
+void vFpipiuiipp(x64emu_t *emu, uintptr_t fcn) { vFpipiuiipp_t fn = (vFpipiuiipp_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void vFpipppiipi(x64emu_t *emu, uintptr_t fcn) { vFpipppiipi_t fn = (vFpipppiipi_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
 void vFppiiipiii(x64emu_t *emu, uintptr_t fcn) { vFppiiipiii_t fn = (vFppiiipiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
 void vFpppppippp(x64emu_t *emu, uintptr_t fcn) { vFpppppippp_t fn = (vFpppppippp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); }
@@ -1916,6 +1971,7 @@ void pFEppuippuu(x64emu_t *emu, uintptr_t fcn) { pFEppuippuu_t fn = (pFEppuippuu
 void pFpiiiiuuuu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiuuuu_t fn = (pFpiiiiuuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); }
 void pFpCuWCCuuu(x64emu_t *emu, uintptr_t fcn) { pFpCuWCCuuu_t fn = (pFpCuWCCuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint16_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); }
 void pFpuuwwWWww(x64emu_t *emu, uintptr_t fcn) { pFpuuwwWWww_t fn = (pFpuuwwWWww_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int16_t)R_RCX, (int16_t)R_R8, (uint16_t)R_R9, *(uint16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16), *(int16_t*)(R_RSP + 24)); }
+void pFppiiiiiip(x64emu_t *emu, uintptr_t fcn) { pFppiiiiiip_t fn = (pFppiiiiiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void pFppiiuuuLL(x64emu_t *emu, uintptr_t fcn) { pFppiiuuuLL_t fn = (pFppiiuuuLL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); }
 void pFppipppppp(x64emu_t *emu, uintptr_t fcn) { pFppipppppp_t fn = (pFppipppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void vFiiiiiiiiiu(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiiu_t fn = (vFiiiiiiiiiu_t)fcn; fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32)); }
@@ -1965,6 +2021,7 @@ void vFuuuuuuuuuuuu(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuu_t fn = (vFuuu
 void vFffffffffffff(x64emu_t *emu, uintptr_t fcn) { vFffffffffffff_t fn = (vFffffffffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16), *(float*)(R_RSP + 24), *(float*)(R_RSP + 32)); }
 void vFpipppiiiipii(x64emu_t *emu, uintptr_t fcn) { vFpipppiiiipii_t fn = (vFpipppiiiipii_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(void**)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48)); }
 void vFpippppiiiipi(x64emu_t *emu, uintptr_t fcn) { vFpippppiiiipi_t fn = (vFpippppiiiipi_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(void**)(R_RSP + 40), *(int32_t*)(R_RSP + 48)); }
+void vFppiiuuuiupup(x64emu_t *emu, uintptr_t fcn) { vFppiiuuuiupup_t fn = (vFppiiuuuiupup_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(void**)(R_RSP + 32), *(uint32_t*)(R_RSP + 40), *(void**)(R_RSP + 48)); }
 void iFEppppiiiiuui(x64emu_t *emu, uintptr_t fcn) { iFEppppiiiiuui_t fn = (iFEppppiiiiuui_t)fcn; R_RAX=fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40)); }
 void iFpipppppppppp(x64emu_t *emu, uintptr_t fcn) { iFpipppppppppp_t fn = (iFpipppppppppp_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48)); }
 void iFpppllipppppp(x64emu_t *emu, uintptr_t fcn) { iFpppllipppppp_t fn = (iFpppllipppppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48)); }
@@ -1985,6 +2042,7 @@ void vFuffiiffiiffiip(x64emu_t *emu, uintptr_t fcn) { vFuffiiffiiffiip_t fn = (v
 void vFuddiiddiiddiip(x64emu_t *emu, uintptr_t fcn) { vFuddiiddiiddiip_t fn = (vFuddiiddiiddiip_t)fcn; fn((uint32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI, (int32_t)R_RDX, emu->xmm[2].d[0], emu->xmm[3].d[0], (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[4].d[0], emu->xmm[5].d[0], (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void vFuuiiiiuuiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiuuiiiiiii_t fn = (vFuuiiiiuuiiiiiii_t)fcn; fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48), *(int32_t*)(R_RSP + 56), *(int32_t*)(R_RSP + 64), *(int32_t*)(R_RSP + 72)); }
 void vFfffffffffffffff(x64emu_t *emu, uintptr_t fcn) { vFfffffffffffffff_t fn = (vFfffffffffffffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0], emu->xmm[5].f[0], emu->xmm[6].f[0], emu->xmm[7].f[0], *(float*)(R_RSP + 8), *(float*)(R_RSP + 16), *(float*)(R_RSP + 24), *(float*)(R_RSP + 32), *(float*)(R_RSP + 40), *(float*)(R_RSP + 48), *(float*)(R_RSP + 56)); }
+void pFppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFppppppppppppppp_t fn = (pFppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72)); }
 void pFpppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFpppppppppppppppp_t fn = (pFpppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80)); }
 void vFppuiiiiipuiiiiiiii(x64emu_t *emu, uintptr_t fcn) { vFppuiiiiipuiiiiiiii_t fn = (vFppuiiiiipuiiiiiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40), *(int32_t*)(R_RSP + 48), *(int32_t*)(R_RSP + 56), *(int32_t*)(R_RSP + 64), *(int32_t*)(R_RSP + 72), *(int32_t*)(R_RSP + 80), *(int32_t*)(R_RSP + 88), *(int32_t*)(R_RSP + 96)); }
 void pFipppppppppppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFipppppppppppppppppppppp_t fn = (pFipppppppppppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56), *(void**)(R_RSP + 64), *(void**)(R_RSP + 72), *(void**)(R_RSP + 80), *(void**)(R_RSP + 88), *(void**)(R_RSP + 96), *(void**)(R_RSP + 104), *(void**)(R_RSP + 112), *(void**)(R_RSP + 120), *(void**)(R_RSP + 128), *(void**)(R_RSP + 136)); }
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index a33f0590..748898ad 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -228,6 +228,8 @@ void vFpui(x64emu_t *emu, uintptr_t fnc);
 void vFpuI(x64emu_t *emu, uintptr_t fnc);
 void vFpuu(x64emu_t *emu, uintptr_t fnc);
 void vFpup(x64emu_t *emu, uintptr_t fnc);
+void vFpLi(x64emu_t *emu, uintptr_t fnc);
+void vFpLL(x64emu_t *emu, uintptr_t fnc);
 void vFppi(x64emu_t *emu, uintptr_t fnc);
 void vFppu(x64emu_t *emu, uintptr_t fnc);
 void vFppL(x64emu_t *emu, uintptr_t fnc);
@@ -320,6 +322,7 @@ void LFLpu(x64emu_t *emu, uintptr_t fnc);
 void LFLpL(x64emu_t *emu, uintptr_t fnc);
 void LFpii(x64emu_t *emu, uintptr_t fnc);
 void LFpup(x64emu_t *emu, uintptr_t fnc);
+void LFpLi(x64emu_t *emu, uintptr_t fnc);
 void LFpLp(x64emu_t *emu, uintptr_t fnc);
 void LFppi(x64emu_t *emu, uintptr_t fnc);
 void LFppL(x64emu_t *emu, uintptr_t fnc);
@@ -398,13 +401,17 @@ void vFffff(x64emu_t *emu, uintptr_t fnc);
 void vFdddd(x64emu_t *emu, uintptr_t fnc);
 void vFpiii(x64emu_t *emu, uintptr_t fnc);
 void vFpiip(x64emu_t *emu, uintptr_t fnc);
+void vFpiup(x64emu_t *emu, uintptr_t fnc);
 void vFpipp(x64emu_t *emu, uintptr_t fnc);
+void vFpuuu(x64emu_t *emu, uintptr_t fnc);
 void vFpupp(x64emu_t *emu, uintptr_t fnc);
 void vFpdii(x64emu_t *emu, uintptr_t fnc);
 void vFpddd(x64emu_t *emu, uintptr_t fnc);
+void vFpLLL(x64emu_t *emu, uintptr_t fnc);
 void vFppii(x64emu_t *emu, uintptr_t fnc);
 void vFppip(x64emu_t *emu, uintptr_t fnc);
 void vFppui(x64emu_t *emu, uintptr_t fnc);
+void vFppuu(x64emu_t *emu, uintptr_t fnc);
 void vFppup(x64emu_t *emu, uintptr_t fnc);
 void vFpppi(x64emu_t *emu, uintptr_t fnc);
 void vFpppu(x64emu_t *emu, uintptr_t fnc);
@@ -445,6 +452,7 @@ void iFpipi(x64emu_t *emu, uintptr_t fnc);
 void iFpipp(x64emu_t *emu, uintptr_t fnc);
 void iFpCCC(x64emu_t *emu, uintptr_t fnc);
 void iFpWWu(x64emu_t *emu, uintptr_t fnc);
+void iFpuiL(x64emu_t *emu, uintptr_t fnc);
 void iFpuip(x64emu_t *emu, uintptr_t fnc);
 void iFpuui(x64emu_t *emu, uintptr_t fnc);
 void iFpuuu(x64emu_t *emu, uintptr_t fnc);
@@ -452,6 +460,7 @@ void iFpuup(x64emu_t *emu, uintptr_t fnc);
 void iFpuLL(x64emu_t *emu, uintptr_t fnc);
 void iFpuLp(x64emu_t *emu, uintptr_t fnc);
 void iFpupV(x64emu_t *emu, uintptr_t fnc);
+void iFpLpi(x64emu_t *emu, uintptr_t fnc);
 void iFppii(x64emu_t *emu, uintptr_t fnc);
 void iFppiu(x64emu_t *emu, uintptr_t fnc);
 void iFppiL(x64emu_t *emu, uintptr_t fnc);
@@ -608,6 +617,8 @@ void iFipuip(x64emu_t *emu, uintptr_t fnc);
 void iFipppi(x64emu_t *emu, uintptr_t fnc);
 void iFipppp(x64emu_t *emu, uintptr_t fnc);
 void iFpiiii(x64emu_t *emu, uintptr_t fnc);
+void iFpiiiu(x64emu_t *emu, uintptr_t fnc);
+void iFpiiiL(x64emu_t *emu, uintptr_t fnc);
 void iFpiiip(x64emu_t *emu, uintptr_t fnc);
 void iFpiiuu(x64emu_t *emu, uintptr_t fnc);
 void iFpiipi(x64emu_t *emu, uintptr_t fnc);
@@ -675,6 +686,7 @@ void pFpppup(x64emu_t *emu, uintptr_t fnc);
 void pFppppi(x64emu_t *emu, uintptr_t fnc);
 void pFppppp(x64emu_t *emu, uintptr_t fnc);
 void vFEiiipp(x64emu_t *emu, uintptr_t fnc);
+void vFEpuipp(x64emu_t *emu, uintptr_t fnc);
 void vFEpLLpp(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFiiiuil(x64emu_t *emu, uintptr_t fnc);
@@ -718,12 +730,15 @@ void vFupupip(x64emu_t *emu, uintptr_t fnc);
 void vFuppppp(x64emu_t *emu, uintptr_t fnc);
 void vFffffff(x64emu_t *emu, uintptr_t fnc);
 void vFdddddd(x64emu_t *emu, uintptr_t fnc);
+void vFpiiuuu(x64emu_t *emu, uintptr_t fnc);
 void vFpipipV(x64emu_t *emu, uintptr_t fnc);
 void vFpipppi(x64emu_t *emu, uintptr_t fnc);
 void vFpdddii(x64emu_t *emu, uintptr_t fnc);
 void vFppiiii(x64emu_t *emu, uintptr_t fnc);
+void vFppiiip(x64emu_t *emu, uintptr_t fnc);
 void vFppiipi(x64emu_t *emu, uintptr_t fnc);
 void vFppupii(x64emu_t *emu, uintptr_t fnc);
+void vFpppiii(x64emu_t *emu, uintptr_t fnc);
 void vFpppppp(x64emu_t *emu, uintptr_t fnc);
 void iFEiippi(x64emu_t *emu, uintptr_t fnc);
 void iFEpilpV(x64emu_t *emu, uintptr_t fnc);
@@ -741,6 +756,7 @@ void iFpiippp(x64emu_t *emu, uintptr_t fnc);
 void iFpipppp(x64emu_t *emu, uintptr_t fnc);
 void iFpupuui(x64emu_t *emu, uintptr_t fnc);
 void iFppiiuu(x64emu_t *emu, uintptr_t fnc);
+void iFppipiL(x64emu_t *emu, uintptr_t fnc);
 void iFppIppp(x64emu_t *emu, uintptr_t fnc);
 void iFppuiii(x64emu_t *emu, uintptr_t fnc);
 void iFppuiiL(x64emu_t *emu, uintptr_t fnc);
@@ -758,6 +774,7 @@ void uFpippup(x64emu_t *emu, uintptr_t fnc);
 void UFpippup(x64emu_t *emu, uintptr_t fnc);
 void lFipLipu(x64emu_t *emu, uintptr_t fnc);
 void lFipLipp(x64emu_t *emu, uintptr_t fnc);
+void LFpipipi(x64emu_t *emu, uintptr_t fnc);
 void LFSpLiip(x64emu_t *emu, uintptr_t fnc);
 void pFEpippp(x64emu_t *emu, uintptr_t fnc);
 void pFEpuipp(x64emu_t *emu, uintptr_t fnc);
@@ -775,6 +792,7 @@ void pFpCuuWW(x64emu_t *emu, uintptr_t fnc);
 void pFpCuuup(x64emu_t *emu, uintptr_t fnc);
 void pFpuuuuu(x64emu_t *emu, uintptr_t fnc);
 void pFppiiii(x64emu_t *emu, uintptr_t fnc);
+void pFpppppu(x64emu_t *emu, uintptr_t fnc);
 void pFpppppp(x64emu_t *emu, uintptr_t fnc);
 void pFSpiiii(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiip(x64emu_t *emu, uintptr_t fnc);
@@ -816,6 +834,7 @@ void vFpipipii(x64emu_t *emu, uintptr_t fnc);
 void vFpddiidd(x64emu_t *emu, uintptr_t fnc);
 void vFppiiipi(x64emu_t *emu, uintptr_t fnc);
 void vFpppiiii(x64emu_t *emu, uintptr_t fnc);
+void vFpppuuuu(x64emu_t *emu, uintptr_t fnc);
 void vFppppipi(x64emu_t *emu, uintptr_t fnc);
 void iFEpLiLpV(x64emu_t *emu, uintptr_t fnc);
 void iFEppLpIi(x64emu_t *emu, uintptr_t fnc);
@@ -823,15 +842,19 @@ void iFEpppiiu(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppp(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void iFpiiuuiu(x64emu_t *emu, uintptr_t fnc);
+void iFpiuiipp(x64emu_t *emu, uintptr_t fnc);
 void iFpiupiii(x64emu_t *emu, uintptr_t fnc);
 void iFpuuiuui(x64emu_t *emu, uintptr_t fnc);
 void iFpupuuui(x64emu_t *emu, uintptr_t fnc);
 void iFpuppppp(x64emu_t *emu, uintptr_t fnc);
+void iFpLipipi(x64emu_t *emu, uintptr_t fnc);
 void iFppiiiip(x64emu_t *emu, uintptr_t fnc);
 void iFppiiuui(x64emu_t *emu, uintptr_t fnc);
 void iFppiipii(x64emu_t *emu, uintptr_t fnc);
+void iFppiipiL(x64emu_t *emu, uintptr_t fnc);
 void iFppipipi(x64emu_t *emu, uintptr_t fnc);
 void iFppipppp(x64emu_t *emu, uintptr_t fnc);
+void iFppuipiL(x64emu_t *emu, uintptr_t fnc);
 void iFpppiiii(x64emu_t *emu, uintptr_t fnc);
 void iFpppiiuu(x64emu_t *emu, uintptr_t fnc);
 void iFpppiipi(x64emu_t *emu, uintptr_t fnc);
@@ -849,6 +872,7 @@ void pFpCuWCCC(x64emu_t *emu, uintptr_t fnc);
 void pFpCuuwwp(x64emu_t *emu, uintptr_t fnc);
 void pFpCuuuuu(x64emu_t *emu, uintptr_t fnc);
 void pFppuuppp(x64emu_t *emu, uintptr_t fnc);
+void pFpppuupp(x64emu_t *emu, uintptr_t fnc);
 void pFppppuuu(x64emu_t *emu, uintptr_t fnc);
 void pFpppppuu(x64emu_t *emu, uintptr_t fnc);
 void pFppppppp(x64emu_t *emu, uintptr_t fnc);
@@ -895,6 +919,7 @@ void pFuupupipp(x64emu_t *emu, uintptr_t fnc);
 void pFpCuwwWWu(x64emu_t *emu, uintptr_t fnc);
 void pFpCuuuCup(x64emu_t *emu, uintptr_t fnc);
 void pFpppuuLLu(x64emu_t *emu, uintptr_t fnc);
+void pFpppppupp(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiuip(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiuup(x64emu_t *emu, uintptr_t fnc);
@@ -910,6 +935,7 @@ void vFuupiuiuuf(x64emu_t *emu, uintptr_t fnc);
 void vFuffffffff(x64emu_t *emu, uintptr_t fnc);
 void vFffuuuufff(x64emu_t *emu, uintptr_t fnc);
 void vFddddddddd(x64emu_t *emu, uintptr_t fnc);
+void vFpipiuiipp(x64emu_t *emu, uintptr_t fnc);
 void vFpipppiipi(x64emu_t *emu, uintptr_t fnc);
 void vFppiiipiii(x64emu_t *emu, uintptr_t fnc);
 void vFpppppippp(x64emu_t *emu, uintptr_t fnc);
@@ -928,6 +954,7 @@ void pFEppuippuu(x64emu_t *emu, uintptr_t fnc);
 void pFpiiiiuuuu(x64emu_t *emu, uintptr_t fnc);
 void pFpCuWCCuuu(x64emu_t *emu, uintptr_t fnc);
 void pFpuuwwWWww(x64emu_t *emu, uintptr_t fnc);
+void pFppiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void pFppiiuuuLL(x64emu_t *emu, uintptr_t fnc);
 void pFppipppppp(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiiiiiu(x64emu_t *emu, uintptr_t fnc);
@@ -977,6 +1004,7 @@ void vFuuuuuuuuuuuu(x64emu_t *emu, uintptr_t fnc);
 void vFffffffffffff(x64emu_t *emu, uintptr_t fnc);
 void vFpipppiiiipii(x64emu_t *emu, uintptr_t fnc);
 void vFpippppiiiipi(x64emu_t *emu, uintptr_t fnc);
+void vFppiiuuuiupup(x64emu_t *emu, uintptr_t fnc);
 void iFEppppiiiiuui(x64emu_t *emu, uintptr_t fnc);
 void iFpipppppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFpppllipppppp(x64emu_t *emu, uintptr_t fnc);
@@ -997,6 +1025,7 @@ void vFuffiiffiiffiip(x64emu_t *emu, uintptr_t fnc);
 void vFuddiiddiiddiip(x64emu_t *emu, uintptr_t fnc);
 void vFuuiiiiuuiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void vFfffffffffffffff(x64emu_t *emu, uintptr_t fnc);
+void pFppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void pFpppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
 void vFppuiiiiipuiiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void pFipppppppppppppppppppppp(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibx11xcb.c b/src/wrapped/wrappedlibx11xcb.c
new file mode 100644
index 00000000..e4a70f66
--- /dev/null
+++ b/src/wrapped/wrappedlibx11xcb.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "debug.h"
+
+const char* libx11xcbName = "libX11-xcb.so.1";
+#define LIBNAME libx11xcb
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibx11xcb_private.h b/src/wrapped/wrappedlibx11xcb_private.h
new file mode 100644
index 00000000..fb294461
--- /dev/null
+++ b/src/wrapped/wrappedlibx11xcb_private.h
@@ -0,0 +1,6 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(XGetXCBConnection, pFp)
+GO(XSetEventQueueOwner, vFpu)
diff --git a/src/wrapped/wrappedlibxcomposite.c b/src/wrapped/wrappedlibxcomposite.c
new file mode 100755
index 00000000..bb0394ba
--- /dev/null
+++ b/src/wrapped/wrappedlibxcomposite.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "debug.h"
+
+const char* libxcompositeName = "libXcomposite.so.1";
+#define LIBNAME libxcomposite
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibxcomposite_private.h b/src/wrapped/wrappedlibxcomposite_private.h
new file mode 100755
index 00000000..9c52d04f
--- /dev/null
+++ b/src/wrapped/wrappedlibxcomposite_private.h
@@ -0,0 +1,16 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(XCompositeCreateRegionFromBorderClip, LFpL)
+GO(XCompositeFindDisplay, pFp)
+GO(XCompositeGetOverlayWindow, LFpL)
+GO(XCompositeNameWindowPixmap, LFpL)
+GO(XCompositeQueryExtension, iFppp)
+GO(XCompositeQueryVersion, iFppp)
+GO(XCompositeRedirectSubwindows, vFpLi)
+GO(XCompositeRedirectWindow, vFpLi)
+GO(XCompositeReleaseOverlayWindow, vFpL)
+GO(XCompositeUnredirectSubwindows, vFpLi)
+GO(XCompositeUnredirectWindow, vFpLi)
+GO(XCompositeVersion, iFv)
diff --git a/src/wrapped/wrappedlibxcursor.c b/src/wrapped/wrappedlibxcursor.c
new file mode 100755
index 00000000..749d2a07
--- /dev/null
+++ b/src/wrapped/wrappedlibxcursor.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* libxcursorName = "libXcursor.so.1";
+#define LIBNAME libxcursor
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibxcursor_private.h b/src/wrapped/wrappedlibxcursor_private.h
new file mode 100755
index 00000000..493b933c
--- /dev/null
+++ b/src/wrapped/wrappedlibxcursor_private.h
@@ -0,0 +1,66 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(XcursorAnimateCreate, pFp)
+GO(XcursorAnimateDestroy, vFp)
+GO(XcursorAnimateNext, pFp)
+GO(XcursorCommentCreate, pFui)
+GO(XcursorCommentDestroy, vFp)
+GO(XcursorCommentsCreate, pFi)
+GO(XcursorCommentsDestroy, vFp)
+//GO(_XcursorCreateFontCursor, 
+//GO(_XcursorCreateGlyphCursor, 
+GO(XcursorCursorsCreate, pFpi)
+GO(XcursorCursorsDestroy, vFp)
+GO(XcursorFileLoad, pFppp)
+GO(XcursorFileLoadAllImages, pFp)
+GO(XcursorFileLoadImage, pFpi)
+GO(XcursorFileLoadImages, pFpi)
+GO(XcursorFilenameLoad, iFppp)
+GO(XcursorFilenameLoadAllImages, pFp)
+GO(XcursorFilenameLoadCursor, pFpp)
+GO(XcursorFilenameLoadCursors, pFpp)
+GO(XcursorFilenameLoadImage, pFpi)
+GO(XcursorFilenameLoadImages, pFpi)
+GO(XcursorFilenameSave, iFppp)
+GO(XcursorFilenameSaveImages, iFpp)
+GO(XcursorFileSave, iFppp)
+GO(XcursorFileSaveImages, iFpp)
+GO(XcursorGetDefaultSize, iFp)
+//GO(_XcursorGetDisplayInfo, 
+GO(XcursorGetTheme, pFp)
+GO(XcursorGetThemeCore, iFp)
+GO(XcursorImageCreate, pFii)
+GO(XcursorImageDestroy, vFp)
+//GOM(XcursorImageHash, vFEpp)    // needs unbridge XImage (first p)
+GO(XcursorImageLoadCursor, pFpp)
+GO(XcursorImagesCreate, pFi)
+GO(XcursorImagesDestroy, vFp)
+GO(XcursorImagesLoadCursor, pFpp)
+GO(XcursorImagesLoadCursors, pFpp)
+GO(XcursorImagesSetName, vFpp)
+GO(XcursorLibraryLoadCursor, pFpp)
+GO(XcursorLibraryLoadCursors, pFpp)
+GO(XcursorLibraryLoadImage, pFppi)
+GO(XcursorLibraryLoadImages, pFppi)
+GO(XcursorLibraryPath, pFv)
+GO(XcursorLibraryShape, iFp)
+GO(XcursorNoticeCreateBitmap, vFppuu)
+//GOM(XcursorNoticePutBitmap, vFEppp)   //needs unbridge XImage (last p)
+GO(XcursorSetDefaultSize, iFpi)
+GO(XcursorSetTheme, iFpp)
+GO(XcursorSetThemeCore, iFpi)
+GO(XcursorShapeLoadCursor, pFpu)
+GO(XcursorShapeLoadCursors, pFpu)
+GO(XcursorShapeLoadImage, pFupi)
+GO(XcursorShapeLoadImages, pFupi)
+GO(XcursorSupportsAnim, iFp)
+GO(XcursorSupportsARGB, iFp)
+GO(XcursorTryShapeBitmapCursor, pFpppppuu)
+GO(XcursorTryShapeCursor, pFpppuupp)
+GO(XcursorXcFileLoad, iFppp)
+GO(XcursorXcFileLoadAllImages, pFp)
+GO(XcursorXcFileLoadImage, pFpi)
+GO(XcursorXcFileLoadImages, pFpi)
+GO(XcursorXcFileSave, iFppp)
diff --git a/src/wrapped/wrappedlibxdamage.c b/src/wrapped/wrappedlibxdamage.c
new file mode 100755
index 00000000..6f10e7f0
--- /dev/null
+++ b/src/wrapped/wrappedlibxdamage.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "debug.h"
+
+const char* libxdamageName = "libXdamage.so.1";
+#define LIBNAME libxdamage
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibxdamage_private.h b/src/wrapped/wrappedlibxdamage_private.h
new file mode 100755
index 00000000..00fa99f9
--- /dev/null
+++ b/src/wrapped/wrappedlibxdamage_private.h
@@ -0,0 +1,12 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+
+GO(XDamageAdd, vFpLL)
+GO(XDamageCreate, LFpLi)
+GO(XDamageDestroy, vFpL)
+GO(XDamageFindDisplay, pFp)
+GO(XDamageQueryExtension, iFppp)
+GO(XDamageQueryVersion, iFppp)
+GO(XDamageSubtract, vFpLLL)
diff --git a/src/wrapped/wrappedlibxfixes.c b/src/wrapped/wrappedlibxfixes.c
new file mode 100755
index 00000000..4ad17a8a
--- /dev/null
+++ b/src/wrapped/wrappedlibxfixes.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* libxfixesName = "libXfixes.so.3";
+#define LIBNAME libxfixes
+
+#define CUSTOM_INIT \
+    lib->priv.w.needed = 4; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libX11.so.6"); \
+    lib->priv.w.neededlibs[1] = strdup("libxcb.so.1"); \
+    lib->priv.w.neededlibs[2] = strdup("libXau.so.6"); \
+    lib->priv.w.neededlibs[3] = strdup("libXdmcp.so.6");
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibxfixes_private.h b/src/wrapped/wrappedlibxfixes_private.h
new file mode 100755
index 00000000..b388944b
--- /dev/null
+++ b/src/wrapped/wrappedlibxfixes_private.h
@@ -0,0 +1,42 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(XFixesChangeCursor, vFppp)
+GO(XFixesChangeCursorByName, vFppp)
+GO(XFixesChangeSaveSet, vFppiii)
+GO(XFixesCopyRegion, vFppp)
+GO(XFixesCreatePointerBarrier, pFppiiiiiip)
+GO(XFixesCreateRegion, pFppi)
+GO(XFixesCreateRegionFromBitmap, pFpp)
+GO(XFixesCreateRegionFromGC, pFpp)
+GO(XFixesCreateRegionFromPicture, pFpp)
+GO(XFixesCreateRegionFromWindow, pFppi)
+GO(XFixesDestroyPointerBarrier, vFpp)
+GO(XFixesDestroyRegion, vFpp)
+GO(XFixesExpandRegion, vFpppuuuu)
+DATA(XFixesExtensionInfo, sizeof(void*))    //B
+DATA(XFixesExtensionName, sizeof(void*))    //D
+GO(XFixesFetchRegion, pFppp)
+GO(XFixesFetchRegionAndBounds, pFpppp)
+GO(XFixesFindDisplay, pFp)
+GO(XFixesGetCursorImage, pFp)
+GO(XFixesGetCursorName, pFppp)
+GO(XFixesHideCursor, vFpp)
+GO(XFixesIntersectRegion, vFpppp)
+GO(XFixesInvertRegion, vFpppp)
+GO(XFixesQueryExtension, iFppp)
+GO(XFixesQueryVersion, iFppp)
+GO(XFixesRegionExtents, vFppp)
+GO(XFixesSelectCursorInput, vFppu)
+GO(XFixesSelectSelectionInput, vFpppu)
+GO(XFixesSetCursorName, vFppp)
+GO(XFixesSetGCClipRegion, vFppiip)
+GO(XFixesSetPictureClipRegion, vFppiip)
+GO(XFixesSetRegion, vFpppi)
+GO(XFixesSetWindowShapeRegion, vFppiiip)
+GO(XFixesShowCursor, vFpp)
+GO(XFixesSubtractRegion, vFpppp)
+GO(XFixesTranslateRegion, vFppii)
+GO(XFixesUnionRegion, vFpppp)
+GO(XFixesVersion, iFv)
diff --git a/src/wrapped/wrappedlibxmu.c b/src/wrapped/wrappedlibxmu.c
new file mode 100755
index 00000000..c7262418
--- /dev/null
+++ b/src/wrapped/wrappedlibxmu.c
@@ -0,0 +1,24 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* libxmuName = "libXmu.so.6";
+#define LIBNAME libxmu
+
+#define CUSTOM_INIT \
+    lib->priv.w.needed = 2; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libX11.so.6"); \
+    lib->priv.w.neededlibs[1] = strdup("libXext.so.6");
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibxmu_private.h b/src/wrapped/wrappedlibxmu_private.h
new file mode 100755
index 00000000..931574d3
--- /dev/null
+++ b/src/wrapped/wrappedlibxmu_private.h
@@ -0,0 +1,133 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+//GO(XctCreate, 
+//GO(XctFree, 
+//GO(XctNextItem, 
+//GO(XctReset, 
+//GO(_XEditResCheckMessages, 
+//GO(_XEditResGet16, 
+//GO(_XEditResGet32, 
+//GO(_XEditResGet8, 
+//GO(_XEditResGetSigned16, 
+//GO(_XEditResGetString8, 
+//GO(_XEditResGetWidgetInfo, 
+//GO(_XEditResPut16, 
+//GO(_XEditResPut32, 
+//GO(_XEditResPut8, 
+//GO(_XEditResPutString8, 
+//GO(_XEditResPutWidgetInfo, 
+//GO(_XEditResResetStream, 
+//GO(XmuAddCloseDisplayHook, 
+//GO(XmuAddInitializer, 
+//GO(XmuAllStandardColormaps, 
+//GO(XmuAppendSegment, 
+//GO(XmuAreaAnd, 
+//GO(XmuAreaCopy, 
+//GO(XmuAreaDup, 
+//GO(XmuAreaNot, 
+//GO(XmuAreaOrXor, 
+//GO(XmuCallInitializers, 
+//GO(_XmuCCLookupDisplay, 
+GO(XmuClientWindow, pFpp)
+//GO(XmuCompareISOLatin1, 
+//GO(XmuConvertStandardSelection, 
+//GO(XmuCopyISOLatin1Lowered, 
+//GO(XmuCopyISOLatin1Uppered, 
+//GO(XmuCreateColormap, 
+//GO(XmuCreatePixmapFromBitmap, 
+//GO(XmuCreateStippledPixmap, 
+//GO(XmuCursorNameToIndex, 
+//GO(XmuCvtBackingStoreToString, 
+//GO(XmuCvtFunctionToCallback, 
+//GO(XmuCvtGravityToString, 
+//GO(XmuCvtJustifyToString, 
+//GO(XmuCvtLongToString, 
+//GO(XmuCvtOrientationToString, 
+//GO(XmuCvtShapeStyleToString, 
+//GO(XmuCvtStringToBackingStore, 
+//GO(XmuCvtStringToBitmap, 
+//GO(XmuCvtStringToColorCursor, 
+//GO(XmuCvtStringToCursor, 
+//GO(XmuCvtStringToGravity, 
+//GO(XmuCvtStringToJustify, 
+//GO(XmuCvtStringToLong, 
+//GO(XmuCvtStringToOrientation, 
+//GO(XmuCvtStringToShapeStyle, 
+//GO(XmuCvtStringToWidget, 
+//GO(XmuCvtWidgetToString, 
+//GO(XmuDeleteStandardColormap, 
+//GO(XmuDestroyScanlineList, 
+//GO(XmuDestroySegmentList, 
+//GO(XmuDistinguishableColors, 
+//GO(XmuDistinguishablePixels, 
+//GO(XmuDQAddDisplay, 
+//GO(XmuDQCreate, 
+//GO(XmuDQDestroy, 
+//GO(XmuDQLookupDisplay, 
+//GO(XmuDQRemoveDisplay, 
+//GO(XmuDrawLogo, 
+//GO(XmuDrawRoundedRectangle, 
+//GO(XmuFillRoundedRectangle, 
+//GO(XmuGetAtomName, 
+//GO(XmuGetColormapAllocation, 
+//GO(XmuGetHostname, 
+//GO(XmuInternAtom, 
+//GO(XmuInternStrings, 
+//GO(XmuLocateBitmapFile, 
+//GO(XmuLocatePixmapFile, 
+//GO(XmuLookupAPL, 
+//GO(XmuLookupArabic, 
+//GO(XmuLookupCloseDisplayHook, 
+//GO(XmuLookupCyrillic, 
+//GO(XmuLookupGreek, 
+//GO(XmuLookupHebrew, 
+//GO(XmuLookupJISX0201, 
+//GO(XmuLookupKana, 
+//GO(XmuLookupLatin1, 
+//GO(XmuLookupLatin2, 
+//GO(XmuLookupLatin3, 
+//GO(XmuLookupLatin4, 
+//GO(XmuLookupStandardColormap, 
+//GO(XmuLookupString, 
+//GO(XmuMakeAtom, 
+//GO(XmuNameOfAtom, 
+//GO(XmuNCopyISOLatin1Lowered, 
+//GO(XmuNCopyISOLatin1Uppered, 
+//GO(XmuNewArea, 
+//GO(XmuNewCvtStringToWidget, 
+//GO(XmuNewScanline, 
+//GO(XmuNewSegment, 
+//GO(XmuOptimizeArea, 
+//GO(XmuOptimizeScanline, 
+//GO(XmuPrintDefaultErrorMessage, 
+//GO(XmuReadBitmapData, 
+//GO(XmuReadBitmapDataFromFile, 
+//GO(XmuRegisterExternalAgent, 
+//GO(XmuReleaseStippledPixmap, 
+//GO(XmuRemoveCloseDisplayHook, 
+//GO(XmuReshapeWidget, 
+//GO(XmuScanlineAnd, 
+//GO(XmuScanlineAndSegment, 
+//GO(XmuScanlineCopy, 
+//GO(XmuScanlineEqu, 
+//GO(XmuScanlineNot, 
+//GO(XmuScanlineOr, 
+//GO(XmuScanlineOrSegment, 
+//GO(XmuScanlineXor, 
+//GO(XmuScanlineXorSegment, 
+GO(XmuScreenOfWindow, pFpp)
+//GO(XmuSimpleErrorHandler, 
+//GO(XmuSnprintf, 
+//GO(XmuStandardColormap, 
+//GO(_XmuStringToBitmapFreeCache, 
+//GO(_XmuStringToBitmapInitCache, 
+//GO(XmuUpdateMapHints, 
+//GO(XmuValidArea, 
+//GO(XmuValidScanline, 
+//GO(XmuVisualStandardColormaps, 
+//GO(XmuWnCountOwnedResources, 
+//GO(XmuWnFetchResources, 
+//GO(XmuWnInitializeNodes, 
+//GO(XmuWnNameToNode, 
diff --git a/src/wrapped/wrappedlibxpm.c b/src/wrapped/wrappedlibxpm.c
new file mode 100755
index 00000000..17dbb0ec
--- /dev/null
+++ b/src/wrapped/wrappedlibxpm.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* libxpmName = "libXpm.so.4";
+#define LIBNAME libxpm
+
+#include "wrappedlib_init.h"
+
+#define CUSTOM_INIT \
+    lib->priv.w.needed = 2; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libX11.so.6"); \
+    lib->priv.w.neededlibs[1] = strdup("libXext.so.6");
diff --git a/src/wrapped/wrappedlibxpm_private.h b/src/wrapped/wrappedlibxpm_private.h
new file mode 100755
index 00000000..fc71b02e
--- /dev/null
+++ b/src/wrapped/wrappedlibxpm_private.h
@@ -0,0 +1,69 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+//GO(xpmatoui, 
+GO(XpmAttributesSize, iFv)
+GO(XpmCreateBufferFromImage, iFppppp)   // need unwrapping of Image?
+GO(XpmCreateBufferFromPixmap, iFppppp)
+GO(XpmCreateBufferFromXpmImage, iFppp)
+GO(XpmCreateDataFromImage, iFppppp)
+GO(XpmCreateDataFromPixmap, iFppppp)
+GO(XpmCreateDataFromXpmImage, iFppp)
+GO(XpmCreateImageFromBuffer, iFppppp)   // XImage...
+GO(XpmCreateImageFromData, iFppppp)     // XImage...
+//GO(xpmCreateImageFromPixmap, 
+GO(XpmCreateImageFromXpmImage, iFppppp)
+GO(XpmCreatePixmapFromBuffer, iFpppppp)
+GO(XpmCreatePixmapFromData, iFpppppp)
+//GO(xpmCreatePixmapFromImage, 
+GO(XpmCreatePixmapFromXpmImage, iFpppppp)
+GO(XpmCreateXpmImageFromBuffer, iFppp)
+GO(XpmCreateXpmImageFromData, iFppp)
+GO(XpmCreateXpmImageFromImage, iFppppp)
+GO(XpmCreateXpmImageFromPixmap, iFppppp)
+GO(XpmFree, vFp)
+GO(XpmFreeAttributes, vFp)
+//GO(xpmFreeColorTable, 
+GO(XpmFreeExtensions, vFpi)
+//GO(xpmFreeRgbNames, 
+GO(XpmFreeXpmImage, vFp)
+GO(XpmFreeXpmInfo, vFp)
+//GO(xpmGetCmt, 
+GO(XpmGetErrorString, pFi)
+//GO(xpmGetRgbName, 
+//GO(xpmGetString, 
+//GO(xpmHashIntern, 
+//GO(xpmHashSlot, 
+//GO(xpmHashTableFree, 
+//GO(xpmHashTableInit, 
+//GO(xpmInitAttributes, 
+//GO(xpmInitXpmImage, 
+//GO(xpmInitXpmInfo, 
+GO(XpmLibraryVersion, iFv)
+//GO(xpmNextString, 
+//GO(xpmNextUI, 
+//GO(xpmNextWord, 
+//GO(xpmParseColors, 
+//GO(xpmParseData, 
+//GO(xpmParseDataAndCreate, 
+//GO(xpmParseExtensions, 
+//GO(xpmParseHeader, 
+//GO(xpmParseValues, 
+//GO(xpmPipeThrough, 
+GO(XpmReadFileToBuffer, iFpp)
+GO(XpmReadFileToData, iFpp)
+//GO(XpmReadFileToImage, 
+GO(XpmReadFileToPixmap, iFpppppp)
+GO(XpmReadFileToXpmImage, iFppp)
+//GO(xpmReadRgbNames, 
+//GO(xpmSetAttributes, 
+//GO(xpmSetInfo, 
+//GO(xpmSetInfoMask, 
+GO(XpmWriteFileFromBuffer, iFpp)
+GO(XpmWriteFileFromData, iFpp)
+//GO(XpmWriteFileFromImage, 
+GO(XpmWriteFileFromPixmap, iFppppp)
+GO(XpmWriteFileFromXpmImage, iFppp)
+//GO(xpm_xynormalizeimagebits, 
+//GO(xpm_znormalizeimagebits, 
diff --git a/src/wrapped/wrappedlibxss.c b/src/wrapped/wrappedlibxss.c
new file mode 100755
index 00000000..4abb9ce9
--- /dev/null
+++ b/src/wrapped/wrappedlibxss.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* libxssName = "libXss.so.1";
+#define LIBNAME libxss
+
+#include "wrappedlib_init.h"
+
+#define CUSTOM_INIT \
+    lib->priv.w.needed = 2; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libX11.so.6"); \
+    lib->priv.w.neededlibs[1] = strdup("libXext.so.6");
diff --git a/src/wrapped/wrappedlibxss_private.h b/src/wrapped/wrappedlibxss_private.h
new file mode 100755
index 00000000..d345f049
--- /dev/null
+++ b/src/wrapped/wrappedlibxss_private.h
@@ -0,0 +1,15 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(XScreenSaverAllocInfo, pFv)
+GO(XScreenSaverGetRegistered, uFpipp)
+GO(XScreenSaverQueryExtension, iFppp)
+GO(XScreenSaverQueryInfo, iFppp)
+GO(XScreenSaverQueryVersion, iFppp)
+GO(XScreenSaverRegister, vFpiup)
+GO(XScreenSaverSelectInput, vFppu)
+GO(XScreenSaverSetAttributes, vFppiiuuuiupup)
+GO(XScreenSaverSuspend, vFpi)
+GO(XScreenSaverUnregister, iFpi)
+GO(XScreenSaverUnsetAttributes, vFpp)
diff --git a/src/wrapped/wrappedlibxt.c b/src/wrapped/wrappedlibxt.c
new file mode 100755
index 00000000..8b74258c
--- /dev/null
+++ b/src/wrapped/wrappedlibxt.c
@@ -0,0 +1,104 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box64context.h"
+#include "emu/x64emu_private.h"
+
+const char* libxtName = "libXt.so.6";
+#define LIBNAME libxt
+
+typedef void  (*vFpuipp_t)(void*, uint32_t, int32_t, void*, void*);
+
+#define SUPER() \
+    GO(XtAddEventHandler, vFpuipp_t)
+
+typedef struct libxt_my_s {
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+    // functions
+} libxt_my_t;
+
+void* getXtMy(library_t* lib)
+{
+    libxt_my_t* my = (libxt_my_t*)calloc(1, sizeof(libxt_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeXtMy(void* lib)
+{
+    //libxt_my_t *my = (libxt_my_t *)lib;
+}
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)   \
+GO(5)   \
+GO(6)   \
+GO(7)
+
+#define GO(A)   \
+static uintptr_t my_Event_fct_##A = 0;   \
+static void my_Event_##A(void* w, void* data, void* event)     \
+{                                       \
+    RunFunction(my_context, my_Event_fct_##A, 3, w, data, event);\
+}
+SUPER()
+#undef GO
+static void* findEventFct(void* fct)
+{
+    if(!fct) return NULL;
+    #define GO(A) if(my_Event_fct_##A == (uintptr_t)fct) return my_Event_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_Event_fct_##A == 0) {my_Event_fct_##A = (uintptr_t)fct; return my_Event_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXt Event callback\n");
+    return NULL;
+}
+#undef SUPER
+
+
+EXPORT void my_XtAddEventHandler(x64emu_t* emu, void* w, uint32_t mask, int32_t maskable, void* cb, void* data)
+{
+    void* fct = findEventFct(cb);
+    library_t* lib = GetLibInternal(libxtName);
+    libxt_my_t* my = (libxt_my_t*)lib->priv.w.p2;
+
+    my->XtAddEventHandler(w, mask, maskable, fct, data);
+}
+
+#define CUSTOM_INIT \
+    lib->priv.w.p2 = getXtMy(lib);   \
+    lib->priv.w.needed = 2; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libX11.so.6"); \
+    lib->priv.w.neededlibs[1] = strdup("libXext.so.6");
+
+#define CUSTOM_FINI \
+    freeXtMy(lib->priv.w.p2); \
+    free(lib->priv.w.p2);
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibxt_private.h b/src/wrapped/wrappedlibxt_private.h
new file mode 100755
index 00000000..20feb4e3
--- /dev/null
+++ b/src/wrapped/wrappedlibxt_private.h
@@ -0,0 +1,444 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+//GO(XtAddActions, 
+//GO(XtAddCallback, 
+//GO(_XtAddCallback, 
+//GO(_XtAddCallbackOnce, 
+//GO(XtAddCallbacks, 
+//GO(XtAddConverter, 
+//GO(_XtAddDefaultConverters, 
+GOM(XtAddEventHandler, vFEpuipp)
+//GO(_XtAddEventSeqToStateTree, 
+//GO(XtAddExposureToRegion, 
+//GO(XtAddGrab, 
+//GO(XtAddInput, 
+//GO(XtAddRawEventHandler, 
+//GO(_XtAddShellToHookObj, 
+//GO(XtAddSignal, 
+//GO(XtAddTimeOut, 
+//GO(_XtAddTMConverters, 
+//GO(XtAddWorkProc, 
+//GO(XtAllocateGC, 
+//GO(_XtAllocError, 
+//GO(_XtAllocTMContext, 
+//GO(_XtAllocWWTable, 
+//GO(XtAppAddActionHook, 
+//GO(XtAppAddActions, 
+//GO(XtAppAddBlockHook, 
+//GO(XtAppAddConverter, 
+//GO(XtAppAddInput, 
+//GO(XtAppAddSignal, 
+//GO(XtAppAddTimeOut, 
+//GO(XtAppAddWorkProc, 
+GO(XtAppCreateShell, pFpppppu)
+//GO(_XtAppCreateShell, 
+//GO(XtAppError, 
+//GO(XtAppErrorMsg, 
+//GO(XtAppGetErrorDatabase, 
+//GO(XtAppGetErrorDatabaseText, 
+//GO(XtAppGetExitFlag, 
+//GO(XtAppGetSelectionTimeout, 
+//GO(_XtAppInit, 
+//GO(XtAppInitialize, 
+//GO(XtAppLock, 
+//GO(XtAppMainLoop, 
+//GO(XtAppNextEvent, 
+//GO(XtAppPeekEvent, 
+GO(XtAppPending, pFp)
+GO(XtAppProcessEvent, vFpu)
+//GO(XtAppReleaseCacheRefs, 
+//GO(XtAppSetErrorHandler, 
+//GO(XtAppSetErrorMsgHandler, 
+//GO(XtAppSetExitFlag, 
+GO(XtAppSetFallbackResources, vFpp)
+//GO(XtAppSetSelectionTimeout, 
+//GO(XtAppSetTypeConverter, 
+//GO(XtAppSetWarningHandler, 
+//GO(XtAppSetWarningMsgHandler, 
+//GO(XtAppUnlock, 
+//GO(XtAppWarning, 
+//GO(XtAppWarningMsg, 
+//GO(XtAugmentTranslations, 
+//GO(_XtBindActions, 
+//GO(XtBuildEventMask, 
+//GO(_XtBuildKeysymTables, 
+//GO(_XtCacheFlushTag, 
+//GO(XtCallAcceptFocus, 
+//GO(XtCallActionProc, 
+//GO(XtCallbackExclusive, 
+//GO(XtCallbackNone, 
+//GO(XtCallbackNonexclusive, 
+//GO(XtCallbackPopdown, 
+//GO(XtCallbackReleaseCacheRef, 
+//GO(XtCallbackReleaseCacheRefList, 
+//GO(XtCallCallbackList, 
+//GO(XtCallCallbacks, 
+//GO(_XtCallConditionalCallbackList, 
+//GO(XtCallConverter, 
+//GO(XtCalloc, 
+//GO(__XtCalloc, 
+//GO(XtCancelSelectionRequest, 
+//GO(XtChangeManagedSet, 
+//GO(_XtCheckServerGrabsOnWidget, 
+//GO(_XtCheckSubclassFlag, 
+//GO(XtClass, 
+//GO(_XtClearAncestorCache, 
+//GO(XtCloseDisplay, 
+//GO(_XtCloseDisplays, 
+//GO(_XtCompileCallbackList, 
+//GO(_XtCompileResourceList, 
+//GO(_XtComputeLateBindings, 
+GO(XtConfigureWidget, vFpiiuuu)
+//GO(_XtConstraintResDependencies, 
+//GO(XtConvert, 
+//GO(_XtConvert, 
+//GO(XtConvertAndStore, 
+//GO(XtConvertCase, 
+//GO(_XtConvertInitialize, 
+//GO(_XtConvertTypeToMask, 
+//GO(_XtCopyFromArg, 
+//GO(_XtCopyFromParent, 
+//GO(_XtCopyToArg, 
+//GO(_XtCountVaList, 
+GO(XtCreateApplicationContext, pFv)
+//GO(XtCreateApplicationShell, 
+//GO(_XtCreateHookObj, 
+//GO(_XtCreateIndirectionTable, 
+//GO(XtCreateManagedWidget, 
+//GO(XtCreatePopupShell, 
+//GO(_XtCreatePopupShell, 
+//GO(XtCreateSelectionRequest, 
+//GO(XtCreateWidget, 
+//GO(_XtCreateWidget, 
+//GO(XtCreateWindow, 
+//GO(_XtCreateXlations, 
+//GO(XtCvtColorToPixel, 
+//GO(XtCvtIntToBool, 
+//GO(XtCvtIntToBoolean, 
+//GO(XtCvtIntToColor, 
+//GO(XtCvtIntToFloat, 
+//GO(XtCvtIntToFont, 
+//GO(XtCvtIntToPixel, 
+//GO(XtCvtIntToPixmap, 
+//GO(XtCvtIntToShort, 
+//GO(XtCvtIntToUnsignedChar, 
+//GO(_XtCvtMergeTranslations, 
+//GO(XtCvtStringToAcceleratorTable, 
+//GO(XtCvtStringToAtom, 
+//GO(XtCvtStringToBool, 
+//GO(XtCvtStringToBoolean, 
+//GO(XtCvtStringToCommandArgArray, 
+//GO(XtCvtStringToCursor, 
+//GO(XtCvtStringToDimension, 
+//GO(XtCvtStringToDirectoryString, 
+//GO(XtCvtStringToDisplay, 
+//GO(XtCvtStringToFile, 
+//GO(XtCvtStringToFloat, 
+//GO(XtCvtStringToFont, 
+//GO(XtCvtStringToFontSet, 
+//GO(XtCvtStringToFontStruct, 
+//GO(XtCvtStringToGravity, 
+//GO(XtCvtStringToInitialState, 
+//GO(XtCvtStringToInt, 
+//GO(XtCvtStringToPixel, 
+//GO(XtCvtStringToRestartStyle, 
+//GO(XtCvtStringToShort, 
+//GO(XtCvtStringToTranslationTable, 
+//GO(XtCvtStringToUnsignedChar, 
+//GO(XtCvtStringToVisual, 
+//GO(XtDatabase, 
+//GO(_XtDefaultAppContext, 
+//GO(_XtDefaultError, 
+//GO(_XtDefaultErrorMsg, 
+//GO(_XtDefaultWarning, 
+//GO(_XtDefaultWarningMsg, 
+//GO(_XtDependencies, 
+//GO(_XtDestroyAppContexts, 
+GO(XtDestroyApplicationContext, vFp)
+//GO(XtDestroyGC, 
+//GO(_XtDestroyServerGrabs, 
+//GO(_XtDestroyTMData, 
+GO(XtDestroyWidget, vFp)
+//GO(XtDirectConvert, 
+//GO(XtDisownSelection, 
+//GO(XtDispatchEvent, 
+//GO(XtDispatchEventToWidget, 
+GO(XtDisplay, pFp)
+//GO(_XtDisplayAccelerators, 
+//GO(XtDisplayInitialize, 
+//GO(_XtDisplayInitialize, 
+//GO(_XtDisplayInstalledAccelerators, 
+//GO(XtDisplayOfObject, 
+//GO(XtDisplayStringConversionWarning, 
+GO(XtDisplayToApplicationContext, pFp)
+//GO(_XtDisplayTranslations, 
+//GO(_XtDoFreeBindings, 
+//GO(_XtDoPhase2Destroy, 
+//GO(XtError, 
+//GO(XtErrorMsg, 
+//GO(_XtEventInitialize, 
+//GO(_XtExtensionSelect, 
+//GO(_XtFillAncestorList, 
+//GO(XtFindFile, 
+//GO(_XtFindRemapWidget, 
+//GO(XtFree, 
+//GO(_XtFreeActions, 
+//GO(_XtFreeArgList, 
+//GO(_XtFreeConverterTable, 
+//GO(_XtFreeEventTable, 
+//GO(_XtFreePerWidgetInput, 
+//GO(_XtFreeTranslations, 
+//GO(_XtFreeWWTable, 
+//GO(_XtGClistFree, 
+//GO(XtGetActionKeysym, 
+//GO(XtGetActionList, 
+//GO(XtGetApplicationNameAndClass, 
+//GO(XtGetApplicationResources, 
+//GO(_XtGetApplicationResources, 
+//GO(_XtGetCallbackList, 
+//GO(XtGetClassExtension, 
+//GO(XtGetConstraintResourceList, 
+//GO(XtGetDisplays, 
+//GO(XtGetErrorDatabase, 
+//GO(XtGetErrorDatabaseText, 
+//GO(XtGetGC, 
+//GO(XtGetKeyboardFocusWidget, 
+//GO(XtGetKeysymTable, 
+//GO(_XtGetModifierIndex, 
+//GO(XtGetMultiClickTime, 
+//GO(_XtGetPerDisplay, 
+//GO(_XtGetPerDisplayInput, 
+//GO(_XtGetPerWidgetInput, 
+//GO(_XtGetProcessContext, 
+//GO(_XtGetQuarkIndex, 
+//GO(XtGetResourceList, 
+//GO(_XtGetResources, 
+//GO(XtGetSelectionParameters, 
+//GO(XtGetSelectionRequest, 
+//GO(XtGetSelectionTimeout, 
+//GO(XtGetSelectionValue, 
+//GO(XtGetSelectionValueIncremental, 
+//GO(XtGetSelectionValues, 
+//GO(XtGetSelectionValuesIncremental, 
+//GO(XtGetSubresources, 
+//GO(_XtGetSubresources, 
+//GO(XtGetSubvalues, 
+//GO(_XtGetTranslationValue, 
+//GO(_XtGetTypeIndex, 
+//GO(_XtGetUserName, 
+//GO(XtGetValues, 
+GO(XtGrabButton, vFpipiuiipp)
+//GO(_XtGrabInitialize, 
+GO(XtGrabKey, vFpppiii)
+GO(XtGrabKeyboard, iFpiiiu)
+GO(XtGrabPointer, iFpiuiipp)
+//GO(_XtHandleFocus, 
+//GO(XtHasCallbacks, 
+//GO(_XtHeapAlloc, 
+//GO(_XtHeapFree, 
+//GO(_XtHeapInit, 
+//GO(XtHooksOfDisplay, 
+//GO(_XtInherit, 
+//GO(XtInitialize, 
+//GO(_XtInitializeActionData, 
+//GO(XtInitializeWidgetClass, 
+//GO(XtInsertEventHandler, 
+//GO(XtInsertEventTypeHandler, 
+//GO(XtInsertRawEventHandler, 
+//GO(XtInstallAccelerators, 
+//GO(XtInstallAllAccelerators, 
+//GO(_XtInstallTranslations, 
+//GO(XtIsApplicationShell, 
+//GO(XtIsComposite, 
+//GO(XtIsConstraint, 
+//GO(_XtIsHookObject, 
+//GO(XtIsManaged, 
+//GO(XtIsObject, 
+//GO(XtIsOverrideShell, 
+GO(XtIsRealized, iFp)
+//GO(XtIsRectObj, 
+//GO(XtIsSensitive, 
+//GO(XtIsSessionShell, 
+//GO(XtIsShell, 
+//GO(XtIsSubclass, 
+//GO(_XtIsSubclassOf, 
+//GO(XtIsTopLevelShell, 
+//GO(XtIsTransientShell, 
+//GO(XtIsVendorShell, 
+//GO(XtIsWidget, 
+//GO(XtIsWMShell, 
+//GO(XtKeysymToKeycodeList, 
+//GO(XtLastEventProcessed, 
+//GO(XtLastTimestampProcessed, 
+//GO(XtMainLoop, 
+//GO(XtMakeGeometryRequest, 
+//GO(_XtMakeGeometryRequest, 
+//GO(XtMakeResizeRequest, 
+//GO(XtMalloc, 
+//GO(__XtMalloc, 
+GO(XtManageChild, vFp)
+//GO(XtManageChildren, 
+//GO(XtMapWidget, 
+//GO(_XtMatchAtom, 
+//GO(_XtMatchUsingDontCareMods, 
+//GO(_XtMatchUsingStandardMods, 
+//GO(XtMenuPopupAction, 
+//GO(XtMergeArgLists, 
+//GO(_XtMergeTranslations, 
+GO(XtMoveWidget, vFpii)
+//GO(XtName, 
+//GO(XtNameToWidget, 
+//GO(XtNewString, 
+//GO(XtNextEvent, 
+//GO(XtNoticeSignal, 
+//GO(_XtOnGrabList, 
+//GO(XtOpenApplication, 
+GO(XtOpenDisplay, pFpppppupp)
+//GO(XtOverrideTranslations, 
+//GO(XtOwnSelection, 
+//GO(XtOwnSelectionIncremental, 
+//GO(XtParent, 
+//GO(XtParseAcceleratorTable, 
+//GO(XtParseTranslationTable, 
+//GO(_XtParseTreeToStateTree, 
+//GO(_XtPeekCallback, 
+//GO(XtPeekEvent, 
+//GO(XtPending, 
+GO(XtPopdown, vFp)
+//GO(XtPopup, 
+//GO(_XtPopup, 
+//GO(_XtPopupInitialize, 
+GO(XtPopupSpringLoaded, vFp)
+//GO(_XtPreparseCommandLine, 
+//GO(_XtPrintActions, 
+//GO(_XtPrintEventSeq, 
+//GO(_XtPrintState, 
+//GO(_XtPrintXlations, 
+//GO(XtProcessEvent, 
+//GO(_XtProcessKeyboardEvent, 
+//GO(XtProcessLock, 
+//GO(_XtProcessPointerEvent, 
+//GO(XtProcessUnlock, 
+//GO(XtQueryGeometry, 
+GO(XtRealizeWidget, vFp)
+//GO(XtRealloc, 
+//GO(_XtRefreshMapping, 
+//GO(XtRegisterCaseConverter, 
+GO(XtRegisterDrawable, vFppp)
+//GO(XtRegisterExtensionSelector, 
+//GO(XtRegisterGrabAction, 
+//GO(_XtRegisterGrabs, 
+//GO(_XtRegisterPassiveGrabs, 
+//GO(_XtRegularMatch, 
+//GO(XtReleaseGC, 
+//GO(XtReleasePropertyAtom, 
+//GO(XtRemoveActionHook, 
+//GO(XtRemoveAllCallbacks, 
+//GO(_XtRemoveAllCallbacks, 
+//GO(_XtRemoveAllInputs, 
+//GO(XtRemoveBlockHook, 
+//GO(XtRemoveCallback, 
+//GO(_XtRemoveCallback, 
+//GO(XtRemoveCallbacks, 
+GO(XtRemoveEventHandler, vFpup)     // need to wrap to free event handler?
+//GO(XtRemoveEventTypeHandler, 
+//GO(XtRemoveGrab, 
+//GO(XtRemoveInput, 
+//GO(XtRemoveRawEventHandler, 
+//GO(XtRemoveSignal, 
+//GO(_XtRemoveStateTreeByIndex, 
+GO(XtRemoveTimeOut, vFp)
+//GO(_XtRemoveTranslations, 
+//GO(XtRemoveWorkProc, 
+//GO(XtReservePropertyAtom, 
+GO(XtResizeWidget, vFpuuu)
+GO(XtResizeWindow, vFp)
+//GO(XtResolvePathname, 
+//GO(_XtResourceConfigurationEH, 
+//GO(_XtResourceDependencies, 
+//GO(_XtResourceListInitialize, 
+//GO(XtScreen, 
+//GO(XtScreenDatabase, 
+//GO(XtScreenOfObject, 
+//GO(_XtSendFocusEvent, 
+//GO(XtSendSelectionRequest, 
+//GO(XtSessionGetToken, 
+//GO(XtSessionReturnToken, 
+//GO(_XtSetDefaultConverterTable, 
+//GO(_XtSetDefaultErrorHandlers, 
+//GO(_XtSetDefaultSelectionTimeout, 
+//GO(XtSetErrorHandler, 
+//GO(XtSetErrorMsgHandler, 
+//GO(XtSetEventDispatcher, 
+//GO(XtSetKeyboardFocus, 
+//GO(XtSetKeyTranslator, 
+//GO(XtSetLanguageProc, 
+//GO(XtSetMappedWhenManaged, 
+//GO(XtSetMultiClickTime, 
+//GO(XtSetSelectionParameters, 
+//GO(XtSetSelectionTimeout, 
+//GO(XtSetSensitive, 
+//GO(XtSetSubvalues, 
+//GO(XtSetTypeConverter, 
+GO(XtSetValues, vFppu)
+//GO(XtSetWarningHandler, 
+//GO(XtSetWarningMsgHandler, 
+//GO(XtSetWMColormapWindows, 
+//GO(_XtShellGetCoordinates, 
+//GO(_XtSortPerDisplayList, 
+//GO(XtStringConversionWarning, 
+//GO(XtSuperclass, 
+//GO(_XtTableAddConverter, 
+GO(XtToolkitInitialize, vFv)
+//GO(XtToolkitThreadInitialize, 
+//GO(XtTranslateCoords, 
+//GO(_XtTranslateEvent, 
+//GO(_XtTranslateInitialize, 
+//GO(XtTranslateKey, 
+//GO(XtTranslateKeycode, 
+//GO(_XtTraverseStateTree, 
+//GO(_XtUnbindActions, 
+//GO(_XtUngrabBadGrabs, 
+GO(XtUngrabButton, vFppp)
+GO(XtUngrabKey, vFppp)
+GO(XtUngrabKeyboard, vFpu)
+GO(XtUngrabPointer, vFpu)
+//GO(XtUninstallTranslations, 
+//GO(XtUnmanageChild, 
+//GO(XtUnmanageChildren, 
+//GO(XtUnmapWidget, 
+//GO(_XtUnmergeTranslations, 
+GO(XtUnrealizeWidget, vFp)
+GO(XtUnregisterDrawable, vFpp)
+//GO(XtVaAppCreateShell, 
+//GO(XtVaAppInitialize, 
+//GO(_XtVaAppInitialize, 
+//GO(XtVaCreateArgsList, 
+//GO(XtVaCreateManagedWidget, 
+//GO(XtVaCreatePopupShell, 
+//GO(_XtVaCreateTypedArgList, 
+GO(XtVaCreateWidget, pFppppppppppppppp) // need to wrap and use XtCreateWidget, with a ArgList?
+//GO(XtVaGetApplicationResources, 
+//GO(XtVaGetSubresources, 
+//GO(XtVaGetSubvalues, 
+//GO(XtVaGetValues, 
+//GO(XtVaOpenApplication, 
+//GO(_XtVaOpenApplication, 
+//GO(XtVaSetSubvalues, 
+//GO(XtVaSetValues, 
+//GO(_XtVaToArgList, 
+//GO(_XtVaToTypedArgList, 
+//GO(_XtWaitForSomething, 
+//GO(XtWarning, 
+//GO(XtWarningMsg, 
+//GO(XtWidgetToApplicationContext, 
+GO(XtWindow, pFp)
+//GO(_XtWindowedAncestor, 
+//GO(XtWindowOfObject, 
+GO(XtWindowToWidget, pFpp)
+
+GO(_XtInherit, vFv)
+
+DATA(overrideShellClassRec, 96)    // real size? this is full of Callback function, so maybe wrap at some point?
\ No newline at end of file
diff --git a/src/wrapped/wrappedlibxtst.c b/src/wrapped/wrappedlibxtst.c
new file mode 100755
index 00000000..4fae5d30
--- /dev/null
+++ b/src/wrapped/wrappedlibxtst.c
@@ -0,0 +1,107 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box64context.h"
+#include "emu/x64emu_private.h"
+
+const char* libxtstName = "libXtst.so.6";
+#define LIBNAME libxtst
+
+typedef int (*iFpppp_t)(void*, void*, void*, void*);
+
+#define SUPER() \
+    GO(XRecordEnableContextAsync, iFpppp_t) \
+    GO(XRecordEnableContext, iFpppp_t)      \
+
+typedef struct libxtst_my_s {
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+    // functions
+} libxtst_my_t;
+
+void* getXtstMy(library_t* lib)
+{
+    libxtst_my_t* my = (libxtst_my_t*)calloc(1, sizeof(libxtst_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeXtstMy(void* lib)
+{
+    //libxtst_my_t *my = (libxtst_my_t *)lib;
+}
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)
+
+// XRecordInterceptProc ...
+#define GO(A)   \
+static uintptr_t my_XRecordInterceptProc_fct_##A = 0;                   \
+static void my_XRecordInterceptProc_##A(void* a, void* b)               \
+{                                                                       \
+    RunFunction(my_context, my_XRecordInterceptProc_fct_##A, 2, a, b);  \
+}
+SUPER()
+#undef GO
+static void* find_XRecordInterceptProc_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_XRecordInterceptProc_fct_##A == (uintptr_t)fct) return my_XRecordInterceptProc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_XRecordInterceptProc_fct_##A == 0) {my_XRecordInterceptProc_fct_##A = (uintptr_t)fct; return my_XRecordInterceptProc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libxtst XRecordInterceptProc callback\n");
+    return NULL;
+}
+
+EXPORT int my_XRecordEnableContextAsync(x64emu_t* emu, void* display, void* context, void* cb, void* closure)
+{
+    library_t* lib = GetLibInternal(libxtstName);
+    libxtst_my_t* my = (libxtst_my_t*)lib->priv.w.p2;
+    return my->XRecordEnableContextAsync(display, context, find_XRecordInterceptProc_Fct(cb), closure);
+}
+
+EXPORT int my_XRecordEnableContext(x64emu_t* emu, void* display, void* context, void* cb, void* closure)
+{
+    library_t* lib = GetLibInternal(libxtstName);
+    libxtst_my_t* my = (libxtst_my_t*)lib->priv.w.p2;
+    return my->XRecordEnableContext(display, context, find_XRecordInterceptProc_Fct(cb), closure);
+}
+
+#define CUSTOM_INIT \
+    lib->priv.w.p2 = getXtstMy(lib);   \
+    lib->priv.w.needed = 2; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libX11.so.6"); \
+    lib->priv.w.neededlibs[1] = strdup("libXext.so.6");
+
+#define CUSTOM_FINI \
+    freeXtstMy(lib->priv.w.p2); \
+    free(lib->priv.w.p2);
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedlibxtst_private.h b/src/wrapped/wrappedlibxtst_private.h
new file mode 100755
index 00000000..ce154256
--- /dev/null
+++ b/src/wrapped/wrappedlibxtst_private.h
@@ -0,0 +1,33 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(XRecordAllocRange, pFv)
+GO(XRecordCreateContext, LFpipipi)
+GO(XRecordDisableContext, iFpL)
+GOM(XRecordEnableContext, iFEpppp)
+GOM(XRecordEnableContextAsync, iFEpppp)
+GO(XRecordFreeContext, iFpL)
+GO(XRecordFreeData, vFp)
+GO(XRecordFreeState, vFp)
+GO(XRecordGetContext, iFpLp)
+GO(XRecordIdBaseMask, uFp)
+GO(XRecordProcessReplies, vFp)
+GO(XRecordQueryVersion, iFpii)
+GO(XRecordRegisterClients, iFpLipipi)
+GO(XRecordUnregisterClients, iFpLpi)
+GO(XTestCompareCurrentCursorWithWindow, iFpp)
+GO(XTestCompareCursorWithWindow, iFppp)
+GO(XTestDiscard, iFp)
+GO(XTestFakeButtonEvent, iFpuiL)
+GO(XTestFakeDeviceButtonEvent, iFppuipiL)
+GO(XTestFakeDeviceKeyEvent, iFppuipiL)
+GO(XTestFakeDeviceMotionEvent, iFppiipiL)
+GO(XTestFakeKeyEvent, iFpuiL)
+GO(XTestFakeMotionEvent, iFpiiiL)
+GO(XTestFakeProximityEvent, iFppipiL)
+GO(XTestFakeRelativeMotionEvent, iFpiiiL)
+GO(XTestGrabControl, iFpi)
+GO(XTestQueryExtension, iFppppp)
+GO(XTestSetGContextOfGC, vFpp)
+GO(XTestSetVisualIDOfVisual, vFpp)