about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-04 17:37:07 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-04 17:37:07 +0200
commit088720db2270207a8ddd5e57eb92c33550ea737c (patch)
tree420d0a8d553dd4864fb02276f47fe600ae07f0db /src
parent3d6ecc064fbcc2691b4ac188b5d1a7cd713509c1 (diff)
downloadbox64-088720db2270207a8ddd5e57eb92c33550ea737c.tar.gz
box64-088720db2270207a8ddd5e57eb92c33550ea737c.zip
[BOX32][WRAPPER] Added wraped mostly empty 32bits libXext
Diffstat (limited to 'src')
-rw-r--r--src/library_list_32.h13
-rw-r--r--src/wrapped32/generated/functions_list.txt10
-rw-r--r--src/wrapped32/generated/wrappedlibxextdefs32.h8
-rw-r--r--src/wrapped32/generated/wrappedlibxexttypes32.h23
-rw-r--r--src/wrapped32/generated/wrappedlibxextundefs32.h8
-rw-r--r--src/wrapped32/generated/wrapper32.c6
-rw-r--r--src/wrapped32/generated/wrapper32.h3
-rw-r--r--src/wrapped32/wrappedlibxext.c399
-rw-r--r--src/wrapped32/wrappedlibxext_private.h139
-rw-r--r--src/wrapped32/wrappedlibxrandr.c3
-rw-r--r--src/wrapped32/wrappedlibxxf86vm.c4
11 files changed, 611 insertions, 5 deletions
diff --git a/src/library_list_32.h b/src/library_list_32.h
index 300fac33..f8c1fa2a 100644
--- a/src/library_list_32.h
+++ b/src/library_list_32.h
@@ -28,14 +28,25 @@ GO("libasound.so.2", libasound)
 GO("libasound.so", libasound)
 GO("libfreetype.so.6", freetype)
 GO("libfontconfig.so.1", fontconfig)
+#ifdef ANDROID
+GO("libX11.so", libx11)
+GO("libXext.so", libxext)
+GO("libXfixes.so", libxfixes)
+GO("libXrender.so", libxrender)
+GO("libXcursor.so", libxcursor)
+GO("libXrandr.so", libxrandr)
+GO("libxrandr.so", libxrandr)
+GO("libXxf86vm.so", libxxf86vm)
+#else
 GO("libX11.so.6", libx11)
+GO("libXext.so.6", libxext)
 GO("libXfixes.so.3", libxfixes)
 GO("libXrender.so.1", libxrender)
 GO("libXcursor.so.1", libxcursor)
 GO("libXrandr.so.2", libxrandr)
 GO("libxrandr.so.2", libxrandr)
 GO("libXxf86vm.so.1", libxxf86vm)
-
+#endif
 GO("libopenal.so.1", openal)
 GO("libopenal.so.0", openal)
 GO("libopenal.so", openal)
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index a4163f7a..81215d3e 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -957,6 +957,7 @@
 #() iFEpLiipV -> iFEpLiipV
 #() iFEpLiLpV -> iFEpLiLpV
 #() iFEpppppp -> iFEpppppp
+#() iFEXLpiiL -> iFEXLpiiL
 #() iFEXLpppp -> iFEXLpppp
 #() iFuiiiuup -> iFuiiiuup
 #() iFpWCiWCi -> iFpWCiWCi
@@ -1038,6 +1039,7 @@
 #() uFuulpiuiuf -> uFuulpiuiuf
 #() pFEuiiiuuuu -> pFEuiiiuuuu
 #() pFEXLiiuuLi -> pFEXLiiuuLi
+#() pFEXpuippuu -> pFEXpuippuu
 #() vFEXLpppippp -> vFEXLpppippp
 #() vFiiiiiiiiii -> vFiiiiiiiiii
 #() vFiiiiiiiiui -> vFiiiiiiiiui
@@ -1088,6 +1090,7 @@
 #() vFuuiiiiiiiuup -> vFuuiiiiiiiuup
 #() vFuuuuuuuuuuuu -> vFuuuuuuuuuuuu
 #() vFffffffffffff -> vFffffffffffff
+#() iFEXLppiiiiuui -> iFEXLppiiiiuui
 #() pFEXLiiuuLipii -> pFEXLiiuuLipii
 #() iFXLLlliLBL_pBL_BL_Bp_ -> iFXLLlliLBpBBB
 #() vFuiiiiiiiiiuup -> vFuiiiiiiiiiuup
@@ -1647,6 +1650,13 @@ wrappedlibx11:
 - LFXLiiuuuiupLp:
   - XCreateWindow
 wrappedlibxcursor:
+wrappedlibxext:
+- iFXLpiiL:
+  - XShmGetImage
+- pFXpuippuu:
+  - XShmCreateImage
+- iFXLppiiiiuui:
+  - XShmPutImage
 wrappedlibxfixes:
 wrappedlibxrandr:
 - pFXL:
