about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-05 09:54:44 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-05 09:54:44 +0200
commitc29be5b945fe01b8ce70e9c7ed784d1cf92dcbe6 (patch)
tree881984a8089031c4f9624e5b3dab358f68333156 /src
parent21b60db107dce0da9ffaeab018271840e01abc5c (diff)
downloadbox64-c29be5b945fe01b8ce70e9c7ed784d1cf92dcbe6.tar.gz
box64-c29be5b945fe01b8ce70e9c7ed784d1cf92dcbe6.zip
[BOX32][WRAPEPR] Reworked 32bits libfontconfig with new wrapperhelper
Diffstat (limited to 'src')
-rw-r--r--src/wrapped32/generated/converter32.c28
-rw-r--r--src/wrapped32/generated/converter32.h13
-rw-r--r--src/wrapped32/generated/functions_list.txt13
-rw-r--r--src/wrapped32/generated/wrapper32.c26
-rw-r--r--src/wrapped32/generated/wrapper32.h13
-rw-r--r--src/wrapped32/wrappedfontconfig_private.h336
6 files changed, 256 insertions, 173 deletions
diff --git a/src/wrapped32/generated/converter32.c b/src/wrapped32/generated/converter32.c
index d70acf86..6b2558bc 100644
--- a/src/wrapped32/generated/converter32.c
+++ b/src/wrapped32/generated/converter32.c
@@ -383,4 +383,30 @@ void to_struct_WWpWpWpWp(ptr_t d, const struct_WWpWpWpWp_t *src)
 	*(ptr_t*)dest = to_ptrv(src->p6); dest += 4;
 	*(uint16_t*)dest = src->W7; dest += 2;
 	*(ptr_t*)dest = to_ptrv(src->p8); dest += 4;
-}
\ No newline at end of file
+}
+
+void from_struct_pi(struct_pi_t *dest, ptr_t s) {
+	uint8_t* src = (uint8_t*)from_ptrv(s);
+	dest->p0 = from_ptrv(*(ptr_t*)src); src += 4;
+	dest->i1 = *(int*)src; src += 4;
+}
+void to_struct_pi(ptr_t d, const struct_pi_t *src) {
+	if (!src) return;
+	uint8_t* dest = (uint8_t*)from_ptrv(d);
+	*(ptr_t*)dest = to_ptrv(src->p0); dest += 4;
+	*(int*)dest = src->i1; dest += 4;
+}
+
+void from_struct_ppi(struct_ppi_t *dest, ptr_t s) {
+	uint8_t* src = (uint8_t*)from_ptrv(s);
+	dest->p0 = from_ptrv(*(ptr_t*)src); src += 4;
+	dest->p1 = from_ptrv(*(ptr_t*)src); src += 4;
+	dest->i2 = *(int*)src; src += 4;
+}
+void to_struct_ppi(ptr_t d, const struct_ppi_t *src) {
+	if (!src) return;
+	uint8_t* dest = (uint8_t*)from_ptrv(d);
+	*(ptr_t*)dest = to_ptrv(src->p0); dest += 4;
+	*(ptr_t*)dest = to_ptrv(src->p1); dest += 4;
+	*(int*)dest = src->i2; dest += 4;
+}
diff --git a/src/wrapped32/generated/converter32.h b/src/wrapped32/generated/converter32.h
index c2344c65..93aee38d 100644
--- a/src/wrapped32/generated/converter32.h
+++ b/src/wrapped32/generated/converter32.h
@@ -193,5 +193,18 @@ typedef struct struct_WWpWpWpWp_s {
 } struct_WWpWpWpWp_t;
 void from_struct_WWpWpWpWp(struct_WWpWpWpWp_t *dest, ptr_t src);
 void to_struct_WWpWpWpWp(ptr_t dest, const struct_WWpWpWpWp_t *src);
+typedef struct struct_pi_s {
+	void* p0;
+	int i1;
+} struct_pi_t;
+void from_struct_pi(struct_pi_t *dest, ptr_t src);
+void to_struct_pi(ptr_t dest, const struct_pi_t *src);
+typedef struct struct_ppi_s {
+	void* p0;
+	void* p1;
+	int i2;
+} struct_ppi_t;
+void from_struct_ppi(struct_ppi_t *dest, ptr_t src);
+void to_struct_ppi(ptr_t dest, const struct_ppi_t *src);
 
 #endif // __CONVERTER_H_
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index 01e665cd..d8d45c49 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -244,8 +244,10 @@
 #() iFprll_ -> iFpB
 #() iFpbup_ -> iFpB
 #() iFprLL_ -> iFpB
+#() iFbpi_i -> iFBi
 #() iFBll_p -> iFBp
 #() iFSBliu_ -> iFSB
+#() iFbppi_i -> iFBi
 #() iFXbLipi_ -> iFXB
 #() iFrLL_BLL_ -> iFBB
 #() vFbll_rllll_ -> vFBB
@@ -316,6 +318,7 @@
 #() vFpuf -> vFpuf
 #() vFpud -> vFpud
 #() vFpup -> vFpup
+#() vFpdd -> vFpdd
 #() vFplp -> vFplp
 #() vFppi -> vFppi
 #() vFppu -> vFppu
@@ -369,6 +372,7 @@
 #() iFpLp -> iFpLp
 #() iFppi -> iFppi
 #() iFppu -> iFppu
+#() iFppd -> iFppd
 #() iFppL -> iFppL
 #() iFppp -> iFppp
 #() iFppa -> iFppa
@@ -401,7 +405,9 @@
 #() uFuup -> uFuup
 #() uFupp -> uFupp
 #() uFpuU -> uFpuU
+#() uFpup -> uFpup
 #() uFppu -> uFppu
+#() uFppp -> uFppp
 #() fFuii -> fFuii
 #() fFfff -> fFfff
 #() fFffp -> fFffp
@@ -441,6 +447,7 @@
 #() pFpii -> pFpii
 #() pFpiu -> pFpiu
 #() pFpiL -> pFpiL
+#() pFpip -> pFpip
 #() pFpiS -> pFpiS
 #() pFpII -> pFpII
 #() pFpup -> pFpup
@@ -608,6 +615,7 @@
 #() iFuupi -> iFuupi
 #() iFpiiL -> iFpiiL
 #() iFpipp -> iFpipp
+#() iFpupi -> iFpupi
 #() iFpupp -> iFpupp
 #() iFppii -> iFppii
 #() iFppiU -> iFppiU
@@ -615,6 +623,7 @@
 #() iFppui -> iFppui
 #() iFppLi -> iFppLi
 #() iFpppi -> iFpppi
+#() iFpppu -> iFpppu
 #() iFpppL -> iFpppL
 #() iFpppp -> iFpppp
 #() iFSpiL -> iFSpiL
@@ -661,6 +670,7 @@
 #() pFlfff -> pFlfff
 #() pFpiLL -> pFpiLL
 #() pFpuii -> pFpuii
+#() pFpupp -> pFpupp
 #() pFpLiS -> pFpLiS
 #() pFppLL -> pFppLL
 #() pFpppp -> pFpppp