diff --git a/src/wrapped32/generated/wrappedlibxextdefs32.h b/src/wrapped32/generated/wrappedlibxextdefs32.h
new file mode 100644
index 00000000..459b2b45
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibxextdefs32.h
@@ -0,0 +1,8 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibxextDEFS32_H_
+#define __wrappedlibxextDEFS32_H_
+
+
+#endif // __wrappedlibxextDEFS32_H_
diff --git a/src/wrapped32/generated/wrappedlibxexttypes32.h b/src/wrapped32/generated/wrappedlibxexttypes32.h
new file mode 100644
index 00000000..ea95bec0
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibxexttypes32.h
@@ -0,0 +1,23 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibxextTYPES32_H_
+#define __wrappedlibxextTYPES32_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef int32_t (*iFXLpiiL_t)(void*, uintptr_t, void*, int32_t, int32_t, uintptr_t);
+typedef void* (*pFXpuippuu_t)(void*, void*, uint32_t, int32_t, void*, void*, uint32_t, uint32_t);
+typedef int32_t (*iFXLppiiiiuui_t)(void*, uintptr_t, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(XShmGetImage, iFXLpiiL_t) \
+	GO(XShmCreateImage, pFXpuippuu_t) \
+	GO(XShmPutImage, iFXLppiiiiuui_t)
+
+#endif // __wrappedlibxextTYPES32_H_
diff --git a/src/wrapped32/generated/wrappedlibxextundefs32.h b/src/wrapped32/generated/wrappedlibxextundefs32.h
new file mode 100644
index 00000000..e7f1599e
--- /dev/null
+++ b/src/wrapped32/generated/wrappedlibxextundefs32.h
@@ -0,0 +1,8 @@
+/*********************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.2.2) *
+ *********************************************************************/
+#ifndef __wrappedlibxextUNDEFS32_H_
+#define __wrappedlibxextUNDEFS32_H_
+
+
+#endif // __wrappedlibxextUNDEFS32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index 00ec8ca1..baedb79c 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -1047,6 +1047,7 @@ typedef void (*vFpddiidd_t)(void*, double, double, int32_t, int32_t, double, dou
 typedef int32_t (*iFEpLiipV_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, void*, void*);
 typedef int32_t (*iFEpLiLpV_t)(x64emu_t*, void*, uintptr_t, int32_t, uintptr_t, void*, void*);
 typedef int32_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFEXLpiiL_t)(x64emu_t*, void*, uintptr_t, void*, int32_t, int32_t, uintptr_t);
 typedef int32_t (*iFEXLpppp_t)(x64emu_t*, void*, uintptr_t, void*, void*, void*, void*);
 typedef int32_t (*iFuiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
 typedef int32_t (*iFpWCiWCi_t)(void*, uint16_t, uint8_t, int32_t, uint16_t, uint8_t, int32_t);
@@ -1128,6 +1129,7 @@ typedef int32_t (*iFXLLiiuuii_t)(void*, uintptr_t, uintptr_t, int32_t, int32_t,
 typedef uint32_t (*uFuulpiuiuf_t)(uint32_t, uint32_t, intptr_t, void*, int32_t, uint32_t, int32_t, uint32_t, float);
 typedef void* (*pFEuiiiuuuu_t)(x64emu_t*, uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFEXLiiuuLi_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t);
+typedef void* (*pFEXpuippuu_t)(x64emu_t*, void*, void*, uint32_t, int32_t, void*, void*, uint32_t, uint32_t);
 typedef void (*vFEXLpppippp_t)(x64emu_t*, void*, uintptr_t, void*, void*, void*, int32_t, void*, void*, void*);
 typedef void (*vFiiiiiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFiiiiiiiiui_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, int32_t);
@@ -1178,6 +1180,7 @@ typedef void (*vFuuiiiiiiiuip_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t,
 typedef void (*vFuuiiiiiiiuup_t)(uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
 typedef void (*vFuuuuuuuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFffffffffffff_t)(float, float, float, float, float, float, float, float, float, float, float, float);
+typedef int32_t (*iFEXLppiiiiuui_t)(x64emu_t*, void*, uintptr_t, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t);
 typedef void* (*pFEXLiiuuLipii_t)(x64emu_t*, void*, uintptr_t, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t, void*, int32_t, int32_t);
 typedef int32_t (*iFXLLlliLBL_pBL_BL_Bp__t)(void*, uintptr_t, uintptr_t, intptr_t, intptr_t, int32_t, uintptr_t, struct_L_t*, void*, struct_L_t*, struct_L_t*, struct_p_t*);
 typedef void (*vFuiiiiiiiiiuup_t)(uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*);
@@ -2169,6 +2172,7 @@ void vFpddiidd_32(x64emu_t *emu, uintptr_t fcn) { vFpddiidd_t fn = (vFpddiidd_t)
 void iFEpLiipV_32(x64emu_t *emu, uintptr_t fcn) { iFEpLiipV_t fn = (iFEpLiipV_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptrv(R_ESP + 24)); }
 void iFEpLiLpV_32(x64emu_t *emu, uintptr_t fcn) { iFEpLiLpV_t fn = (iFEpLiLpV_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20), from_ptrv(R_ESP + 24)); }
 void iFEpppppp_32(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
+void iFEXLpiiL_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpiiL_t fn = (iFEXLpiiL_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ulong(from_ptri(ulong_t, R_ESP + 24))); }
 void iFEXLpppp_32(x64emu_t *emu, uintptr_t fcn) { iFEXLpppp_t fn = (iFEXLpppp_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24)); }
 void iFuiiiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiiiuup_t fn = (iFuiiiuup_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptriv(R_ESP + 28)); }
 void iFpWCiWCi_32(x64emu_t *emu, uintptr_t fcn) { iFpWCiWCi_t fn = (iFpWCiWCi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint16_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint16_t, R_ESP + 20), from_ptri(uint8_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28)); }
@@ -2250,6 +2254,7 @@ void iFXLLiiuuii_32(x64emu_t *emu, uintptr_t fcn) { iFXLLiiuuii_t fn = (iFXLLiiu
 void uFuulpiuiuf_32(x64emu_t *emu, uintptr_t fcn) { uFuulpiuiuf_t fn = (uFuulpiuiuf_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_long(from_ptri(long_t, R_ESP + 12)), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(float, R_ESP + 36)); }
 void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fcn) { pFEuiiiuuuu_t fn = (pFEuiiiuuuu_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32))); }
 void pFEXLiiuuLi_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLi_t fn = (pFEXLiiuuLi_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32))); }