@@ -672,7 +682,7 @@
 #() iFppbp_p -> iFppBp
 #() iFBp_pui -> iFBpui
 #() IFpBp_ii -> IFpBii
-#() uFppiBp_ -> uFppiB
+#() uFppibp_ -> uFppiB
 #() UFpBp_ii -> UFpBii
 #() lFiibl_L -> lFiiBL
 #() LFpbp_Lp -> LFpBLp
@@ -803,6 +813,7 @@
 #() iFuiuup -> iFuiuup
 #() iFpippp -> iFpippp
 #() iFpCCCC -> iFpCCCC
+#() iFpuipp -> iFpuipp
 #() iFpLuLi -> iFpLuLi
 #() iFppiUi -> iFppiUi
 #() iFpppip -> iFpppip
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index 1240e782..b1dd9109 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -334,8 +334,10 @@ typedef int32_t (*iFuBLL__t)(uint32_t, struct_LL_t*);
 typedef int32_t (*iFprll__t)(void*, struct_ll_t*);
 typedef int32_t (*iFpbup__t)(void*, struct_up_t*);
 typedef int32_t (*iFprLL__t)(void*, struct_LL_t*);
+typedef int32_t (*iFbpi_i_t)(struct_pi_t*, int32_t);
 typedef int32_t (*iFBll_p_t)(struct_ll_t*, void*);
 typedef int32_t (*iFSBliu__t)(void*, struct_liu_t*);
+typedef int32_t (*iFbppi_i_t)(struct_ppi_t*, int32_t);
 typedef int32_t (*iFXbLipi__t)(void*, struct_Lipi_t*);
 typedef int32_t (*iFrLL_BLL__t)(struct_LL_t*, struct_LL_t*);
 typedef void (*vFbll_rllll__t)(struct_ll_t*, struct_llll_t*);
@@ -406,6 +408,7 @@ typedef void (*vFpuU_t)(void*, uint32_t, uint64_t);
 typedef void (*vFpuf_t)(void*, uint32_t, float);
 typedef void (*vFpud_t)(void*, uint32_t, double);
 typedef void (*vFpup_t)(void*, uint32_t, void*);
+typedef void (*vFpdd_t)(void*, double, double);
 typedef void (*vFplp_t)(void*, intptr_t, void*);
 typedef void (*vFppi_t)(void*, void*, int32_t);
 typedef void (*vFppu_t)(void*, void*, uint32_t);
@@ -459,6 +462,7 @@ typedef int32_t (*iFpLu_t)(void*, uintptr_t, uint32_t);
 typedef int32_t (*iFpLp_t)(void*, uintptr_t, void*);
 typedef int32_t (*iFppi_t)(void*, void*, int32_t);
 typedef int32_t (*iFppu_t)(void*, void*, uint32_t);
+typedef int32_t (*iFppd_t)(void*, void*, double);
 typedef int32_t (*iFppL_t)(void*, void*, uintptr_t);
 typedef int32_t (*iFppp_t)(void*, void*, void*);
 typedef int32_t (*iFppa_t)(void*, void*, void*);
@@ -491,7 +495,9 @@ typedef uint32_t (*uFuuu_t)(uint32_t, uint32_t, uint32_t);
 typedef uint32_t (*uFuup_t)(uint32_t, uint32_t, void*);
 typedef uint32_t (*uFupp_t)(uint32_t, void*, void*);
 typedef uint32_t (*uFpuU_t)(void*, uint32_t, uint64_t);
+typedef uint32_t (*uFpup_t)(void*, uint32_t, void*);
 typedef uint32_t (*uFppu_t)(void*, void*, uint32_t);
+typedef uint32_t (*uFppp_t)(void*, void*, void*);
 typedef float (*fFuii_t)(uint32_t, int32_t, int32_t);
 typedef float (*fFfff_t)(float, float, float);
 typedef float (*fFffp_t)(float, float, void*);
@@ -531,6 +537,7 @@ typedef void* (*pFpcU_t)(void*, int8_t, uint64_t);
 typedef void* (*pFpii_t)(void*, int32_t, int32_t);
 typedef void* (*pFpiu_t)(void*, int32_t, uint32_t);
 typedef void* (*pFpiL_t)(void*, int32_t, uintptr_t);
+typedef void* (*pFpip_t)(void*, int32_t, void*);
 typedef void* (*pFpiS_t)(void*, int32_t, void*);
 typedef void* (*pFpII_t)(void*, int64_t, int64_t);
 typedef void* (*pFpup_t)(void*, uint32_t, void*);
@@ -698,6 +705,7 @@ typedef int32_t (*iFuiup_t)(uint32_t, int32_t, uint32_t, void*);
 typedef int32_t (*iFuupi_t)(uint32_t, uint32_t, void*, int32_t);
 typedef int32_t (*iFpiiL_t)(void*, int32_t, int32_t, uintptr_t);
 typedef int32_t (*iFpipp_t)(void*, int32_t, void*, void*);
+typedef int32_t (*iFpupi_t)(void*, uint32_t, void*, int32_t);
 typedef int32_t (*iFpupp_t)(void*, uint32_t, void*, void*);
 typedef int32_t (*iFppii_t)(void*, void*, int32_t, int32_t);
 typedef int32_t (*iFppiU_t)(void*, void*, int32_t, uint64_t);
@@ -705,6 +713,7 @@ typedef int32_t (*iFppip_t)(void*, void*, int32_t, void*);
 typedef int32_t (*iFppui_t)(void*, void*, uint32_t, int32_t);
 typedef int32_t (*iFppLi_t)(void*, void*, uintptr_t, int32_t);
 typedef int32_t (*iFpppi_t)(void*, void*, void*, int32_t);
+typedef int32_t (*iFpppu_t)(void*, void*, void*, uint32_t);
 typedef int32_t (*iFpppL_t)(void*, void*, void*, uintptr_t);
 typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
 typedef int32_t (*iFSpiL_t)(void*, void*, int32_t, uintptr_t);
@@ -751,6 +760,7 @@ typedef void* (*pFullu_t)(uint32_t, intptr_t, intptr_t, uint32_t);
 typedef void* (*pFlfff_t)(intptr_t, float, float, float);
 typedef void* (*pFpiLL_t)(void*, int32_t, uintptr_t, uintptr_t);
 typedef void* (*pFpuii_t)(void*, uint32_t, int32_t, int32_t);
+typedef void* (*pFpupp_t)(void*, uint32_t, void*, void*);
 typedef void* (*pFpLiS_t)(void*, uintptr_t, int32_t, void*);
 typedef void* (*pFppLL_t)(void*, void*, uintptr_t, uintptr_t);
 typedef void* (*pFpppp_t)(void*, void*, void*, void*);
@@ -762,7 +772,7 @@ typedef void (*vFXLLbL__t)(void*, uintptr_t, uintptr_t, struct_L_t*);
 typedef int32_t (*iFppbp_p_t)(void*, void*, struct_p_t*, void*);
 typedef int32_t (*iFBp_pui_t)(struct_p_t*, void*, uint32_t, int32_t);
 typedef int64_t (*IFpBp_ii_t)(void*, struct_p_t*, int32_t, int32_t);
-typedef uint32_t (*uFppiBp__t)(void*, void*, int32_t, struct_p_t*);
+typedef uint32_t (*uFppibp__t)(void*, void*, int32_t, struct_p_t*);
 typedef uint64_t (*UFpBp_ii_t)(void*, struct_p_t*, int32_t, int32_t);
 typedef intptr_t (*lFiibl_L_t)(int32_t, int32_t, struct_l_t*, uintptr_t);
 typedef uintptr_t (*LFpbp_Lp_t)(void*, struct_p_t*, uintptr_t, void*);
@@ -893,6 +903,7 @@ typedef int32_t (*iFippLi_t)(int32_t, void*, void*, uintptr_t, int32_t);
 typedef int32_t (*iFuiuup_t)(uint32_t, int32_t, uint32_t, uint32_t, void*);
 typedef int32_t (*iFpippp_t)(void*, int32_t, void*, void*, void*);
 typedef int32_t (*iFpCCCC_t)(void*, uint8_t, uint8_t, uint8_t, uint8_t);
+typedef int32_t (*iFpuipp_t)(void*, uint32_t, int32_t, void*, void*);
 typedef int32_t (*iFpLuLi_t)(void*, uintptr_t, uint32_t, uintptr_t, int32_t);
 typedef int32_t (*iFppiUi_t)(void*, void*, int32_t, uint64_t, int32_t);
 typedef int32_t (*iFpppip_t)(void*, void*, void*, int32_t, void*);