+void pFEXpuippuu_32(x64emu_t *emu, uintptr_t fcn) { pFEXpuippuu_t fn = (pFEXpuippuu_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20), from_ptriv(R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32))); }
 void vFEXLpppippp_32(x64emu_t *emu, uintptr_t fcn) { vFEXLpppippp_t fn = (vFEXLpppippp_t)fcn; fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptriv(R_ESP + 28), from_ptriv(R_ESP + 32), from_ptriv(R_ESP + 36)); }
 void vFiiiiiiiiii_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiii_t fn = (vFiiiiiiiiii_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40)); }
 void vFiiiiiiiiui_32(x64emu_t *emu, uintptr_t fcn) { vFiiiiiiiiui_t fn = (vFiiiiiiiiui_t)fcn; fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40)); }
@@ -2300,6 +2305,7 @@ void vFuuiiiiiiiuip_32(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiiiiuip_t fn = (vF
 void vFuuiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuuiiiiiiiuup_t fn = (vFuuiiiiiiiuup_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptriv(R_ESP + 48)); }
 void vFuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fcn) { vFuuuuuuuuuuuu_t fn = (vFuuuuuuuuuuuu_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ptri(uint32_t, R_ESP + 28), from_ptri(uint32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48)); }
 void vFffffffffffff_32(x64emu_t *emu, uintptr_t fcn) { vFffffffffffff_t fn = (vFffffffffffff_t)fcn; fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16), from_ptri(float, R_ESP + 20), from_ptri(float, R_ESP + 24), from_ptri(float, R_ESP + 28), from_ptri(float, R_ESP + 32), from_ptri(float, R_ESP + 36), from_ptri(float, R_ESP + 40), from_ptri(float, R_ESP + 44), from_ptri(float, R_ESP + 48)); }