@@ -1503,8 +1514,10 @@ void iFuBLL__32(x64emu_t *emu, uintptr_t fcn) { iFuBLL__t fn = (iFuBLL__t)fcn; s
 void iFprll__32(x64emu_t *emu, uintptr_t fcn) { iFprll__t fn = (iFprll__t)fcn; struct_ll_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_ll(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); }
 void iFpbup__32(x64emu_t *emu, uintptr_t fcn) { iFpbup__t fn = (iFpbup__t)fcn; struct_up_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_up(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_up(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFprLL__32(x64emu_t *emu, uintptr_t fcn) { iFprLL__t fn = (iFprLL__t)fcn; struct_LL_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_LL(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); }
+void iFbpi_i_32(x64emu_t *emu, uintptr_t fcn) { iFbpi_i_t fn = (iFbpi_i_t)fcn; struct_pi_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_pi(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptri(int32_t, R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_pi(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void iFBll_p_32(x64emu_t *emu, uintptr_t fcn) { iFBll_p_t fn = (iFBll_p_t)fcn; struct_ll_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_ll(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void iFSBliu__32(x64emu_t *emu, uintptr_t fcn) { iFSBliu__t fn = (iFSBliu__t)fcn; struct_liu_t arg_8={0}; R_EAX = fn(io_convert32(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_liu(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
+void iFbppi_i_32(x64emu_t *emu, uintptr_t fcn) { iFbppi_i_t fn = (iFbppi_i_t)fcn; struct_ppi_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_ppi(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptri(int32_t, R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_ppi(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void iFXbLipi__32(x64emu_t *emu, uintptr_t fcn) { iFXbLipi__t fn = (iFXbLipi__t)fcn; struct_Lipi_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_Lipi(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_Lipi(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFrLL_BLL__32(x64emu_t *emu, uintptr_t fcn) { iFrLL_BLL__t fn = (iFrLL_BLL__t)fcn; struct_LL_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_LL(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_LL_t arg_8={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void vFbll_rllll__32(x64emu_t *emu, uintptr_t fcn) { vFbll_rllll__t fn = (vFbll_rllll__t)fcn; struct_ll_t arg_4={0}; if (*(ptr_t*)(from_ptr((R_ESP + 4)))) from_struct_ll(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_llll_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_llll(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_ll(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
@@ -1575,6 +1588,7 @@ void vFpuU_32(x64emu_t *emu, uintptr_t fcn) { vFpuU_t fn = (vFpuU_t)fcn; fn(from
 void vFpuf_32(x64emu_t *emu, uintptr_t fcn) { vFpuf_t fn = (vFpuf_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(float, R_ESP + 12)); }
 void vFpud_32(x64emu_t *emu, uintptr_t fcn) { vFpud_t fn = (vFpud_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(double, R_ESP + 12)); }
 void vFpup_32(x64emu_t *emu, uintptr_t fcn) { vFpup_t fn = (vFpup_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); }
+void vFpdd_32(x64emu_t *emu, uintptr_t fcn) { vFpdd_t fn = (vFpdd_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptri(double, R_ESP + 8), from_ptri(double, R_ESP + 16)); }
 void vFplp_32(x64emu_t *emu, uintptr_t fcn) { vFplp_t fn = (vFplp_t)fcn; fn(from_ptriv(R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_ptriv(R_ESP + 12)); }
 void vFppi_32(x64emu_t *emu, uintptr_t fcn) { vFppi_t fn = (vFppi_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); }
 void vFppu_32(x64emu_t *emu, uintptr_t fcn) { vFppu_t fn = (vFppu_t)fcn; fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); }
@@ -1628,6 +1642,7 @@ void iFpLu_32(x64emu_t *emu, uintptr_t fcn) { iFpLu_t fn = (iFpLu_t)fcn; R_EAX =
 void iFpLp_32(x64emu_t *emu, uintptr_t fcn) { iFpLp_t fn = (iFpLp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12)); }
 void iFppi_32(x64emu_t *emu, uintptr_t fcn) { iFppi_t fn = (iFppi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); }
 void iFppu_32(x64emu_t *emu, uintptr_t fcn) { iFppu_t fn = (iFppu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); }
+void iFppd_32(x64emu_t *emu, uintptr_t fcn) { iFppd_t fn = (iFppd_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(double, R_ESP + 12)); }
 void iFppL_32(x64emu_t *emu, uintptr_t fcn) { iFppL_t fn = (iFppL_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12))); }
 void iFppp_32(x64emu_t *emu, uintptr_t fcn) { iFppp_t fn = (iFppp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void iFppa_32(x64emu_t *emu, uintptr_t fcn) { iFppa_t fn = (iFppa_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_locale(from_ptri(ptr_t, R_ESP + 12))); }
@@ -1660,7 +1675,9 @@ void uFuuu_32(x64emu_t *emu, uintptr_t fcn) { uFuuu_t fn = (uFuuu_t)fcn; R_EAX =
 void uFuup_32(x64emu_t *emu, uintptr_t fcn) { uFuup_t fn = (uFuup_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void uFupp_32(x64emu_t *emu, uintptr_t fcn) { uFupp_t fn = (uFupp_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void uFpuU_32(x64emu_t *emu, uintptr_t fcn) { uFpuU_t fn = (uFpuU_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 12)); }
+void uFpup_32(x64emu_t *emu, uintptr_t fcn) { uFpup_t fn = (uFpup_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void uFppu_32(x64emu_t *emu, uintptr_t fcn) { uFppu_t fn = (uFppu_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); }
+void uFppp_32(x64emu_t *emu, uintptr_t fcn) { uFppp_t fn = (uFppp_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void fFuii_32(x64emu_t *emu, uintptr_t fcn) { fFuii_t fn = (fFuii_t)fcn; float fl = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); fpu_do_push(emu); ST0val = fl; }
 void fFfff_32(x64emu_t *emu, uintptr_t fcn) { fFfff_t fn = (fFfff_t)fcn; float fl = fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12)); fpu_do_push(emu); ST0val = fl; }
 void fFffp_32(x64emu_t *emu, uintptr_t fcn) { fFffp_t fn = (fFffp_t)fcn; float fl = fn(from_ptri(float, R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptriv(R_ESP + 12)); fpu_do_push(emu); ST0val = fl; }
@@ -1700,6 +1717,7 @@ void pFpcU_32(x64emu_t *emu, uintptr_t fcn) { pFpcU_t fn = (pFpcU_t)fcn; R_EAX =
 void pFpii_32(x64emu_t *emu, uintptr_t fcn) { pFpii_t fn = (pFpii_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); }
 void pFpiu_32(x64emu_t *emu, uintptr_t fcn) { pFpiu_t fn = (pFpiu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12))); }
 void pFpiL_32(x64emu_t *emu, uintptr_t fcn) { pFpiL_t fn = (pFpiL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)))); }
+void pFpip_32(x64emu_t *emu, uintptr_t fcn) { pFpip_t fn = (pFpip_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12))); }
 void pFpiS_32(x64emu_t *emu, uintptr_t fcn) { pFpiS_t fn = (pFpiS_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), io_convert32(from_ptriv(R_ESP + 12)))); }
 void pFpII_32(x64emu_t *emu, uintptr_t fcn) { pFpII_t fn = (pFpII_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int64_t, R_ESP + 8), from_ptri(int64_t, R_ESP + 16))); }
 void pFpup_32(x64emu_t *emu, uintptr_t fcn) { pFpup_t fn = (pFpup_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12))); }
@@ -1867,6 +1885,7 @@ void iFuiup_32(x64emu_t *emu, uintptr_t fcn) { iFuiup_t fn = (iFuiup_t)fcn; R_EA
 void iFuupi_32(x64emu_t *emu, uintptr_t fcn) { iFuupi_t fn = (iFuupi_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFpiiL_32(x64emu_t *emu, uintptr_t fcn) { iFpiiL_t fn = (iFpiiL_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); }
 void iFpipp_32(x64emu_t *emu, uintptr_t fcn) { iFpipp_t fn = (iFpipp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
+void iFpupi_32(x64emu_t *emu, uintptr_t fcn) { iFpupi_t fn = (iFpupi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFpupp_32(x64emu_t *emu, uintptr_t fcn) { iFpupp_t fn = (iFpupp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iFppii_32(x64emu_t *emu, uintptr_t fcn) { iFppii_t fn = (iFppii_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFppiU_32(x64emu_t *emu, uintptr_t fcn) { iFppiU_t fn = (iFppiU_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint64_t, R_ESP + 16)); }
@@ -1874,6 +1893,7 @@ void iFppip_32(x64emu_t *emu, uintptr_t fcn) { iFppip_t fn = (iFppip_t)fcn; R_EA
 void iFppui_32(x64emu_t *emu, uintptr_t fcn) { iFppui_t fn = (iFppui_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFppLi_32(x64emu_t *emu, uintptr_t fcn) { iFppLi_t fn = (iFppLi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16)); }
 void iFpppi_32(x64emu_t *emu, uintptr_t fcn) { iFpppi_t fn = (iFpppi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
+void iFpppu_32(x64emu_t *emu, uintptr_t fcn) { iFpppu_t fn = (iFpppu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
 void iFpppL_32(x64emu_t *emu, uintptr_t fcn) { iFpppL_t fn = (iFpppL_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); }
 void iFpppp_32(x64emu_t *emu, uintptr_t fcn) { iFpppp_t fn = (iFpppp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iFSpiL_32(x64emu_t *emu, uintptr_t fcn) { iFSpiL_t fn = (iFSpiL_t)fcn; R_EAX = fn(io_convert32(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); }
@@ -1920,6 +1940,7 @@ void pFullu_32(x64emu_t *emu, uintptr_t fcn) { pFullu_t fn = (pFullu_t)fcn; R_EA
 void pFlfff_32(x64emu_t *emu, uintptr_t fcn) { pFlfff_t fn = (pFlfff_t)fcn; R_EAX = to_ptrv(fn(from_long(from_ptri(long_t, R_ESP + 4)), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12), from_ptri(float, R_ESP + 16))); }
 void pFpiLL_32(x64emu_t *emu, uintptr_t fcn) { pFpiLL_t fn = (pFpiLL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)))); }
 void pFpuii_32(x64emu_t *emu, uintptr_t fcn) { pFpuii_t fn = (pFpuii_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16))); }
+void pFpupp_32(x64emu_t *emu, uintptr_t fcn) { pFpupp_t fn = (pFpupp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); }
 void pFpLiS_32(x64emu_t *emu, uintptr_t fcn) { pFpLiS_t fn = (pFpLiS_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12), io_convert32(from_ptriv(R_ESP + 16)))); }
 void pFppLL_32(x64emu_t *emu, uintptr_t fcn) { pFppLL_t fn = (pFppLL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)))); }
 void pFpppp_32(x64emu_t *emu, uintptr_t fcn) { pFpppp_t fn = (pFpppp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16))); }
@@ -1931,7 +1952,7 @@ void vFXLLbL__32(x64emu_t *emu, uintptr_t fcn) { vFXLLbL__t fn = (vFXLLbL__t)fcn
 void iFppbp_p_32(x64emu_t *emu, uintptr_t fcn) { iFppbp_p_t fn = (iFppbp_p_t)fcn; struct_p_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_p(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptriv(R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFBp_pui_32(x64emu_t *emu, uintptr_t fcn) { iFBp_pui_t fn = (iFBp_pui_t)fcn; struct_p_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void IFpBp_ii_32(x64emu_t *emu, uintptr_t fcn) { IFpBp_ii_t fn = (IFpBp_ii_t)fcn; struct_p_t arg_8={0}; ui64_t r; r.i = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
-void uFppiBp__32(x64emu_t *emu, uintptr_t fcn) { uFppiBp__t fn = (uFppiBp__t)fcn; struct_p_t arg_16={0}; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
+void uFppibp__32(x64emu_t *emu, uintptr_t fcn) { uFppibp__t fn = (uFppibp__t)fcn; struct_p_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_p(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
 void UFpBp_ii_32(x64emu_t *emu, uintptr_t fcn) { UFpBp_ii_t fn = (UFpBp_ii_t)fcn; struct_p_t arg_8={0}; ui64_t r; r.u = (uint64_t)fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void lFiibl_L_32(x64emu_t *emu, uintptr_t fcn) { lFiibl_L_t fn = (lFiibl_L_t)fcn; struct_l_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_l(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 16)))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_l(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void LFpbp_Lp_32(x64emu_t *emu, uintptr_t fcn) { LFpbp_Lp_t fn = (LFpbp_Lp_t)fcn; struct_p_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
@@ -2062,6 +2083,7 @@ void iFippLi_32(x64emu_t *emu, uintptr_t fcn) { iFippLi_t fn = (iFippLi_t)fcn; R
 void iFuiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiuup_t fn = (iFuiuup_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); }
 void iFpippp_32(x64emu_t *emu, uintptr_t fcn) { iFpippp_t fn = (iFpippp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); }
 void iFpCCCC_32(x64emu_t *emu, uintptr_t fcn) { iFpCCCC_t fn = (iFpCCCC_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint8_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(uint8_t, R_ESP + 16), from_ptri(uint8_t, R_ESP + 20)); }
+void iFpuipp_32(x64emu_t *emu, uintptr_t fcn) { iFpuipp_t fn = (iFpuipp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); }
 void iFpLuLi_32(x64emu_t *emu, uintptr_t fcn) { iFpLuLi_t fn = (iFpLuLi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(uint32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20)); }
 void iFppiUi_32(x64emu_t *emu, uintptr_t fcn) { iFppiUi_t fn = (iFppiUi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint64_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 24)); }
 void iFpppip_32(x64emu_t *emu, uintptr_t fcn) { iFpppip_t fn = (iFpppip_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index 90c2a2a4..c4122a9a 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -285,8 +285,10 @@ void iFuBLL__32(x64emu_t *emu, uintptr_t fnc);
 void iFprll__32(x64emu_t *emu, uintptr_t fnc);
 void iFpbup__32(x64emu_t *emu, uintptr_t fnc);
 void iFprLL__32(x64emu_t *emu, uintptr_t fnc);
+void iFbpi_i_32(x64emu_t *emu, uintptr_t fnc);
 void iFBll_p_32(x64emu_t *emu, uintptr_t fnc);
 void iFSBliu__32(x64emu_t *emu, uintptr_t fnc);
+void iFbppi_i_32(x64emu_t *emu, uintptr_t fnc);
 void iFXbLipi__32(x64emu_t *emu, uintptr_t fnc);
 void iFrLL_BLL__32(x64emu_t *emu, uintptr_t fnc);
 void vFbll_rllll__32(x64emu_t *emu, uintptr_t fnc);
@@ -357,6 +359,7 @@ void vFpuU_32(x64emu_t *emu, uintptr_t fnc);
 void vFpuf_32(x64emu_t *emu, uintptr_t fnc);
 void vFpud_32(x64emu_t *emu, uintptr_t fnc);
 void vFpup_32(x64emu_t *emu, uintptr_t fnc);
+void vFpdd_32(x64emu_t *emu, uintptr_t fnc);
 void vFplp_32(x64emu_t *emu, uintptr_t fnc);
 void vFppi_32(x64emu_t *emu, uintptr_t fnc);
 void vFppu_32(x64emu_t *emu, uintptr_t fnc);
@@ -410,6 +413,7 @@ void iFpLu_32(x64emu_t *emu, uintptr_t fnc);
 void iFpLp_32(x64emu_t *emu, uintptr_t fnc);
 void iFppi_32(x64emu_t *emu, uintptr_t fnc);
 void iFppu_32(x64emu_t *emu, uintptr_t fnc);
+void iFppd_32(x64emu_t *emu, uintptr_t fnc);
 void iFppL_32(x64emu_t *emu, uintptr_t fnc);
 void iFppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFppa_32(x64emu_t *emu, uintptr_t fnc);
@@ -442,7 +446,9 @@ void uFuuu_32(x64emu_t *emu, uintptr_t fnc);
 void uFuup_32(x64emu_t *emu, uintptr_t fnc);
 void uFupp_32(x64emu_t *emu, uintptr_t fnc);
 void uFpuU_32(x64emu_t *emu, uintptr_t fnc);
+void uFpup_32(x64emu_t *emu, uintptr_t fnc);
 void uFppu_32(x64emu_t *emu, uintptr_t fnc);
+void uFppp_32(x64emu_t *emu, uintptr_t fnc);
 void fFuii_32(x64emu_t *emu, uintptr_t fnc);
 void fFfff_32(x64emu_t *emu, uintptr_t fnc);
 void fFffp_32(x64emu_t *emu, uintptr_t fnc);
@@ -482,6 +488,7 @@ void pFpcU_32(x64emu_t *emu, uintptr_t fnc);
 void pFpii_32(x64emu_t *emu, uintptr_t fnc);
 void pFpiu_32(x64emu_t *emu, uintptr_t fnc);
 void pFpiL_32(x64emu_t *emu, uintptr_t fnc);
+void pFpip_32(x64emu_t *emu, uintptr_t fnc);
 void pFpiS_32(x64emu_t *emu, uintptr_t fnc);
 void pFpII_32(x64emu_t *emu, uintptr_t fnc);
 void pFpup_32(x64emu_t *emu, uintptr_t fnc);
@@ -649,6 +656,7 @@ void iFuiup_32(x64emu_t *emu, uintptr_t fnc);
 void iFuupi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpiiL_32(x64emu_t *emu, uintptr_t fnc);
 void iFpipp_32(x64emu_t *emu, uintptr_t fnc);
+void iFpupi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpupp_32(x64emu_t *emu, uintptr_t fnc);
 void iFppii_32(x64emu_t *emu, uintptr_t fnc);
 void iFppiU_32(x64emu_t *emu, uintptr_t fnc);
@@ -656,6 +664,7 @@ void iFppip_32(x64emu_t *emu, uintptr_t fnc);
 void iFppui_32(x64emu_t *emu, uintptr_t fnc);
 void iFppLi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppi_32(x64emu_t *emu, uintptr_t fnc);
+void iFpppu_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppL_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFSpiL_32(x64emu_t *emu, uintptr_t fnc);
@@ -702,6 +711,7 @@ void pFullu_32(x64emu_t *emu, uintptr_t fnc);
 void pFlfff_32(x64emu_t *emu, uintptr_t fnc);
 void pFpiLL_32(x64emu_t *emu, uintptr_t fnc);
 void pFpuii_32(x64emu_t *emu, uintptr_t fnc);
+void pFpupp_32(x64emu_t *emu, uintptr_t fnc);
 void pFpLiS_32(x64emu_t *emu, uintptr_t fnc);
 void pFppLL_32(x64emu_t *emu, uintptr_t fnc);
 void pFpppp_32(x64emu_t *emu, uintptr_t fnc);
@@ -713,7 +723,7 @@ void vFXLLbL__32(x64emu_t *emu, uintptr_t fnc);
 void iFppbp_p_32(x64emu_t *emu, uintptr_t fnc);
 void iFBp_pui_32(x64emu_t *emu, uintptr_t fnc);
 void IFpBp_ii_32(x64emu_t *emu, uintptr_t fnc);
-void uFppiBp__32(x64emu_t *emu, uintptr_t fnc);
+void uFppibp__32(x64emu_t *emu, uintptr_t fnc);
 void UFpBp_ii_32(x64emu_t *emu, uintptr_t fnc);
 void lFiibl_L_32(x64emu_t *emu, uintptr_t fnc);
 void LFpbp_Lp_32(x64emu_t *emu, uintptr_t fnc);
@@ -844,6 +854,7 @@ void iFippLi_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiuup_32(x64emu_t *emu, uintptr_t fnc);
 void iFpippp_32(x64emu_t *emu, uintptr_t fnc);
 void iFpCCCC_32(x64emu_t *emu, uintptr_t fnc);
+void iFpuipp_32(x64emu_t *emu, uintptr_t fnc);
 void iFpLuLi_32(x64emu_t *emu, uintptr_t fnc);
 void iFppiUi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppip_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedfontconfig_private.h b/src/wrapped32/wrappedfontconfig_private.h
index f833ac19..36821094 100644
--- a/src/wrapped32/wrappedfontconfig_private.h
+++ b/src/wrapped32/wrappedfontconfig_private.h
@@ -4,201 +4,201 @@
 
 // FcValue is a typedef with int+union, with biggest part is a double => so 3 "u32" on the stack
 
-//GO(FcAtomicCreate, pFp)
-//GO(FcAtomicDeleteNew, vFp)
-//GO(FcAtomicDestroy, vFp)
-//GO(FcAtomicLock, iFp)
-//GO(FcAtomicNewFile, pFp)
-//GO(FcAtomicOrigFile, pFp)
-//GO(FcAtomicReplaceOrig, iFp)
-//GO(FcAtomicUnlock, vFp)
-//GO(FcBlanksAdd, iFpu)
-//GO(FcBlanksCreate, pFv)
-//GO(FcBlanksDestroy, vFp)
-//GO(FcBlanksIsMember, iFpu)
-//GO(FcCacheCopySet, pFp)
-//GO(FcCacheDir, pFp)
-//GO(FcCacheNumFont, iFp)
-//GO(FcCacheNumSubdir, iFp)
-//GO(FcCacheSubdir, pFpi)
-//GO(FcCharSetAddChar, iFpu)
-//GO(FcCharSetCopy, pFp)
-//GO(FcCharSetCount, uFp)
-//GO(FcCharSetCoverage, uFpup)
-//GO(FcCharSetCreate, pFv)
-//GO(FcCharSetDestroy, vFp)
-//GO(FcCharSetEqual, iFpp)
-//GO(FcCharSetFirstPage, uFppp)   // second p is a fixed sized array
-//GO(FcCharSetHasChar, iFpu)
-//GO(FcCharSetIntersect, pFpp)
-//GO(FcCharSetIntersectCount, uFpp)
-//GO(FcCharSetIsSubset, iFpp)
-//GO(FcCharSetMerge, iFppp)
-//GO(FcCharSetNew, pFv)
-//GO(FcCharSetNextPage, uFppp)
-//GO(FcCharSetSubtract, pFpp)
-//GO(FcCharSetSubtractCount, uFpp)
-//GO(FcCharSetUnion, pFpp)
-//GO(FcConfigAppFontAddDir, iFpp)
-//GO(FcConfigAppFontAddFile, iFpp)
-//GO(FcConfigAppFontClear, vFp)
-//GO(FcConfigBuildFonts, iFp)
-//GO(FcConfigCreate, pFv)
-//GO(FcConfigDestroy, vFp)
-//GO(FcConfigEnableHome, iFi)
-//GO(FcConfigFilename, pFp)
-//GO(FcConfigGetBlanks, pFp)
-//GO(FcConfigGetCache, pFp)
-//GO(FcConfigGetCacheDirs, pFp)
-//GO(FcConfigGetConfigDirs, pFp)
-//GO(FcConfigGetConfigFiles, pFp)
+GO(FcAtomicCreate, pFp)
+GO(FcAtomicDeleteNew, vFp)
+GO(FcAtomicDestroy, vFp)
+GO(FcAtomicLock, iFp)
+GO(FcAtomicNewFile, pFp)
+GO(FcAtomicOrigFile, pFp)
+GO(FcAtomicReplaceOrig, iFp)
+GO(FcAtomicUnlock, vFp)
+GO(FcBlanksAdd, iFpu)
+GO(FcBlanksCreate, pFv)
+GO(FcBlanksDestroy, vFp)
+GO(FcBlanksIsMember, iFpu)
+GO(FcCacheCopySet, pFp) //GO(FcCacheCopySet, biibp__Fp)
+GO(FcCacheDir, pFp)
+GO(FcCacheNumFont, iFp)
+GO(FcCacheNumSubdir, iFp)
+GO(FcCacheSubdir, pFpi)
+GO(FcCharSetAddChar, iFpu)
+GO(FcCharSetCopy, pFp)
+GO(FcCharSetCount, uFp)
+GO(FcCharSetCoverage, uFpup)
+GO(FcCharSetCreate, pFv)
+GO(FcCharSetDestroy, vFp)
+GO(FcCharSetEqual, iFpp)
+GO(FcCharSetFirstPage, uFppp)   // second p is a fixed sized array
+GO(FcCharSetHasChar, iFpu)
+GO(FcCharSetIntersect, pFpp)
+GO(FcCharSetIntersectCount, uFpp)
+GO(FcCharSetIsSubset, iFpp)
+GO(FcCharSetMerge, iFppp)
+GO(FcCharSetNew, pFv)
+GO(FcCharSetNextPage, uFppp)
+GO(FcCharSetSubtract, pFpp)
+GO(FcCharSetSubtractCount, uFpp)
+GO(FcCharSetUnion, pFpp)
+GO(FcConfigAppFontAddDir, iFpp)
+GO(FcConfigAppFontAddFile, iFpp)
+GO(FcConfigAppFontClear, vFp)
+GO(FcConfigBuildFonts, iFp)
+GO(FcConfigCreate, pFv)
+GO(FcConfigDestroy, vFp)
+GO(FcConfigEnableHome, iFi)
+GO(FcConfigFilename, pFp)
+GO(FcConfigGetBlanks, pFp)
+GO(FcConfigGetCache, pFp)
+GO(FcConfigGetCacheDirs, pFp)
+GO(FcConfigGetConfigDirs, pFp)
+GO(FcConfigGetConfigFiles, pFp)
 GO(FcConfigGetCurrent, pFv) // need wrapping for FcConfig?
-//GO(FcConfigGetFontDirs, pFp)
-//GO(FcConfigGetFonts, pFpu)
-//GO(FcConfigGetRescanInterval, iFp)
+GO(FcConfigGetFontDirs, pFp)
+//GO(FcConfigGetFonts, biibp__Fpu)
+GO(FcConfigGetRescanInterval, iFp)
 //GO(FcConfigGetRescanInverval, 
-//GO(FcConfigGetSysRoot, pFp)
-//GO(FcConfigHome, pFv)
-//GO(FcConfigParseAndLoad, iFppi)
-//GO(FcConfigReference, pFp)
-//GO(FcConfigSetCurrent, iFp)
-//GO(FcConfigSetRescanInterval, iFpi)
+GO(FcConfigGetSysRoot, pFp)
+GO(FcConfigHome, pFv)
+GO(FcConfigParseAndLoad, iFppi)
+GO(FcConfigReference, pFp)
+GO(FcConfigSetCurrent, iFp)
+GO(FcConfigSetRescanInterval, iFpi)
 //GO(FcConfigSetRescanInverval, 
 GO(FcConfigSubstitute, iFppu)   // might need wrapping, 1st arg is FcConfig
-//GO(FcConfigSubstituteWithPat, iFpppu)
-//GO(FcConfigUptoDate, iFp)
+GO(FcConfigSubstituteWithPat, iFpppu)
+GO(FcConfigUptoDate, iFp)
 GO(FcDefaultSubstitute, vFp)
-//GO(FcDirCacheLoad, pFppp)
+GO(FcDirCacheLoad, pFppbp_)
 //GO(FcDirCacheLoadFile, pFpp)
-//GO(FcDirCacheRead, pFpip)
-//GO(FcDirCacheUnlink, iFpp)
-//GO(FcDirCacheUnload, vFp)
-//GO(FcDirCacheValid, iFp)
-//GO(FcDirSave, iFppp)
-//GO(FcDirScan, iFpppppi)
-//GO(FcFileIsDir, iFp)
-//GO(FcFileScan, iFpppppi)
-//GO(FcFini, vFv)
-GO(FcFontList, pFppp)   // need wrapping of returned FcFontSet?
+GO(FcDirCacheRead, pFpip)
+GO(FcDirCacheUnlink, iFpp)
+GO(FcDirCacheUnload, vFp)
+GO(FcDirCacheValid, iFp)
+//GO(FcDirSave, iFbiibp__pp)
+//GO(FcDirScan, iFbiibp__ppppi)
+GO(FcFileIsDir, iFp)
+//GO(FcFileScan, iFbiibp__ppppi)
+GO(FcFini, vFv)
+GO(FcFontList, pFppp)   // need wrapping of returned FcFontSet? GO(FcFontList, biibp__Fppbiibp__)
 GO(FcFontMatch, pFppp)
-//GO(FcFontRenderPrepare, pFppp)
-//GO(FcFontSetAdd, iFpp)
-//GO(FcFontSetCreate, pFv)
-GO(FcFontSetDestroy, vFp)
-//GO(FcFontSetList, pFppipp)
-//GO(FcFontSetMatch, pFppipp)
-//GO(FcFontSetPrint, vFp)
-//GO(FcFontSetSort, pFppipipp)
-//GO(FcFontSetSortDestroy, vFp)
-//GO(FcFontSort, pFppipp)
+GO(FcFontRenderPrepare, pFppp)
+//GO(FcFontSetAdd, iFbiibp__p)
+//GO(FcFontSetCreate, biibp__Fv)
+GO(FcFontSetDestroy, vFp) //GO(FcFontSetDestroy, vFbiibp__)
+//GO(FcFontSetList, biibp__Fpbbiibp___ipbiibp__)
+//GO(FcFontSetMatch, pFpbbiibp___ipp)
+//GO(FcFontSetPrint, vFbiibp__)
+//GO(FcFontSetSort, biibp__Fpbbiibp___ipibp_p)
+//GO(FcFontSetSortDestroy, vFbiibp__)
+//GO(FcFontSort, biibp__Fppibp_p)
 //GO(FcFreeTypeCharIndex, uFpu)
 //GO(FcFreeTypeCharSet, 
 //GO(FcFreeTypeCharSetAndSpacing, 
-//GO(FcFreeTypeQuery, pFpupp)
+GO(FcFreeTypeQuery, pFpupp)
 //GO(FcFreeTypeQueryFace, pFppip)
-//GO(FcGetLangs, pFv)
+GO(FcGetLangs, pFv)
 GO(FcGetVersion, iFv)
 GO(FcInit, iFv)
 GO(FcInitBringUptoDate, iFv)
-//GO(FcInitLoadConfig, pFv)
-//GO(FcInitLoadConfigAndFonts, pFv)
+GO(FcInitLoadConfig, pFv)
+GO(FcInitLoadConfigAndFonts, pFv)
 GO(FcInitReinitialize, iFv)
-//GO(FcLangGetCharSet, pFp)
-//GO(FcLangSetAdd, iFpp)
-//GO(FcLangSetCompare, uFpp)
-//GO(FcLangSetContains, iFpp)
-//GO(FcLangSetCopy, pFp)
-//GO(FcLangSetCreate, pFv)
-//GO(FcLangSetDestroy, vFp)
-//GO(FcLangSetEqual, iFpp)
-//GO(FcLangSetGetLangs, pFp)
-//GO(FcLangSetHash, uFp)
-//GO(FcLangSetHasLang, uFpp)
-//GO(FcMatrixCopy, pFp)
-//GO(FcMatrixEqual, iFpp)
-//GO(FcMatrixMultiply, vFppp)
-//GO(FcMatrixRotate, vFpdd)
-//GO(FcMatrixScale, vFpdd)
-//GO(FcMatrixShear, vFpdd)
-//GO(FcNameConstant, iFpp)
-//GO(FcNameGetConstant, pFp)
-//GO(FcNameGetObjectType, pFp)
-//GO(FcNameParse, pFp)
-//GO(FcNameRegisterConstants, iFpi)
-//GO(FcNameRegisterObjectTypes, iFpi)
-//GO(FcNameUnparse, pFp)
-//GO(FcNameUnregisterConstants, iFpi)
-//GO(FcNameUnregisterObjectTypes, iFpi)
-GO(FcObjectSetAdd, iFpp)
-//GOM(FcObjectSetBuild, pFEpV)
-GO(FcObjectSetCreate, pFv)
-GO(FcObjectSetDestroy, vFp)
-//GOM(FcObjectSetVaBuild, pFEpA)
+GO(FcLangGetCharSet, pFp)
+GO(FcLangSetAdd, iFpp)
+GO(FcLangSetCompare, uFpp)
+GO(FcLangSetContains, iFpp)
+GO(FcLangSetCopy, pFp)
+GO(FcLangSetCreate, pFv)
+GO(FcLangSetDestroy, vFp)
+GO(FcLangSetEqual, iFpp)
+GO(FcLangSetGetLangs, pFp)
+GO(FcLangSetHash, uFp)
+GO(FcLangSetHasLang, uFpp)
+GO(FcMatrixCopy, pFp)
+GO(FcMatrixEqual, iFpp)
+GO(FcMatrixMultiply, vFppp)
+GO(FcMatrixRotate, vFpdd)
+GO(FcMatrixScale, vFpdd)
+GO(FcMatrixShear, vFpdd)
+GO(FcNameConstant, iFpp)
+//GO(FcNameGetConstant, bppi_Fp)
+//GO(FcNameGetObjectType, bpi_Fp)
+GO(FcNameParse, pFp)
+GO(FcNameRegisterConstants, iFbppi_i)
+GO(FcNameRegisterObjectTypes, iFbpi_i)
+GO(FcNameUnparse, pFp)
+GO(FcNameUnregisterConstants, iFbppi_i)
+GO(FcNameUnregisterObjectTypes, iFbpi_i)
+GO(FcObjectSetAdd, iFpp) //GO(FcObjectSetAdd, iFbiibp__p)
+//GOM(FcObjectSetBuild, biibp__FEpV)
+GO(FcObjectSetCreate, pFv) //GO(FcObjectSetCreate, biibp__Fv)
+GO(FcObjectSetDestroy, vFp) //GO(FcObjectSetDestroy, vFbiibp__)
+//GOM(FcObjectSetVaBuild, biibp__FEpp)
 GOM(FcPatternAdd, iFppiUi)  //%noE  //need M for the iU that is a an FcValue
-//GO(FcPatternAddBool, iFppi)
-//GO(FcPatternAddCharSet, iFppp)
-//GO(FcPatternAddDouble, iFppd)
+GO(FcPatternAddBool, iFppi)
+GO(FcPatternAddCharSet, iFppp)
+GO(FcPatternAddDouble, iFppd)
 //GO(FcPatternAddFTFace, iFppp)
-//GO(FcPatternAddInteger, iFppi)
-//GO(FcPatternAddLangSet, iFppp)
-//GO(FcPatternAddMatrix, iFppp)
-//GO(FcPatternAddString, iFppp)
+GO(FcPatternAddInteger, iFppi)
+GO(FcPatternAddLangSet, iFppp)
+GO(FcPatternAddMatrix, iFppp)
+GO(FcPatternAddString, iFppp)
 //GO(FcPatternAddWeak, iFppiLi)
 //GOM(FcPatternBuild, pFEpV)
 GO(FcPatternCreate, pFv)
-//GO(FcPatternDel, iFpp)
+GO(FcPatternDel, iFpp)
 GO(FcPatternDestroy, vFp)
-//GO(FcPatternDuplicate, pFp)
-//GO(FcPatternEqual, iFpp)
-//GO(FcPatternEqualSubset, iFppp)
-//GO(FcPatternFilter, pFpp)
-//GO(FcPatternFormat, pFpp)
+GO(FcPatternDuplicate, pFp)
+GO(FcPatternEqual, iFpp)
+//GO(FcPatternEqualSubset, iFppbiibp__)
+//GO(FcPatternFilter, pFpbiibp__)
+GO(FcPatternFormat, pFpp)
 //GO(FcPatternGet, uFppip)
 GO(FcPatternGetBool, uFppip)
-//GO(FcPatternGetCharSet, uFppip)
-//GO(FcPatternGetDouble, uFppip)
+GO(FcPatternGetCharSet, uFppibp_)
+GO(FcPatternGetDouble, uFppip)
 //GO(FcPatternGetFTFace, iFppip)
-//GO(FcPatternGetInteger, uFppip)
-//GO(FcPatternGetLangSet, uFppip)
-//GO(FcPatternGetMatrix, uFppip)
-GO(FcPatternGetString, uFppiBp_)
-//GO(FcPatternHash, uFp)
-//GO(FcPatternPrint, vFp)
-//GO(FcPatternReference, vFp)
-//GO(FcPatternRemove, iFppi)
-//GOM(FcPatternVaBuild, pFEpA)
-//GO(FcStrBasename, pFp)
-//GO(FcStrCmp, iFpp)
-//GO(FcStrCmpIgnoreCase, iFpp)
-//GO(FcStrCopy, pFp)
-//GO(FcStrCopyFilename, pFp)
-//GO(FcStrDirname, pFp)
-//GO(FcStrDowncase, pFp)
-//GO(FcStrFree, vFp)
-//GO(FcStrListCreate, pFp)
-//GO(FcStrListDone, vFp)
-//GO(FcStrListFirst, vFp)
-//GO(FcStrListNext, pFp)
-//GO(FcStrPlus, pFpp)
-//GO(FcStrSetAdd, iFpp)
-//GO(FcStrSetAddFilename, iFpp)
-//GO(FcStrSetCreate, pFv)
-//GO(FcStrSetDel, iFpp)
-//GO(FcStrSetDestroy, vFp)
-//GO(FcStrSetEqual, iFpp)
-//GO(FcStrSetMember, iFpp)
-//GO(FcStrStr, pFpp)
-//GO(FcStrStrIgnoreCase, pFpp)
-//GO(FcUcs4ToUtf8, iFup)
-//GO(FcUtf16Len, iFpuipp)
-//GO(FcUtf16ToUcs4, iFpupi)
-//GO(FcUtf8Len, iFpipp)
-//GO(FcUtf8ToUcs4, iFppi)
+GO(FcPatternGetInteger, uFppip)
+GO(FcPatternGetLangSet, uFppibp_)
+GO(FcPatternGetMatrix, uFppibp_)
+GO(FcPatternGetString, uFppibp_)
+GO(FcPatternHash, uFp)
+GO(FcPatternPrint, vFp)
+GO(FcPatternReference, vFp)
+GO(FcPatternRemove, iFppi)
+//GOM(FcPatternVaBuild, pFEpp)
+GO(FcStrBasename, pFp)
+GO(FcStrCmp, iFpp)
+GO(FcStrCmpIgnoreCase, iFpp)
+GO(FcStrCopy, pFp)
+GO(FcStrCopyFilename, pFp)
+GO(FcStrDirname, pFp)
+GO(FcStrDowncase, pFp)
+GO(FcStrFree, vFp)
+GO(FcStrListCreate, pFp)
+GO(FcStrListDone, vFp)
+GO(FcStrListFirst, vFp)
+GO(FcStrListNext, pFp)
+GO(FcStrPlus, pFpp)
+GO(FcStrSetAdd, iFpp)
+GO(FcStrSetAddFilename, iFpp)
+GO(FcStrSetCreate, pFv)
+GO(FcStrSetDel, iFpp)
+GO(FcStrSetDestroy, vFp)
+GO(FcStrSetEqual, iFpp)
+GO(FcStrSetMember, iFpp)
+GO(FcStrStr, pFpp)
+GO(FcStrStrIgnoreCase, pFpp)
+GO(FcUcs4ToUtf8, iFup)
+GO(FcUtf16Len, iFpuipp)
+GO(FcUtf16ToUcs4, iFpupi)
+GO(FcUtf8Len, iFpipp)
+GO(FcUtf8ToUcs4, iFppi)
 //GO(FcValueDestroy, 
 //GO(FcValueEqual, 
 //GO(FcValuePrint, 
 //GO(FcValueSave, 
-//GO(FcWeightFromOpenTypeDouble, dFd)
-//GO(FcWeightToOpenTypeDouble, dFd)
+GO(FcWeightFromOpenTypeDouble, dFd)
+GO(FcWeightToOpenTypeDouble, dFd)
 //GO(_fini, 
 //GO(_init,