+void iFEXLppiiiiuui_32(x64emu_t *emu, uintptr_t fcn) { iFEXLppiiiiuui_t fn = (iFEXLppiiiiuui_t)fcn; R_EAX = fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(uint32_t, R_ESP + 36), from_ptri(uint32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44)); }
 void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fcn) { pFEXLiiuuLipii_t fn = (pFEXLiiuuLipii_t)fcn; R_EAX = to_ptrv(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20), from_ptri(uint32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), from_ptri(int32_t, R_ESP + 32), from_ptriv(R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(int32_t, R_ESP + 44))); }
 void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fcn) { iFXLLlliLBL_pBL_BL_Bp__t fn = (iFXLLlliLBL_pBL_BL_Bp__t)fcn; struct_L_t arg_32={0}; struct_L_t arg_40={0}; struct_L_t arg_44={0}; struct_p_t arg_48={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_long(from_ptri(long_t, R_ESP + 16)), from_long(from_ptri(long_t, R_ESP + 20)), from_ptri(int32_t, R_ESP + 24), from_ulong(from_ptri(ulong_t, R_ESP + 28)), *(ptr_t*)(from_ptr((R_ESP + 32))) ? &arg_32 : NULL, from_ptriv(R_ESP + 36), *(ptr_t*)(from_ptr((R_ESP + 40))) ? &arg_40 : NULL, *(ptr_t*)(from_ptr((R_ESP + 44))) ? &arg_44 : NULL, *(ptr_t*)(from_ptr((R_ESP + 48))) ? &arg_48 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 32)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 32))), &arg_32); if (*(ptr_t*)(from_ptr((R_ESP + 40)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 40))), &arg_40); if (*(ptr_t*)(from_ptr((R_ESP + 44)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 44))), &arg_44); if (*(ptr_t*)(from_ptr((R_ESP + 48)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 48))), &arg_48); }
 void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiiuup_t fn = (vFuiiiiiiiiiuup_t)fcn; fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20), from_ptri(int32_t, R_ESP + 24), from_ptri(int32_t, R_ESP + 28), from_ptri(int32_t, R_ESP + 32), from_ptri(int32_t, R_ESP + 36), from_ptri(int32_t, R_ESP + 40), from_ptri(uint32_t, R_ESP + 44), from_ptri(uint32_t, R_ESP + 48), from_ptriv(R_ESP + 52)); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index db428ed4..b1ba2016 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -998,6 +998,7 @@ void vFpddiidd_32(x64emu_t *emu, uintptr_t fnc);
 void iFEpLiipV_32(x64emu_t *emu, uintptr_t fnc);
 void iFEpLiLpV_32(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppp_32(x64emu_t *emu, uintptr_t fnc);
+void iFEXLpiiL_32(x64emu_t *emu, uintptr_t fnc);
 void iFEXLpppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiiiuup_32(x64emu_t *emu, uintptr_t fnc);
 void iFpWCiWCi_32(x64emu_t *emu, uintptr_t fnc);
@@ -1079,6 +1080,7 @@ void iFXLLiiuuii_32(x64emu_t *emu, uintptr_t fnc);
 void uFuulpiuiuf_32(x64emu_t *emu, uintptr_t fnc);
 void pFEuiiiuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXLiiuuLi_32(x64emu_t *emu, uintptr_t fnc);
+void pFEXpuippuu_32(x64emu_t *emu, uintptr_t fnc);
 void vFEXLpppippp_32(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiiiiii_32(x64emu_t *emu, uintptr_t fnc);
 void vFiiiiiiiiui_32(x64emu_t *emu, uintptr_t fnc);
@@ -1129,6 +1131,7 @@ void vFuuiiiiiiiuip_32(x64emu_t *emu, uintptr_t fnc);
 void vFuuiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc);
 void vFuuuuuuuuuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void vFffffffffffff_32(x64emu_t *emu, uintptr_t fnc);
+void iFEXLppiiiiuui_32(x64emu_t *emu, uintptr_t fnc);
 void pFEXLiiuuLipii_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLLlliLBL_pBL_BL_Bp__32(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiiiuup_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedlibxext.c b/src/wrapped32/wrappedlibxext.c
new file mode 100644
index 00000000..aadac165
--- /dev/null
+++ b/src/wrapped32/wrappedlibxext.c
@@ -0,0 +1,399 @@
+#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 "wrapper32.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box32context.h"
+#include "emu/x64emu_private.h"
+
+#ifdef ANDROID
+    static const char* libxextName = "libXext.so";
+#else
+    static const char* libxextName = "libXext.so.6";
+#endif
+
+#define LIBNAME libxext
+
+typedef struct _XImage XImage;
+void BridgeImageFunc(x64emu_t *emu, XImage *img);
+void UnbridgeImageFunc(x64emu_t *emu, XImage *img);
+typedef int (*XextErrorHandler)(void *, void *, void*);
+
+typedef struct my32_XExtensionHooks {
+    int (*create_gc)(void*, uint32_t, void*);
+    int (*copy_gc)(void*, uint32_t, void*);
+    int (*flush_gc)(void*, uint32_t, void*);
+    int (*free_gc)(void*, uint32_t, void*);
+    int (*create_font)(void*, void*, void*);
+    int (*free_font)(void*, void*, void*);
+    int (*close_display)(void*, void*);
+    int (*wire_to_event)(void*, void*, void*);
+    int (*event_to_wire)(void*, void*, void*);
+    int (*error)(void*, void*, void*, int*);
+    char *(*error_string)(void*, int, void*, void*, int);
+} my32_XExtensionHooks;
+
+
+#include "generated/wrappedlibxexttypes32.h"
+
+#include "wrappercallback32.h"
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)
+
+// exterrorhandle ...
+#define GO(A)   \
+static uintptr_t my_exterrorhandle_fct_##A = 0;                                                 \
+static int my_exterrorhandle_##A(void* display, void* ext_name, void* reason)                   \
+{                                                                                               \
+    return RunFunctionFmt(my_exterrorhandle_fct_##A, "ppp", display, ext_name, reason);   \
+}
+SUPER()
+#undef GO
+static void* find_exterrorhandle_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_exterrorhandle_fct_##A == (uintptr_t)fct) return my_exterrorhandle_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_exterrorhandle_fct_##A == 0) {my_exterrorhandle_fct_##A = (uintptr_t)fct; return my_exterrorhandle_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext exterrorhandle callback\n");
+    return NULL;
+}
+static void* reverse_exterrorhandleFct(void* fct)
+{
+    if(!fct) return fct;
+    if(CheckBridged(my_lib->w.bridge, fct))
+        return (void*)CheckBridged(my_lib->w.bridge, fct);
+    #define GO(A) if(my_exterrorhandle_##A == fct) return (void*)my_exterrorhandle_fct_##A;
+    SUPER()
+    #undef GO
+    return (void*)AddBridge(my_lib->w.bridge, iFppp_32, fct, 0, NULL);
+}
+// create_gc ...
+#define GO(A)   \
+static uintptr_t my_create_gc_fct_##A = 0;                          \
+static int my_create_gc_##A(void* a, uint32_t b, void* c)           \
+{                                                                   \
+    return RunFunctionFmt(my_create_gc_fct_##A, "pup", a, b, c);    \
+}
+SUPER()
+#undef GO
+static void* find_create_gc_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_create_gc_fct_##A == (uintptr_t)fct) return my_create_gc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_create_gc_fct_##A == 0) {my_create_gc_fct_##A = (uintptr_t)fct; return my_create_gc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext create_gc callback\n");
+    return NULL;
+}
+// copy_gc ...
+#define GO(A)   \
+static uintptr_t my_copy_gc_fct_##A = 0;                        \
+static int my_copy_gc_##A(void* a, uint32_t b, void* c)         \
+{                                                               \
+    return RunFunctionFmt(my_copy_gc_fct_##A, "pup", a, b, c);  \
+}
+SUPER()
+#undef GO
+static void* find_copy_gc_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_copy_gc_fct_##A == (uintptr_t)fct) return my_copy_gc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_copy_gc_fct_##A == 0) {my_copy_gc_fct_##A = (uintptr_t)fct; return my_copy_gc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext copy_gc callback\n");
+    return NULL;
+}
+// flush_gc ...
+#define GO(A)   \
+static uintptr_t my_flush_gc_fct_##A = 0;                           \
+static int my_flush_gc_##A(void* a, uint32_t b, void* c)            \
+{                                                                   \
+    return RunFunctionFmt(my_flush_gc_fct_##A, "pup", a, b, c);     \
+}
+SUPER()
+#undef GO
+static void* find_flush_gc_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_flush_gc_fct_##A == (uintptr_t)fct) return my_flush_gc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_flush_gc_fct_##A == 0) {my_flush_gc_fct_##A = (uintptr_t)fct; return my_flush_gc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext flush_gc callback\n");
+    return NULL;
+}
+// free_gc ...
+#define GO(A)   \
+static uintptr_t my_free_gc_fct_##A = 0;                           \
+static int my_free_gc_##A(void* a, uint32_t b, void* c)            \
+{                                                                  \
+    return RunFunctionFmt(my_free_gc_fct_##A, "pup", a, b, c);     \
+}
+SUPER()
+#undef GO
+static void* find_free_gc_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_free_gc_fct_##A == (uintptr_t)fct) return my_free_gc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_free_gc_fct_##A == 0) {my_free_gc_fct_##A = (uintptr_t)fct; return my_free_gc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext free_gc callback\n");
+    return NULL;
+}
+// create_font ...
+#define GO(A)   \
+static uintptr_t my_create_font_fct_##A = 0;                            \
+static int my_create_font_##A(void* a, void* b, void* c)                \
+{                                                                       \
+    return RunFunctionFmt(my_create_font_fct_##A, "ppp", a, b, c);      \
+}
+SUPER()
+#undef GO
+static void* find_create_font_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_create_font_fct_##A == (uintptr_t)fct) return my_create_font_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_create_font_fct_##A == 0) {my_create_font_fct_##A = (uintptr_t)fct; return my_create_font_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext create_font callback\n");
+    return NULL;
+}
+// free_font ...
+#define GO(A)   \
+static uintptr_t my_free_font_fct_##A = 0;                            \
+static int my_free_font_##A(void* a, void* b, void* c)                \
+{                                                                     \
+    return RunFunctionFmt(my_free_font_fct_##A, "ppp", a, b, c);      \
+}
+SUPER()
+#undef GO
+static void* find_free_font_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_free_font_fct_##A == (uintptr_t)fct) return my_free_font_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_free_font_fct_##A == 0) {my_free_font_fct_##A = (uintptr_t)fct; return my_free_font_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext free_font callback\n");
+    return NULL;
+}
+// close_display ...
+#define GO(A)   \
+static uintptr_t my_close_display_fct_##A = 0;                  \
+static int my_close_display_##A(void* a, void* b)               \
+{                                                               \
+    return RunFunctionFmt(my_close_display_fct_##A, "pp", a, b);\
+}
+SUPER()
+#undef GO
+static void* find_close_display_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_close_display_fct_##A == (uintptr_t)fct) return my_close_display_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_close_display_fct_##A == 0) {my_close_display_fct_##A = (uintptr_t)fct; return my_close_display_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext close_display callback\n");
+    return NULL;
+}
+// wire_to_event ...
+#define GO(A)   \
+static uintptr_t my_wire_to_event_fct_##A = 0;                          \
+static int my_wire_to_event_##A(void* a, void* b, void* c)              \
+{                                                                       \
+    return RunFunctionFmt(my_wire_to_event_fct_##A, "ppp", a, b, c);    \
+}
+SUPER()
+#undef GO
+static void* find_wire_to_event_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_wire_to_event_fct_##A == (uintptr_t)fct) return my_wire_to_event_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_wire_to_event_fct_##A == 0) {my_wire_to_event_fct_##A = (uintptr_t)fct; return my_wire_to_event_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext wire_to_event callback\n");
+    return NULL;
+}
+// event_to_wire ...
+#define GO(A)   \
+static uintptr_t my_event_to_wire_fct_##A = 0;                          \
+static int my_event_to_wire_##A(void* a, void* b, void* c)              \
+{                                                                       \
+    return RunFunctionFmt(my_event_to_wire_fct_##A, "ppp", a, b, c);    \
+}
+SUPER()
+#undef GO
+static void* find_event_to_wire_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_event_to_wire_fct_##A == (uintptr_t)fct) return my_event_to_wire_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_event_to_wire_fct_##A == 0) {my_event_to_wire_fct_##A = (uintptr_t)fct; return my_event_to_wire_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext event_to_wire callback\n");
+    return NULL;
+}
+// error ...
+#define GO(A)   \
+static uintptr_t my_error_fct_##A = 0;                              \
+static int my_error_##A(void* a, void* b, void* c, int* d)          \
+{                                                                   \
+    return RunFunctionFmt(my_error_fct_##A, "pppp", a, b, c, d);    \
+}
+SUPER()
+#undef GO
+static void* find_error_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_error_fct_##A == (uintptr_t)fct) return my_error_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_error_fct_##A == 0) {my_error_fct_##A = (uintptr_t)fct; return my_error_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext error callback\n");
+    return NULL;
+}
+// error_string ...
+#define GO(A)   \
+static uintptr_t my_error_string_fct_##A = 0;                               \
+static int my_error_string_##A(void* a, int b, void* c, void* d, int e)     \
+{                                                                           \
+    return RunFunctionFmt(my_error_string_fct_##A, "pippi", a, b, c, d, e); \
+}
+SUPER()
+#undef GO
+static void* find_error_string_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_error_string_fct_##A == (uintptr_t)fct) return my_error_string_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_error_string_fct_##A == 0) {my_error_string_fct_##A = (uintptr_t)fct; return my_error_string_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libXext error_string callback\n");
+    return NULL;
+}
+
+#undef SUPER
+
+EXPORT void* my32_XShmCreateImage(x64emu_t* emu, void* disp, void* vis, uint32_t depth, int32_t fmt
+                    , void* data, void* shminfo, uint32_t w, uint32_t h)
+{
+    XImage *img = my->XShmCreateImage(disp, vis, depth, fmt, data, shminfo, w, h);
+    if(!img)
+        return img;
+    // bridge all access functions...
+    BridgeImageFunc(emu, img);
+    return img;
+}
+
+EXPORT int32_t my32_XShmPutImage(x64emu_t* emu, void* disp, size_t drawable, void* gc, void* image
+                    , int32_t src_x, int32_t src_y, int32_t dst_x, int32_t dst_y
+                    , uint32_t w, uint32_t h, int32_t sendevt)
+{
+    UnbridgeImageFunc(emu, (XImage*)image);
+    int32_t r = my->XShmPutImage(disp, drawable, gc, image, src_x, src_y, dst_x, dst_y, w, h, sendevt);
+    // bridge all access functions...
+    BridgeImageFunc(emu, (XImage*)image);
+    return r;
+}
+
+EXPORT int32_t my32_XShmGetImage(x64emu_t* emu, void* disp, size_t drawable, void* image, int32_t x, int32_t y, size_t plane)
+{
+    UnbridgeImageFunc(emu, (XImage*)image);
+    int32_t r = my->XShmGetImage(disp, drawable, image, x, y, plane);
+    // bridge all access functions...
+    BridgeImageFunc(emu, (XImage*)image);
+    return r;
+}
+
+//EXPORT void* my32_XSetExtensionErrorHandler(x64emu_t* emu, void* handler)
+//{
+//    (void)emu;
+//    return reverse_exterrorhandleFct(my->XSetExtensionErrorHandler(find_exterrorhandle_Fct(handler)));
+//}
+
+//EXPORT void* my32_XextAddDisplay(x64emu_t* emu, void* extinfo, void* dpy, void* extname, my32_XExtensionHooks* hooks, int nevents, void* data)
+//{
+//    my32_XExtensionHooks natives = {0};
+//    #define GO(A) natives.A = find_##A##_Fct(hooks->A);
+//    GO(create_gc)
+//    GO(copy_gc)
+//    GO(flush_gc)
+//    GO(free_gc)
+//    GO(create_font)
+//    GO(free_font)
+//    GO(close_display)
+//    GO(wire_to_event)
+//    GO(event_to_wire)
+//    GO(error)
+//    GO(error_string)
+//    #undef GO
+//    void *ret = my->XextAddDisplay(extinfo, dpy, extname, &natives, nevents, data);
+//    return ret;
+//}
+#if 0
+#ifdef ANDROID
+#define NEEDED_LIBS "libX11.so", "libxcb.so", "libXau.so", "libdl.so", "libXdmcp.so"
+#else
+#define NEEDED_LIBS "libX11.so.6", "libxcb.so.1", "libXau.so.6", "libdl.so.2", "libXdmcp.so.6"
+#endif
+#endif
+#include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedlibxext_private.h b/src/wrapped32/wrappedlibxext_private.h
new file mode 100644
index 00000000..3b5c50ea
--- /dev/null
+++ b/src/wrapped32/wrappedlibxext_private.h
@@ -0,0 +1,139 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh...
+#endif
+
+//GO(DPMSCapable, iFp)
+//GO(DPMSDisable, iFp)
+//GO(DPMSEnable, iFp)
+//GO(DPMSForceLevel, iFpW)
+//GO(DPMSGetTimeouts, iFpppp)
+//GO(DPMSGetVersion, iFppp)
+//GO(DPMSInfo, iFppp)
+//GO(DPMSQueryExtension, iFppp)
+//GO(DPMSSetTimeouts, iFpWWW)
+//GO(XagCreateAssociation, iFppp)
+//GO(XagCreateEmbeddedApplicationGroup, iFpLLLLp)
+//GO(XagCreateNonembeddedApplicationGroup, iFpp)
+//GO(XagDestroyApplicationGroup, iFpL)
+//GO(XagDestroyAssociation, iFpL)
+//GOM(XagGetApplicationGroupAttributes, iFEpLV)
+//GO(XagQueryApplicationGroup, iFpLp)
+//GO(XagQueryVersion, iFppp)
+//GO(XcupGetReservedColormapEntries, iFpipp)
+//GO(XcupQueryVersion, iFppp)
+//GO(XcupStoreColors, iFpLpi)
+//GO(XdbeAllocateBackBufferName, LFpLC)
+//GO(XdbeBeginIdiom, iFp)
+//GO(XdbeDeallocateBackBufferName, iFpL)
+//GO(XdbeEndIdiom, iFp)
+//GO(XdbeFreeVisualInfo, vFp)
+//GO(XdbeGetBackBufferAttributes, pFpL)
+//GO(XdbeGetVisualInfo, pFppp)
+//GO(XdbeQueryExtension, iFppp)
+//GO(XdbeSwapBuffers, iFppi)
+//GO(XeviGetVisualInfo, iFppipp)
+//GO(XeviQueryExtension, iFp)
+//GO(XeviQueryVersion, iFppp)
+//GOM(XextAddDisplay, pFEppppip)
+//GO(XextCreateExtension, pFv)
+//GO(XextDestroyExtension, vFp)
+//DATAB(_XExtensionErrorFunction, 4)
+//GO(XextFindDisplay, pFpp)
+//GO(XextRemoveDisplay, iFpp)
+//GO(XGEQueryExtension, iFppp)
+//GO(XGEQueryVersion, iFppp)
+//GO(XLbxGetEventBase, iFp)
+//GO(XLbxQueryExtension, iFpppp)
+//GO(XLbxQueryVersion, iFppp)
+//GO(XmbufChangeBufferAttributes, vFpLLp)
+//GO(XmbufChangeWindowAttributes, vFpLLp)
+//GO(XmbufClearBufferArea, vFpLiiuui)
+//GO(XmbufCreateBuffers, iFpLiiip)
+//GOM(XmbufCreateStereoWindow, LFEpLiiuuuiupLppp)
+//GO(XmbufDestroyBuffers, vFpL)
+//GO(XmbufDisplayBuffers, vFpipii)
+//GO(XmbufGetBufferAttributes, iFpLp)
+//GO(XmbufGetScreenInfo, iFpLpppp)
+//GO(XmbufGetVersion, iFppp)
+//GO(XmbufGetWindowAttributes, iFpLp)
+//GO(XmbufQueryExtension, iFppp)
+//GO(XMissingExtension, iFpp)
+//GO(XMITMiscGetBugMode, iFp)
+//GO(XMITMiscQueryExtension, iFppp)
+//GO(XMITMiscSetBugMode, iFpi)
+//GO(XSecurityAllocXauth, pFv)
+//GO(XSecurityFreeXauth, vFp)
+//GO(XSecurityGenerateAuthorization, pFppLpp)
+//GO(XSecurityQueryExtension, iFppp)
+//GO(XSecurityRevokeAuthorization, iFpL)
+//GOM(XSetExtensionErrorHandler, pFEp)
+//GO(XShapeCombineMask, vFpLiiiLi)
+//GO(XShapeCombineRectangles, vFpLiiipiii)
+//GO(XShapeCombineRegion, vFpLiiipi)
+//GO(XShapeCombineShape, vFpLiiiLii)
+//GO(XShapeGetRectangles, pFpLipp)
+//GO(XShapeInputSelected, LFpL)
+//GO(XShapeOffsetShape, vFpLiii)
+//GO(XShapeQueryExtension, iFppp)
+//GO(XShapeQueryExtents, iFpLpppppppppp)
+//GO(XShapeQueryVersion, iFppp)
+//GO(XShapeSelectInput, vFpLL)
+//GO(XShmAttach, iFpp)
+GOM(XShmCreateImage, pFEXpuippuu)       //need brige/unbridge...
+//GO(XShmCreatePixmap, LFpLppuuu)
+//GO(XShmDetach, iFpp)
+//GO(XShmGetEventBase, iFp)
+GOM(XShmGetImage, iFEXLpiiL)        //need brige/unbridge...
+//GO(XShmPixmapFormat, iFp)
+GOM(XShmPutImage, iFEXLppiiiiuui)       //need brige/unbridge...
+//GO(XShmQueryExtension, iFp)
+//GO(XShmQueryVersion, iFpppp)
+//GO(XSyncAwait, iFppi)
+//GO(XSyncAwaitFence, iFppi)
+//GO(XSyncChangeAlarm, iFpLLp)
+//GO(XSyncChangeCounter, iFpuU)
+//GO(XSyncCreateAlarm, LFpLp)     // XSyncAlarm is an XID
+//GO(XSyncCreateCounter, uFpU)    // XSyncValue is a struct of 2 int
+//GO(XSyncCreateFence, LFpLi)
+//GO(XSyncDestroyAlarm, iFpL)
+//GO(XSyncDestroyCounter, iFpL)
+//GO(XSyncDestroyFence, iFpL)
+//GO(XSyncFreeSystemCounterList, vFp)
+//GO(XSyncGetPriority, iFpLp)
+//GO(XSyncInitialize, iFppp)
+//GO(XSyncIntsToValue, vFpui)
+//GO(XSyncIntToValue, vFpi)
+//GO(XSyncListSystemCounters, pFpp)
+//GO(XSyncMaxValue, vFp)
+//GO(XSyncMinValue, vFp)
+//GO(XSyncQueryAlarm, iFpLp)
+//GO(XSyncQueryCounter, iFpLp)
+//GO(XSyncQueryExtension, iFppp)
+//GO(XSyncQueryFence, iFpLp)
+//GO(XSyncResetFence, iFpL)
+//GO(XSyncSetCounter, iFpuU)      // XSyncCounter is an XID
+//GO(XSyncSetPriority, iFpLi)
+//GO(XSyncTriggerFence, iFpL)
+//GO(XSyncValueAdd, 
+//GO(XSyncValueEqual, 
+//GO(XSyncValueGreaterOrEqual, 
+//GO(XSyncValueGreaterThan, 
+//GO(XSyncValueHigh32, 
+//GO(XSyncValueIsNegative, 
+//GO(XSyncValueIsPositive, 
+//GO(XSyncValueIsZero, iFp)
+//GO(XSyncValueLessOrEqual, 
+//GO(XSyncValueLessThan, 
+//GO(XSyncValueLow32, 
+//GO(XSyncValueSubtract, 
+//DATA(XTestFakeAckType, 4)
+//GO(XTestFakeInput, iFppii)
+//GO(XTestFlush, iFp)
+//GO(XTestGetInput, iFpi)
+//DATAB(XTestInputActionType, 4)
+//GO(XTestMovePointer, iFpipppu)
+//GO(XTestPressButton, iFpiLuu)
+//GO(XTestPressKey, iFpiLuu)
+//GO(XTestQueryInputSize, iFpp)
+//GO(XTestReset, iFp)
+//GO(XTestStopInput, iFp)
diff --git a/src/wrapped32/wrappedlibxrandr.c b/src/wrapped32/wrappedlibxrandr.c
index 5220524f..5b6108a9 100644
--- a/src/wrapped32/wrappedlibxrandr.c
+++ b/src/wrapped32/wrappedlibxrandr.c
@@ -239,11 +239,10 @@ EXPORT void* my32_XRRGetOutputInfo(x64emu_t* emu, void* dpy, void* res, XID wind
     return ret;
 }
 
-#if 0
 #ifdef ANDROID
 #define NEEDED_LIBS "libX11.so", "libXext.so", "libXrender.so"
 #else
 #define NEEDED_LIBS "libX11.so.6", "libXext.so.6", "libXrender.so.1"
 #endif
-#endif
+
 #include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedlibxxf86vm.c b/src/wrapped32/wrappedlibxxf86vm.c
index d204399b..bb5d1d87 100644
--- a/src/wrapped32/wrappedlibxxf86vm.c
+++ b/src/wrapped32/wrappedlibxxf86vm.c
@@ -24,11 +24,11 @@
 #endif
 
 #define LIBNAME libxxf86vm
-#if 0
+
 #ifdef ANDROID
 #define NEEDED_LIBS "libX11.so", "libXext.so"
 #else
 #define NEEDED_LIBS "libX11.so.6", "libXext.so.6"
 #endif
-#endif
+
 #include "wrappedlib_init32.h"