about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-06-02 14:52:10 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-06-02 14:52:10 +0200
commitd3ea3909830b837cb6aa0a3e74af72c10575f2f9 (patch)
tree85f25a028015998590de4163424aa12d335f5eed /src
parent2f1cc844fdd9b2c6d6fd5dafcf590afe99f99736 (diff)
downloadbox64-d3ea3909830b837cb6aa0a3e74af72c10575f2f9.tar.gz
box64-d3ea3909830b837cb6aa0a3e74af72c10575f2f9.zip
Added wrapped libncurses, libncurses6, libncursesw, libformw, libtinfo and libtinfo6
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h12
-rw-r--r--src/wrapped/generated/functions_list.txt31
-rw-r--r--src/wrapped/generated/wrappedlibncurses6types.h21
-rw-r--r--src/wrapped/generated/wrappedlibncursestypes.h21
-rw-r--r--src/wrapped/generated/wrappedlibncurseswtypes.h21
-rw-r--r--src/wrapped/generated/wrappedlibtinfo6types.h19
-rw-r--r--src/wrapped/generated/wrappedlibtinfotypes.h19
-rw-r--r--src/wrapped/generated/wrapper.c86
-rw-r--r--src/wrapped/generated/wrapper.h31
-rw-r--r--src/wrapped/wrappedlibformw.c17
-rw-r--r--src/wrapped/wrappedlibformw_private.h80
-rwxr-xr-xsrc/wrapped/wrappedlibncurses.c103
-rwxr-xr-xsrc/wrapped/wrappedlibncurses6.c103
-rwxr-xr-xsrc/wrapped/wrappedlibncurses6_private.h424
-rwxr-xr-xsrc/wrapped/wrappedlibncurses_private.h419
-rwxr-xr-xsrc/wrapped/wrappedlibncursesw.c101
-rwxr-xr-xsrc/wrapped/wrappedlibncursesw_private.h419
-rwxr-xr-xsrc/wrapped/wrappedlibtinfo.c103
-rwxr-xr-xsrc/wrapped/wrappedlibtinfo6.c104
-rwxr-xr-xsrc/wrapped/wrappedlibtinfo6_private.h153
-rwxr-xr-xsrc/wrapped/wrappedlibtinfo_private.h153
21 files changed, 2434 insertions, 6 deletions
diff --git a/src/library_list.h b/src/library_list.h
index a3c4530e..4bc89d78 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -131,12 +131,12 @@ GO("liblzma.so.5", lzma)
 GO("libSM.so.6", libsm)
 GO("libICE.so.6", libice)
 //GO("libusb-1.0.so.0", libusb1)
-//GO("libncursesw.so.5", libncursesw)
-//GO("libformw.so.5", libformw)
-//GO("libncurses.so.5", libncurses)
-//GO("libtinfo.so.5", libtinfo)
-//GO("libncurses.so.6", libncurses6)
-//GO("libtinfo.so.6", libtinfo6)
+GO("libncursesw.so.5", libncursesw)
+GO("libformw.so.5", libformw)
+GO("libncurses.so.5", libncurses)
+GO("libtinfo.so.5", libtinfo)
+GO("libncurses.so.6", libncurses6)
+GO("libtinfo.so.6", libtinfo6)
 //GO("libtcmalloc_minimal.so.4", tcmallocminimal)
 //GO("libmpg123.so.0", mpg123)
 GO("libgnutls.so.30", gnutls)
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 564993a8..330ebb90 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -5,6 +5,7 @@
 #() vFf
 #() vFd
 #() vFl
+#() vFL
 #() vFp
 #() vFS
 #() cFv
@@ -14,6 +15,7 @@
 #() cFp
 #() wFp
 #() iFv
+#() iFw
 #() iFi
 #() iFu
 #() iFf
@@ -96,6 +98,7 @@
 #() vFSi
 #() cFpp
 #() iFEp
+#() iFwp
 #() iFii
 #() iFiI
 #() iFiu
@@ -107,6 +110,7 @@
 #() iFuu
 #() iFup
 #() iFli
+#() iFLi
 #() iFLL
 #() iFLp
 #() iFpw
@@ -161,12 +165,15 @@
 #() lFll
 #() lFpi
 #() lFpp
+#() LFii
+#() LFLp
 #() LFpi
 #() LFpL
 #() LFpp
 #() pFEp
 #() pFii
 #() pFiu
+#() pFiL
 #() pFip
 #() pFui
 #() pFuu
@@ -247,9 +254,12 @@
 #() iFEpp
 #() iFEpV
 #() iFESp
+#() iFwww
+#() iFwpp
 #() iFiwC
 #() iFiii
 #() iFiiu
+#() iFiiL
 #() iFiip
 #() iFiiO
 #() iFiuu
@@ -264,9 +274,11 @@
 #() iFuff
 #() iFuLL
 #() iFfff
+#() iFLwp
 #() iFLip
 #() iFLLp
 #() iFLpp
+#() iFpwp
 #() iFpii
 #() iFpiu
 #() iFpiL
@@ -468,14 +480,19 @@
 #() iFEppp
 #() iFEppV
 #() iFEpOu
+#() iFwwww
+#() iFwppp
 #() iFiiii
 #() iFiiiu
 #() iFiiip
 #() iFiiiN
 #() iFiill
+#() iFiiLi
+#() iFiipi
 #() iFiipp
 #() iFiuii
 #() iFilli
+#() iFiLwp
 #() iFipii
 #() iFipiO
 #() iFipui
@@ -512,6 +529,7 @@
 #() iFpupu
 #() iFpupV
 #() iFplip
+#() iFpLwp
 #() iFpLpi
 #() iFpLpL
 #() iFpLpp
@@ -574,6 +592,7 @@
 #() pFEpip
 #() pFEppi
 #() pFEppp
+#() pFiiii
 #() pFiiiu
 #() pFiiup
 #() pFippi
@@ -714,8 +733,10 @@
 #() iFpiiiL
 #() iFpiiip
 #() iFpiiuu
+#() iFpiiLi
 #() iFpiipi
 #() iFpiipp
+#() iFpiLwp
 #() iFpipii
 #() iFpipiL
 #() iFpippi
@@ -736,6 +757,7 @@
 #() iFppupi
 #() iFppupp
 #() iFppllp
+#() iFppLwp
 #() iFppLpi
 #() iFppLpL
 #() iFppLpp
@@ -879,6 +901,7 @@
 #() iFEiippi
 #() iFElpppp
 #() iFEpiipp
+#() iFEpiipV
 #() iFEpilpV
 #() iFEpippi
 #() iFEpuppp
@@ -886,6 +909,7 @@
 #() iFEppppp
 #() iFiiiiii
 #() iFiiiiip
+#() iFiiiLwp
 #() iFiuiipi
 #() iFipupup
 #() iFipuppp
@@ -939,6 +963,7 @@
 #() pFEpppLp
 #() pFEppppi
 #() pFEppppp
+#() pFiiiiii
 #() pFiCiiCi
 #() pFdddddd
 #() pFpiiiiu
@@ -1013,6 +1038,8 @@
 #() iFEpppiiu
 #() iFEpppppp
 #() iFiiiiiip
+#() iFpiiiiii
+#() iFpiiiLwp
 #() iFpiiuuiu
 #() iFpiuiipp
 #() iFpiupiii
@@ -1094,6 +1121,7 @@
 #() iFiiiiiiip
 #() iFiiupiupi
 #() iFuiifpppp
+#() iFLLLLLLLL
 #() iFpiiiiipi
 #() iFpWCuWCuu
 #() iFpuuiiiii
@@ -1144,6 +1172,8 @@
 #() iFipiipippi
 #() iFdddpppppp
 #() iFpipLpiiip
+#() iFpLLLLLLLL
+#() iFppiiiiiii
 #() iFppiuiippL
 #() iFpppiiuuii
 #() iFpppiipiiu
@@ -1185,6 +1215,7 @@
 #() uFpppppppppp
 #() pFpCuWCCuuCW
 #() pFpuuuwwwwWW
+#() pFplllllllll
 #() pFppuiipuuii
 #() pFpppppppppp
 #() vFuiiiiiiiiip
diff --git a/src/wrapped/generated/wrappedlibncurses6types.h b/src/wrapped/generated/wrappedlibncurses6types.h
new file mode 100644
index 00000000..9e6f065c
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibncurses6types.h
@@ -0,0 +1,21 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v1.3.0.11) *
+ *******************************************************************/
+#ifndef __wrappedlibncurses6TYPES_H_
+#define __wrappedlibncurses6TYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef int64_t (*iFpV_t)(void*, void*);
+typedef int64_t (*iFpiipV_t)(void*, int64_t, int64_t, void*, void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(printw, iFpV_t) \
+	GO(mvwprintw, iFpiipV_t)
+
+#endif // __wrappedlibncurses6TYPES_H_
diff --git a/src/wrapped/generated/wrappedlibncursestypes.h b/src/wrapped/generated/wrappedlibncursestypes.h
new file mode 100644
index 00000000..822e884e
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibncursestypes.h
@@ -0,0 +1,21 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v1.3.0.11) *
+ *******************************************************************/
+#ifndef __wrappedlibncursesTYPES_H_
+#define __wrappedlibncursesTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef int64_t (*iFpV_t)(void*, void*);
+typedef int64_t (*iFpiipV_t)(void*, int64_t, int64_t, void*, void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(printw, iFpV_t) \
+	GO(mvwprintw, iFpiipV_t)
+
+#endif // __wrappedlibncursesTYPES_H_
diff --git a/src/wrapped/generated/wrappedlibncurseswtypes.h b/src/wrapped/generated/wrappedlibncurseswtypes.h
new file mode 100644
index 00000000..a32a1831
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibncurseswtypes.h
@@ -0,0 +1,21 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v1.3.0.11) *
+ *******************************************************************/
+#ifndef __wrappedlibncurseswTYPES_H_
+#define __wrappedlibncurseswTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef int64_t (*iFpV_t)(void*, void*);
+typedef int64_t (*iFpiipV_t)(void*, int64_t, int64_t, void*, void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(printw, iFpV_t) \
+	GO(mvwprintw, iFpiipV_t)
+
+#endif // __wrappedlibncurseswTYPES_H_
diff --git a/src/wrapped/generated/wrappedlibtinfo6types.h b/src/wrapped/generated/wrappedlibtinfo6types.h
new file mode 100644
index 00000000..775a4714
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibtinfo6types.h
@@ -0,0 +1,19 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v1.3.0.11) *
+ *******************************************************************/
+#ifndef __wrappedlibtinfo6TYPES_H_
+#define __wrappedlibtinfo6TYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef int64_t (*iFpip_t)(void*, int64_t, void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(tputs, iFpip_t)
+
+#endif // __wrappedlibtinfo6TYPES_H_
diff --git a/src/wrapped/generated/wrappedlibtinfotypes.h b/src/wrapped/generated/wrappedlibtinfotypes.h
new file mode 100644
index 00000000..c378345e
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibtinfotypes.h
@@ -0,0 +1,19 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v1.3.0.11) *
+ *******************************************************************/
+#ifndef __wrappedlibtinfoTYPES_H_
+#define __wrappedlibtinfoTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef int64_t (*iFpip_t)(void*, int64_t, void*);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(tputs, iFpip_t)
+
+#endif // __wrappedlibtinfoTYPES_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 4ba79531..cf625c7d 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -39,6 +39,7 @@ typedef void (*vFu_t)(uint64_t);
 typedef void (*vFf_t)(float);
 typedef void (*vFd_t)(double);
 typedef void (*vFl_t)(intptr_t);
+typedef void (*vFL_t)(uintptr_t);
 typedef void (*vFp_t)(void*);
 typedef void (*vFS_t)(void*);
 typedef int8_t (*cFv_t)(void);
@@ -48,6 +49,7 @@ typedef int8_t (*cFf_t)(float);
 typedef int8_t (*cFp_t)(void*);
 typedef int16_t (*wFp_t)(void*);
 typedef int64_t (*iFv_t)(void);
+typedef int64_t (*iFw_t)(int16_t);
 typedef int64_t (*iFi_t)(int64_t);
 typedef int64_t (*iFu_t)(uint64_t);
 typedef int64_t (*iFf_t)(float);
@@ -130,6 +132,7 @@ typedef void (*vFpS_t)(void*, void*);
 typedef void (*vFSi_t)(void*, int64_t);
 typedef int8_t (*cFpp_t)(void*, void*);
 typedef int64_t (*iFEp_t)(x64emu_t*, void*);
+typedef int64_t (*iFwp_t)(int16_t, void*);
 typedef int64_t (*iFii_t)(int64_t, int64_t);
 typedef int64_t (*iFiI_t)(int64_t, int64_t);
 typedef int64_t (*iFiu_t)(int64_t, uint64_t);
@@ -141,6 +144,7 @@ typedef int64_t (*iFui_t)(uint64_t, int64_t);
 typedef int64_t (*iFuu_t)(uint64_t, uint64_t);
 typedef int64_t (*iFup_t)(uint64_t, void*);
 typedef int64_t (*iFli_t)(intptr_t, int64_t);
+typedef int64_t (*iFLi_t)(uintptr_t, int64_t);
 typedef int64_t (*iFLL_t)(uintptr_t, uintptr_t);
 typedef int64_t (*iFLp_t)(uintptr_t, void*);
 typedef int64_t (*iFpw_t)(void*, int16_t);
@@ -195,12 +199,15 @@ typedef double (*dFpp_t)(void*, void*);
 typedef intptr_t (*lFll_t)(intptr_t, intptr_t);
 typedef intptr_t (*lFpi_t)(void*, int64_t);
 typedef intptr_t (*lFpp_t)(void*, void*);
+typedef uintptr_t (*LFii_t)(int64_t, int64_t);
+typedef uintptr_t (*LFLp_t)(uintptr_t, void*);
 typedef uintptr_t (*LFpi_t)(void*, int64_t);
 typedef uintptr_t (*LFpL_t)(void*, uintptr_t);
 typedef uintptr_t (*LFpp_t)(void*, void*);
 typedef void* (*pFEp_t)(x64emu_t*, void*);
 typedef void* (*pFii_t)(int64_t, int64_t);
 typedef void* (*pFiu_t)(int64_t, uint64_t);
+typedef void* (*pFiL_t)(int64_t, uintptr_t);
 typedef void* (*pFip_t)(int64_t, void*);
 typedef void* (*pFui_t)(uint64_t, int64_t);
 typedef void* (*pFuu_t)(uint64_t, uint64_t);
@@ -281,9 +288,12 @@ typedef int64_t (*iFEpL_t)(x64emu_t*, void*, uintptr_t);
 typedef int64_t (*iFEpp_t)(x64emu_t*, void*, void*);
 typedef int64_t (*iFEpV_t)(x64emu_t*, void*, void*);
 typedef int64_t (*iFESp_t)(x64emu_t*, void*, void*);
+typedef int64_t (*iFwww_t)(int16_t, int16_t, int16_t);
+typedef int64_t (*iFwpp_t)(int16_t, void*, void*);
 typedef int64_t (*iFiwC_t)(int64_t, int16_t, uint8_t);
 typedef int64_t (*iFiii_t)(int64_t, int64_t, int64_t);
 typedef int64_t (*iFiiu_t)(int64_t, int64_t, uint64_t);
+typedef int64_t (*iFiiL_t)(int64_t, int64_t, uintptr_t);
 typedef int64_t (*iFiip_t)(int64_t, int64_t, void*);
 typedef int64_t (*iFiiO_t)(int64_t, int64_t, int32_t);
 typedef int64_t (*iFiuu_t)(int64_t, uint64_t, uint64_t);
@@ -298,9 +308,11 @@ typedef int64_t (*iFuup_t)(uint64_t, uint64_t, void*);
 typedef int64_t (*iFuff_t)(uint64_t, float, float);
 typedef int64_t (*iFuLL_t)(uint64_t, uintptr_t, uintptr_t);
 typedef int64_t (*iFfff_t)(float, float, float);
+typedef int64_t (*iFLwp_t)(uintptr_t, int16_t, void*);
 typedef int64_t (*iFLip_t)(uintptr_t, int64_t, void*);
 typedef int64_t (*iFLLp_t)(uintptr_t, uintptr_t, void*);
 typedef int64_t (*iFLpp_t)(uintptr_t, void*, void*);
+typedef int64_t (*iFpwp_t)(void*, int16_t, void*);
 typedef int64_t (*iFpii_t)(void*, int64_t, int64_t);
 typedef int64_t (*iFpiu_t)(void*, int64_t, uint64_t);
 typedef int64_t (*iFpiL_t)(void*, int64_t, uintptr_t);
@@ -502,14 +514,19 @@ typedef int64_t (*iFEppL_t)(x64emu_t*, void*, void*, uintptr_t);
 typedef int64_t (*iFEppp_t)(x64emu_t*, void*, void*, void*);
 typedef int64_t (*iFEppV_t)(x64emu_t*, void*, void*, void*);
 typedef int64_t (*iFEpOu_t)(x64emu_t*, void*, int32_t, uint64_t);
+typedef int64_t (*iFwwww_t)(int16_t, int16_t, int16_t, int16_t);
+typedef int64_t (*iFwppp_t)(int16_t, void*, void*, void*);
 typedef int64_t (*iFiiii_t)(int64_t, int64_t, int64_t, int64_t);
 typedef int64_t (*iFiiiu_t)(int64_t, int64_t, int64_t, uint64_t);
 typedef int64_t (*iFiiip_t)(int64_t, int64_t, int64_t, void*);
 typedef int64_t (*iFiiiN_t)(int64_t, int64_t, int64_t, ...);
 typedef int64_t (*iFiill_t)(int64_t, int64_t, intptr_t, intptr_t);
+typedef int64_t (*iFiiLi_t)(int64_t, int64_t, uintptr_t, int64_t);
+typedef int64_t (*iFiipi_t)(int64_t, int64_t, void*, int64_t);
 typedef int64_t (*iFiipp_t)(int64_t, int64_t, void*, void*);
 typedef int64_t (*iFiuii_t)(int64_t, uint64_t, int64_t, int64_t);
 typedef int64_t (*iFilli_t)(int64_t, intptr_t, intptr_t, int64_t);
+typedef int64_t (*iFiLwp_t)(int64_t, uintptr_t, int16_t, void*);
 typedef int64_t (*iFipii_t)(int64_t, void*, int64_t, int64_t);
 typedef int64_t (*iFipiO_t)(int64_t, void*, int64_t, int32_t);
 typedef int64_t (*iFipui_t)(int64_t, void*, uint64_t, int64_t);
@@ -546,6 +563,7 @@ typedef int64_t (*iFpuLp_t)(void*, uint64_t, uintptr_t, void*);
 typedef int64_t (*iFpupu_t)(void*, uint64_t, void*, uint64_t);
 typedef int64_t (*iFpupV_t)(void*, uint64_t, void*, void*);
 typedef int64_t (*iFplip_t)(void*, intptr_t, int64_t, void*);
+typedef int64_t (*iFpLwp_t)(void*, uintptr_t, int16_t, void*);
 typedef int64_t (*iFpLpi_t)(void*, uintptr_t, void*, int64_t);
 typedef int64_t (*iFpLpL_t)(void*, uintptr_t, void*, uintptr_t);
 typedef int64_t (*iFpLpp_t)(void*, uintptr_t, void*, void*);
@@ -608,6 +626,7 @@ typedef void* (*pFEpii_t)(x64emu_t*, void*, int64_t, int64_t);
 typedef void* (*pFEpip_t)(x64emu_t*, void*, int64_t, void*);
 typedef void* (*pFEppi_t)(x64emu_t*, void*, void*, int64_t);
 typedef void* (*pFEppp_t)(x64emu_t*, void*, void*, void*);
+typedef void* (*pFiiii_t)(int64_t, int64_t, int64_t, int64_t);
 typedef void* (*pFiiiu_t)(int64_t, int64_t, int64_t, uint64_t);
 typedef void* (*pFiiup_t)(int64_t, int64_t, uint64_t, void*);
 typedef void* (*pFippi_t)(int64_t, void*, void*, int64_t);
@@ -748,8 +767,10 @@ typedef int64_t (*iFpiiiu_t)(void*, int64_t, int64_t, int64_t, uint64_t);
 typedef int64_t (*iFpiiiL_t)(void*, int64_t, int64_t, int64_t, uintptr_t);
 typedef int64_t (*iFpiiip_t)(void*, int64_t, int64_t, int64_t, void*);
 typedef int64_t (*iFpiiuu_t)(void*, int64_t, int64_t, uint64_t, uint64_t);
+typedef int64_t (*iFpiiLi_t)(void*, int64_t, int64_t, uintptr_t, int64_t);
 typedef int64_t (*iFpiipi_t)(void*, int64_t, int64_t, void*, int64_t);
 typedef int64_t (*iFpiipp_t)(void*, int64_t, int64_t, void*, void*);
+typedef int64_t (*iFpiLwp_t)(void*, int64_t, uintptr_t, int16_t, void*);
 typedef int64_t (*iFpipii_t)(void*, int64_t, void*, int64_t, int64_t);
 typedef int64_t (*iFpipiL_t)(void*, int64_t, void*, int64_t, uintptr_t);
 typedef int64_t (*iFpippi_t)(void*, int64_t, void*, void*, int64_t);
@@ -770,6 +791,7 @@ typedef int64_t (*iFppipp_t)(void*, void*, int64_t, void*, void*);
 typedef int64_t (*iFppupi_t)(void*, void*, uint64_t, void*, int64_t);
 typedef int64_t (*iFppupp_t)(void*, void*, uint64_t, void*, void*);
 typedef int64_t (*iFppllp_t)(void*, void*, intptr_t, intptr_t, void*);
+typedef int64_t (*iFppLwp_t)(void*, void*, uintptr_t, int16_t, void*);
 typedef int64_t (*iFppLpi_t)(void*, void*, uintptr_t, void*, int64_t);
 typedef int64_t (*iFppLpL_t)(void*, void*, uintptr_t, void*, uintptr_t);
 typedef int64_t (*iFppLpp_t)(void*, void*, uintptr_t, void*, void*);
@@ -913,6 +935,7 @@ typedef int8_t (*cFppLppi_t)(void*, void*, uintptr_t, void*, void*, int64_t);
 typedef int64_t (*iFEiippi_t)(x64emu_t*, int64_t, int64_t, void*, void*, int64_t);
 typedef int64_t (*iFElpppp_t)(x64emu_t*, intptr_t, void*, void*, void*, void*);
 typedef int64_t (*iFEpiipp_t)(x64emu_t*, void*, int64_t, int64_t, void*, void*);
+typedef int64_t (*iFEpiipV_t)(x64emu_t*, void*, int64_t, int64_t, void*, void*);
 typedef int64_t (*iFEpilpV_t)(x64emu_t*, void*, int64_t, intptr_t, void*, void*);
 typedef int64_t (*iFEpippi_t)(x64emu_t*, void*, int64_t, void*, void*, int64_t);
 typedef int64_t (*iFEpuppp_t)(x64emu_t*, void*, uint64_t, void*, void*, void*);
@@ -920,6 +943,7 @@ typedef int64_t (*iFEppiLi_t)(x64emu_t*, void*, void*, int64_t, uintptr_t, int64
 typedef int64_t (*iFEppppp_t)(x64emu_t*, void*, void*, void*, void*, void*);
 typedef int64_t (*iFiiiiii_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t);
 typedef int64_t (*iFiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, void*);
+typedef int64_t (*iFiiiLwp_t)(int64_t, int64_t, int64_t, uintptr_t, int16_t, void*);
 typedef int64_t (*iFiuiipi_t)(int64_t, uint64_t, int64_t, int64_t, void*, int64_t);
 typedef int64_t (*iFipupup_t)(int64_t, void*, uint64_t, void*, uint64_t, void*);
 typedef int64_t (*iFipuppp_t)(int64_t, void*, uint64_t, void*, void*, void*);
@@ -973,6 +997,7 @@ typedef void* (*pFEppLLp_t)(x64emu_t*, void*, void*, uintptr_t, uintptr_t, void*
 typedef void* (*pFEpppLp_t)(x64emu_t*, void*, void*, void*, uintptr_t, void*);
 typedef void* (*pFEppppi_t)(x64emu_t*, void*, void*, void*, void*, int64_t);
 typedef void* (*pFEppppp_t)(x64emu_t*, void*, void*, void*, void*, void*);
+typedef void* (*pFiiiiii_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t);
 typedef void* (*pFiCiiCi_t)(int64_t, uint8_t, int64_t, int64_t, uint8_t, int64_t);
 typedef void* (*pFdddddd_t)(double, double, double, double, double, double);
 typedef void* (*pFpiiiiu_t)(void*, int64_t, int64_t, int64_t, int64_t, uint64_t);
@@ -1047,6 +1072,8 @@ typedef int64_t (*iFEppLpIi_t)(x64emu_t*, void*, void*, uintptr_t, void*, int64_
 typedef int64_t (*iFEpppiiu_t)(x64emu_t*, void*, void*, void*, int64_t, int64_t, uint64_t);
 typedef int64_t (*iFEpppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*);
 typedef int64_t (*iFiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*);
+typedef int64_t (*iFpiiiiii_t)(void*, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t);
+typedef int64_t (*iFpiiiLwp_t)(void*, int64_t, int64_t, int64_t, uintptr_t, int16_t, void*);
 typedef int64_t (*iFpiiuuiu_t)(void*, int64_t, int64_t, uint64_t, uint64_t, int64_t, uint64_t);
 typedef int64_t (*iFpiuiipp_t)(void*, int64_t, uint64_t, int64_t, int64_t, void*, void*);
 typedef int64_t (*iFpiupiii_t)(void*, int64_t, uint64_t, void*, int64_t, int64_t, int64_t);
@@ -1128,6 +1155,7 @@ typedef int64_t (*iFEppppipp_t)(x64emu_t*, void*, void*, void*, void*, int64_t,
 typedef int64_t (*iFiiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*);
 typedef int64_t (*iFiiupiupi_t)(int64_t, int64_t, uint64_t, void*, int64_t, uint64_t, void*, int64_t);
 typedef int64_t (*iFuiifpppp_t)(uint64_t, int64_t, int64_t, float, void*, void*, void*, void*);
+typedef int64_t (*iFLLLLLLLL_t)(uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
 typedef int64_t (*iFpiiiiipi_t)(void*, int64_t, int64_t, int64_t, int64_t, int64_t, void*, int64_t);
 typedef int64_t (*iFpWCuWCuu_t)(void*, uint16_t, uint8_t, uint64_t, uint16_t, uint8_t, uint64_t, uint64_t);
 typedef int64_t (*iFpuuiiiii_t)(void*, uint64_t, uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t);
@@ -1178,6 +1206,8 @@ typedef int64_t (*iFiiiipiiip_t)(int64_t, int64_t, int64_t, int64_t, void*, int6
 typedef int64_t (*iFipiipippi_t)(int64_t, void*, int64_t, int64_t, void*, int64_t, void*, void*, int64_t);
 typedef int64_t (*iFdddpppppp_t)(double, double, double, void*, void*, void*, void*, void*, void*);
 typedef int64_t (*iFpipLpiiip_t)(void*, int64_t, void*, uintptr_t, void*, int64_t, int64_t, int64_t, void*);
+typedef int64_t (*iFpLLLLLLLL_t)(void*, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
+typedef int64_t (*iFppiiiiiii_t)(void*, void*, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t);
 typedef int64_t (*iFppiuiippL_t)(void*, void*, int64_t, uint64_t, int64_t, int64_t, void*, void*, uintptr_t);
 typedef int64_t (*iFpppiiuuii_t)(void*, void*, void*, int64_t, int64_t, uint64_t, uint64_t, int64_t, int64_t);
 typedef int64_t (*iFpppiipiiu_t)(void*, void*, void*, int64_t, int64_t, void*, int64_t, int64_t, uint64_t);
@@ -1219,6 +1249,7 @@ typedef int64_t (*iFppppiiuuii_t)(void*, void*, void*, void*, int64_t, int64_t,
 typedef uint64_t (*uFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFpCuWCCuuCW_t)(void*, uint8_t, uint64_t, uint16_t, uint8_t, uint8_t, uint64_t, uint64_t, uint8_t, uint16_t);
 typedef void* (*pFpuuuwwwwWW_t)(void*, uint64_t, uint64_t, uint64_t, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t);
+typedef void* (*pFplllllllll_t)(void*, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t);
 typedef void* (*pFppuiipuuii_t)(void*, void*, uint64_t, int64_t, int64_t, void*, uint64_t, uint64_t, int64_t, int64_t);
 typedef void* (*pFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void (*vFuiiiiiiiiip_t)(uint64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*);
@@ -1300,6 +1331,7 @@ void vFu(x64emu_t *emu, uintptr_t fcn) { vFu_t fn = (vFu_t)fcn; fn((uint64_t)R_R
 void vFf(x64emu_t *emu, uintptr_t fcn) { vFf_t fn = (vFf_t)fcn; fn(emu->xmm[0].f[0]); }
 void vFd(x64emu_t *emu, uintptr_t fcn) { vFd_t fn = (vFd_t)fcn; fn(emu->xmm[0].d[0]); }
 void vFl(x64emu_t *emu, uintptr_t fcn) { vFl_t fn = (vFl_t)fcn; fn((intptr_t)R_RDI); }
+void vFL(x64emu_t *emu, uintptr_t fcn) { vFL_t fn = (vFL_t)fcn; fn((uintptr_t)R_RDI); }
 void vFp(x64emu_t *emu, uintptr_t fcn) { vFp_t fn = (vFp_t)fcn; fn((void*)R_RDI); }
 void vFS(x64emu_t *emu, uintptr_t fcn) { vFS_t fn = (vFS_t)fcn; fn(io_convert((void*)R_RDI)); }
 void cFv(x64emu_t *emu, uintptr_t fcn) { cFv_t fn = (cFv_t)fcn; R_RAX=fn(); }
@@ -1309,6 +1341,7 @@ void cFf(x64emu_t *emu, uintptr_t fcn) { cFf_t fn = (cFf_t)fcn; R_RAX=fn(emu->xm
 void cFp(x64emu_t *emu, uintptr_t fcn) { cFp_t fn = (cFp_t)fcn; R_RAX=fn((void*)R_RDI); }
 void wFp(x64emu_t *emu, uintptr_t fcn) { wFp_t fn = (wFp_t)fcn; R_RAX=fn((void*)R_RDI); }
 void iFv(x64emu_t *emu, uintptr_t fcn) { iFv_t fn = (iFv_t)fcn; R_RAX=(int64_t)fn(); }
+void iFw(x64emu_t *emu, uintptr_t fcn) { iFw_t fn = (iFw_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI); }
 void iFi(x64emu_t *emu, uintptr_t fcn) { iFi_t fn = (iFi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI); }
 void iFu(x64emu_t *emu, uintptr_t fcn) { iFu_t fn = (iFu_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI); }
 void iFf(x64emu_t *emu, uintptr_t fcn) { iFf_t fn = (iFf_t)fcn; R_RAX=(int64_t)fn(emu->xmm[0].f[0]); }
@@ -1391,6 +1424,7 @@ void vFpS(x64emu_t *emu, uintptr_t fcn) { vFpS_t fn = (vFpS_t)fcn; fn((void*)R_R
 void vFSi(x64emu_t *emu, uintptr_t fcn) { vFSi_t fn = (vFSi_t)fcn; fn(io_convert((void*)R_RDI), (int64_t)R_RSI); }
 void cFpp(x64emu_t *emu, uintptr_t fcn) { cFpp_t fn = (cFpp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI); }
 void iFEp(x64emu_t *emu, uintptr_t fcn) { iFEp_t fn = (iFEp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI); }
+void iFwp(x64emu_t *emu, uintptr_t fcn) { iFwp_t fn = (iFwp_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (void*)R_RSI); }
 void iFii(x64emu_t *emu, uintptr_t fcn) { iFii_t fn = (iFii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI); }
 void iFiI(x64emu_t *emu, uintptr_t fcn) { iFiI_t fn = (iFiI_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI); }
 void iFiu(x64emu_t *emu, uintptr_t fcn) { iFiu_t fn = (iFiu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI); }
@@ -1402,6 +1436,7 @@ void iFui(x64emu_t *emu, uintptr_t fcn) { iFui_t fn = (iFui_t)fcn; R_RAX=(int64_
 void iFuu(x64emu_t *emu, uintptr_t fcn) { iFuu_t fn = (iFuu_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, (uint64_t)R_RSI); }
 void iFup(x64emu_t *emu, uintptr_t fcn) { iFup_t fn = (iFup_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, (void*)R_RSI); }
 void iFli(x64emu_t *emu, uintptr_t fcn) { iFli_t fn = (iFli_t)fcn; R_RAX=(int64_t)fn((intptr_t)R_RDI, (int64_t)R_RSI); }
+void iFLi(x64emu_t *emu, uintptr_t fcn) { iFLi_t fn = (iFLi_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (int64_t)R_RSI); }
 void iFLL(x64emu_t *emu, uintptr_t fcn) { iFLL_t fn = (iFLL_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI); }
 void iFLp(x64emu_t *emu, uintptr_t fcn) { iFLp_t fn = (iFLp_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (void*)R_RSI); }
 void iFpw(x64emu_t *emu, uintptr_t fcn) { iFpw_t fn = (iFpw_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int16_t)R_RSI); }
@@ -1456,12 +1491,15 @@ void dFpp(x64emu_t *emu, uintptr_t fcn) { dFpp_t fn = (dFpp_t)fcn; emu->xmm[0].d
 void lFll(x64emu_t *emu, uintptr_t fcn) { lFll_t fn = (lFll_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI, (intptr_t)R_RSI); }
 void lFpi(x64emu_t *emu, uintptr_t fcn) { lFpi_t fn = (lFpi_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (int64_t)R_RSI); }
 void lFpp(x64emu_t *emu, uintptr_t fcn) { lFpp_t fn = (lFpp_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI); }
+void LFii(x64emu_t *emu, uintptr_t fcn) { LFii_t fn = (LFii_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI); }
+void LFLp(x64emu_t *emu, uintptr_t fcn) { LFLp_t fn = (LFLp_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (void*)R_RSI); }
 void LFpi(x64emu_t *emu, uintptr_t fcn) { LFpi_t fn = (LFpi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI); }
 void LFpL(x64emu_t *emu, uintptr_t fcn) { LFpL_t fn = (LFpL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI); }
 void LFpp(x64emu_t *emu, uintptr_t fcn) { LFpp_t fn = (LFpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI); }
 void pFEp(x64emu_t *emu, uintptr_t fcn) { pFEp_t fn = (pFEp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI); }
 void pFii(x64emu_t *emu, uintptr_t fcn) { pFii_t fn = (pFii_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI); }
 void pFiu(x64emu_t *emu, uintptr_t fcn) { pFiu_t fn = (pFiu_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (uint64_t)R_RSI); }
+void pFiL(x64emu_t *emu, uintptr_t fcn) { pFiL_t fn = (pFiL_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (uintptr_t)R_RSI); }
 void pFip(x64emu_t *emu, uintptr_t fcn) { pFip_t fn = (pFip_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI); }
 void pFui(x64emu_t *emu, uintptr_t fcn) { pFui_t fn = (pFui_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (int64_t)R_RSI); }
 void pFuu(x64emu_t *emu, uintptr_t fcn) { pFuu_t fn = (pFuu_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (uint64_t)R_RSI); }
@@ -1542,9 +1580,12 @@ void iFEpL(x64emu_t *emu, uintptr_t fcn) { iFEpL_t fn = (iFEpL_t)fcn; R_RAX=(int
 void iFEpp(x64emu_t *emu, uintptr_t fcn) { iFEpp_t fn = (iFEpp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI); }
 void iFEpV(x64emu_t *emu, uintptr_t fcn) { iFEpV_t fn = (iFEpV_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)(R_RSP + 8)); }
 void iFESp(x64emu_t *emu, uintptr_t fcn) { iFESp_t fn = (iFESp_t)fcn; R_RAX=(int64_t)fn(emu, io_convert((void*)R_RDI), (void*)R_RSI); }
+void iFwww(x64emu_t *emu, uintptr_t fcn) { iFwww_t fn = (iFwww_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (int16_t)R_RSI, (int16_t)R_RDX); }
+void iFwpp(x64emu_t *emu, uintptr_t fcn) { iFwpp_t fn = (iFwpp_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void iFiwC(x64emu_t *emu, uintptr_t fcn) { iFiwC_t fn = (iFiwC_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int16_t)R_RSI, (uint8_t)R_RDX); }
 void iFiii(x64emu_t *emu, uintptr_t fcn) { iFiii_t fn = (iFiii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX); }
 void iFiiu(x64emu_t *emu, uintptr_t fcn) { iFiiu_t fn = (iFiiu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX); }
+void iFiiL(x64emu_t *emu, uintptr_t fcn) { iFiiL_t fn = (iFiiL_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uintptr_t)R_RDX); }
 void iFiip(x64emu_t *emu, uintptr_t fcn) { iFiip_t fn = (iFiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX); }
 void iFiiO(x64emu_t *emu, uintptr_t fcn) { iFiiO_t fn = (iFiiO_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, of_convert((int32_t)R_RDX)); }
 void iFiuu(x64emu_t *emu, uintptr_t fcn) { iFiuu_t fn = (iFiuu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX); }
@@ -1559,9 +1600,11 @@ void iFuup(x64emu_t *emu, uintptr_t fcn) { iFuup_t fn = (iFuup_t)fcn; R_RAX=(int
 void iFuff(x64emu_t *emu, uintptr_t fcn) { iFuff_t fn = (iFuff_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0]); }
 void iFuLL(x64emu_t *emu, uintptr_t fcn) { iFuLL_t fn = (iFuLL_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX); }
 void iFfff(x64emu_t *emu, uintptr_t fcn) { iFfff_t fn = (iFfff_t)fcn; R_RAX=(int64_t)fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0]); }
+void iFLwp(x64emu_t *emu, uintptr_t fcn) { iFLwp_t fn = (iFLwp_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (int16_t)R_RSI, (void*)R_RDX); }
 void iFLip(x64emu_t *emu, uintptr_t fcn) { iFLip_t fn = (iFLip_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX); }
 void iFLLp(x64emu_t *emu, uintptr_t fcn) { iFLLp_t fn = (iFLLp_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX); }
 void iFLpp(x64emu_t *emu, uintptr_t fcn) { iFLpp_t fn = (iFLpp_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
+void iFpwp(x64emu_t *emu, uintptr_t fcn) { iFpwp_t fn = (iFpwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int16_t)R_RSI, (void*)R_RDX); }
 void iFpii(x64emu_t *emu, uintptr_t fcn) { iFpii_t fn = (iFpii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX); }
 void iFpiu(x64emu_t *emu, uintptr_t fcn) { iFpiu_t fn = (iFpiu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX); }
 void iFpiL(x64emu_t *emu, uintptr_t fcn) { iFpiL_t fn = (iFpiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uintptr_t)R_RDX); }
@@ -1763,14 +1806,19 @@ void iFEppL(x64emu_t *emu, uintptr_t fcn) { iFEppL_t fn = (iFEppL_t)fcn; R_RAX=(
 void iFEppp(x64emu_t *emu, uintptr_t fcn) { iFEppp_t fn = (iFEppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void iFEppV(x64emu_t *emu, uintptr_t fcn) { iFEppV_t fn = (iFEppV_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8)); }
 void iFEpOu(x64emu_t *emu, uintptr_t fcn) { iFEpOu_t fn = (iFEpOu_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, of_convert((int32_t)R_RSI), (uint64_t)R_RDX); }
+void iFwwww(x64emu_t *emu, uintptr_t fcn) { iFwwww_t fn = (iFwwww_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (int16_t)R_RSI, (int16_t)R_RDX, (int16_t)R_RCX); }
+void iFwppp(x64emu_t *emu, uintptr_t fcn) { iFwppp_t fn = (iFwppp_t)fcn; R_RAX=(int64_t)fn((int16_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFiiii(x64emu_t *emu, uintptr_t fcn) { iFiiii_t fn = (iFiiii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); }
 void iFiiiu(x64emu_t *emu, uintptr_t fcn) { iFiiiu_t fn = (iFiiiu_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX); }
 void iFiiip(x64emu_t *emu, uintptr_t fcn) { iFiiip_t fn = (iFiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); }
 void iFiiiN(x64emu_t *emu, uintptr_t fcn) { iFiiiN_t fn = (iFiiiN_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); }
 void iFiill(x64emu_t *emu, uintptr_t fcn) { iFiill_t fn = (iFiill_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX); }
+void iFiiLi(x64emu_t *emu, uintptr_t fcn) { iFiiLi_t fn = (iFiiLi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uintptr_t)R_RDX, (int64_t)R_RCX); }
+void iFiipi(x64emu_t *emu, uintptr_t fcn) { iFiipi_t fn = (iFiipi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX); }
 void iFiipp(x64emu_t *emu, uintptr_t fcn) { iFiipp_t fn = (iFiipp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void iFiuii(x64emu_t *emu, uintptr_t fcn) { iFiuii_t fn = (iFiuii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); }
 void iFilli(x64emu_t *emu, uintptr_t fcn) { iFilli_t fn = (iFilli_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (int64_t)R_RCX); }
+void iFiLwp(x64emu_t *emu, uintptr_t fcn) { iFiLwp_t fn = (iFiLwp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uintptr_t)R_RSI, (int16_t)R_RDX, (void*)R_RCX); }
 void iFipii(x64emu_t *emu, uintptr_t fcn) { iFipii_t fn = (iFipii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); }
 void iFipiO(x64emu_t *emu, uintptr_t fcn) { iFipiO_t fn = (iFipiO_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, of_convert((int32_t)R_RCX)); }
 void iFipui(x64emu_t *emu, uintptr_t fcn) { iFipui_t fn = (iFipui_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX); }
@@ -1807,6 +1855,7 @@ void iFpuLp(x64emu_t *emu, uintptr_t fcn) { iFpuLp_t fn = (iFpuLp_t)fcn; R_RAX=(
 void iFpupu(x64emu_t *emu, uintptr_t fcn) { iFpupu_t fn = (iFpupu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (uint64_t)R_RCX); }
 void iFpupV(x64emu_t *emu, uintptr_t fcn) { iFpupV_t fn = (iFpupV_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
 void iFplip(x64emu_t *emu, uintptr_t fcn) { iFplip_t fn = (iFplip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (intptr_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX); }
+void iFpLwp(x64emu_t *emu, uintptr_t fcn) { iFpLwp_t fn = (iFpLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (int16_t)R_RDX, (void*)R_RCX); }
 void iFpLpi(x64emu_t *emu, uintptr_t fcn) { iFpLpi_t fn = (iFpLpi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX); }
 void iFpLpL(x64emu_t *emu, uintptr_t fcn) { iFpLpL_t fn = (iFpLpL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void iFpLpp(x64emu_t *emu, uintptr_t fcn) { iFpLpp_t fn = (iFpLpp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
@@ -1869,6 +1918,7 @@ void pFEpii(x64emu_t *emu, uintptr_t fcn) { pFEpii_t fn = (pFEpii_t)fcn; R_RAX=(
 void pFEpip(x64emu_t *emu, uintptr_t fcn) { pFEpip_t fn = (pFEpip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX); }
 void pFEppi(x64emu_t *emu, uintptr_t fcn) { pFEppi_t fn = (pFEppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX); }
 void pFEppp(x64emu_t *emu, uintptr_t fcn) { pFEppp_t fn = (pFEppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
+void pFiiii(x64emu_t *emu, uintptr_t fcn) { pFiiii_t fn = (pFiiii_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX); }
 void pFiiiu(x64emu_t *emu, uintptr_t fcn) { pFiiiu_t fn = (pFiiiu_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX); }
 void pFiiup(x64emu_t *emu, uintptr_t fcn) { pFiiup_t fn = (pFiiup_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX); }
 void pFippi(x64emu_t *emu, uintptr_t fcn) { pFippi_t fn = (pFippi_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX); }
@@ -2009,8 +2059,10 @@ void iFpiiiu(x64emu_t *emu, uintptr_t fcn) { iFpiiiu_t fn = (iFpiiiu_t)fcn; R_RA
 void iFpiiiL(x64emu_t *emu, uintptr_t fcn) { iFpiiiL_t fn = (iFpiiiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uintptr_t)R_R8); }
 void iFpiiip(x64emu_t *emu, uintptr_t fcn) { iFpiiip_t fn = (iFpiiip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8); }
 void iFpiiuu(x64emu_t *emu, uintptr_t fcn) { iFpiiuu_t fn = (iFpiiuu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8); }
+void iFpiiLi(x64emu_t *emu, uintptr_t fcn) { iFpiiLi_t fn = (iFpiiLi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uintptr_t)R_RCX, (int64_t)R_R8); }
 void iFpiipi(x64emu_t *emu, uintptr_t fcn) { iFpiipi_t fn = (iFpiipi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8); }
 void iFpiipp(x64emu_t *emu, uintptr_t fcn) { iFpiipp_t fn = (iFpiipp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
+void iFpiLwp(x64emu_t *emu, uintptr_t fcn) { iFpiLwp_t fn = (iFpiLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uintptr_t)R_RDX, (int16_t)R_RCX, (void*)R_R8); }
 void iFpipii(x64emu_t *emu, uintptr_t fcn) { iFpipii_t fn = (iFpipii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8); }
 void iFpipiL(x64emu_t *emu, uintptr_t fcn) { iFpipiL_t fn = (iFpipiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (uintptr_t)R_R8); }
 void iFpippi(x64emu_t *emu, uintptr_t fcn) { iFpippi_t fn = (iFpippi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); }
@@ -2031,6 +2083,7 @@ void iFppipp(x64emu_t *emu, uintptr_t fcn) { iFppipp_t fn = (iFppipp_t)fcn; R_RA
 void iFppupi(x64emu_t *emu, uintptr_t fcn) { iFppupi_t fn = (iFppupi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8); }
 void iFppupp(x64emu_t *emu, uintptr_t fcn) { iFppupp_t fn = (iFppupp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFppllp(x64emu_t *emu, uintptr_t fcn) { iFppllp_t fn = (iFppllp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (void*)R_R8); }
+void iFppLwp(x64emu_t *emu, uintptr_t fcn) { iFppLwp_t fn = (iFppLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int16_t)R_RCX, (void*)R_R8); }
 void iFppLpi(x64emu_t *emu, uintptr_t fcn) { iFppLpi_t fn = (iFppLpi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int64_t)R_R8); }
 void iFppLpL(x64emu_t *emu, uintptr_t fcn) { iFppLpL_t fn = (iFppLpL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); }
 void iFppLpp(x64emu_t *emu, uintptr_t fcn) { iFppLpp_t fn = (iFppLpp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
@@ -2174,6 +2227,7 @@ void cFppLppi(x64emu_t *emu, uintptr_t fcn) { cFppLppi_t fn = (cFppLppi_t)fcn; R
 void iFEiippi(x64emu_t *emu, uintptr_t fcn) { iFEiippi_t fn = (iFEiippi_t)fcn; R_RAX=(int64_t)fn(emu, (int64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); }
 void iFElpppp(x64emu_t *emu, uintptr_t fcn) { iFElpppp_t fn = (iFElpppp_t)fcn; R_RAX=(int64_t)fn(emu, (intptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFEpiipp(x64emu_t *emu, uintptr_t fcn) { iFEpiipp_t fn = (iFEpiipp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
+void iFEpiipV(x64emu_t *emu, uintptr_t fcn) { iFEpiipV_t fn = (iFEpiipV_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8)); }
 void iFEpilpV(x64emu_t *emu, uintptr_t fcn) { iFEpilpV_t fn = (iFEpilpV_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (intptr_t)R_RDX, (void*)R_RCX, (void*)(R_RSP + 8)); }
 void iFEpippi(x64emu_t *emu, uintptr_t fcn) { iFEpippi_t fn = (iFEpippi_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); }
 void iFEpuppp(x64emu_t *emu, uintptr_t fcn) { iFEpuppp_t fn = (iFEpuppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
@@ -2181,6 +2235,7 @@ void iFEppiLi(x64emu_t *emu, uintptr_t fcn) { iFEppiLi_t fn = (iFEppiLi_t)fcn; R
 void iFEppppp(x64emu_t *emu, uintptr_t fcn) { iFEppppp_t fn = (iFEppppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFiiiiii(x64emu_t *emu, uintptr_t fcn) { iFiiiiii_t fn = (iFiiiiii_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); }
 void iFiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiip_t fn = (iFiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9); }
+void iFiiiLwp(x64emu_t *emu, uintptr_t fcn) { iFiiiLwp_t fn = (iFiiiLwp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uintptr_t)R_RCX, (int16_t)R_R8, (void*)R_R9); }
 void iFiuiipi(x64emu_t *emu, uintptr_t fcn) { iFiuiipi_t fn = (iFiuiipi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_t)R_R9); }
 void iFipupup(x64emu_t *emu, uintptr_t fcn) { iFipupup_t fn = (iFipupup_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (uint64_t)R_R8, (void*)R_R9); }
 void iFipuppp(x64emu_t *emu, uintptr_t fcn) { iFipuppp_t fn = (iFipuppp_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
@@ -2234,6 +2289,7 @@ void pFEppLLp(x64emu_t *emu, uintptr_t fcn) { pFEppLLp_t fn = (pFEppLLp_t)fcn; R
 void pFEpppLp(x64emu_t *emu, uintptr_t fcn) { pFEpppLp_t fn = (pFEpppLp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); }
 void pFEppppi(x64emu_t *emu, uintptr_t fcn) { pFEppppi_t fn = (pFEppppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8); }
 void pFEppppp(x64emu_t *emu, uintptr_t fcn) { pFEppppp_t fn = (pFEppppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
+void pFiiiiii(x64emu_t *emu, uintptr_t fcn) { pFiiiiii_t fn = (pFiiiiii_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); }
 void pFiCiiCi(x64emu_t *emu, uintptr_t fcn) { pFiCiiCi_t fn = (pFiCiiCi_t)fcn; R_RAX=(uintptr_t)fn((int64_t)R_RDI, (uint8_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uint8_t)R_R8, (int64_t)R_R9); }
 void pFdddddd(x64emu_t *emu, uintptr_t fcn) { pFdddddd_t fn = (pFdddddd_t)fcn; R_RAX=(uintptr_t)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 pFpiiiiu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiu_t fn = (pFpiiiiu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (uint64_t)R_R9); }
@@ -2308,6 +2364,8 @@ void iFEppLpIi(x64emu_t *emu, uintptr_t fcn) { iFEppLpIi_t fn = (iFEppLpIi_t)fcn
 void iFEpppiiu(x64emu_t *emu, uintptr_t fcn) { iFEpppiiu_t fn = (iFEpppiiu_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (uint64_t)R_R9); }
 void iFEpppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppp_t fn = (iFEpppppp_t)fcn; R_RAX=(int64_t)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=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8)); }
+void iFpiiiiii(x64emu_t *emu, uintptr_t fcn) { iFpiiiiii_t fn = (iFpiiiiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8)); }
+void iFpiiiLwp(x64emu_t *emu, uintptr_t fcn) { iFpiiiLwp_t fn = (iFpiiiLwp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uintptr_t)R_R8, (int16_t)R_R9, *(void**)(R_RSP + 8)); }
 void iFpiiuuiu(x64emu_t *emu, uintptr_t fcn) { iFpiiuuiu_t fn = (iFpiiuuiu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8, (int64_t)R_R9, *(uint64_t*)(R_RSP + 8)); }
 void iFpiuiipp(x64emu_t *emu, uintptr_t fcn) { iFpiuiipp_t fn = (iFpiuiipp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_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=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8)); }
@@ -2389,6 +2447,7 @@ void iFEppppipp(x64emu_t *emu, uintptr_t fcn) { iFEppppipp_t fn = (iFEppppipp_t)
 void iFiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiip_t fn = (iFiiiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFiiupiupi(x64emu_t *emu, uintptr_t fcn) { iFiiupiupi_t fn = (iFiiupiupi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (uint64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); }
 void iFuiifpppp(x64emu_t *emu, uintptr_t fcn) { iFuiifpppp_t fn = (iFuiifpppp_t)fcn; R_RAX=(int64_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, emu->xmm[0].f[0], (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void iFLLLLLLLL(x64emu_t *emu, uintptr_t fcn) { iFLLLLLLLL_t fn = (iFLLLLLLLL_t)fcn; R_RAX=(int64_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8, (uintptr_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16)); }
 void iFpiiiiipi(x64emu_t *emu, uintptr_t fcn) { iFpiiiiipi_t fn = (iFpiiiiipi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); }
 void iFpWCuWCuu(x64emu_t *emu, uintptr_t fcn) { iFpWCuWCuu_t fn = (iFpWCuWCuu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint16_t)R_RSI, (uint8_t)R_RDX, (uint64_t)R_RCX, (uint16_t)R_R8, (uint8_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16)); }
 void iFpuuiiiii(x64emu_t *emu, uintptr_t fcn) { iFpuuiiiii_t fn = (iFpuuiiiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); }
@@ -2439,6 +2498,8 @@ void iFiiiipiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiipiiip_t fn = (iFiiiipiiip
 void iFipiipippi(x64emu_t *emu, uintptr_t fcn) { iFipiipippi_t fn = (iFipiipippi_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); }
 void iFdddpppppp(x64emu_t *emu, uintptr_t fcn) { iFdddpppppp_t fn = (iFdddpppppp_t)fcn; R_RAX=(int64_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFpipLpiiip(x64emu_t *emu, uintptr_t fcn) { iFpipLpiiip_t fn = (iFpipLpiiip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
+void iFpLLLLLLLL(x64emu_t *emu, uintptr_t fcn) { iFpLLLLLLLL_t fn = (iFpLLLLLLLL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8, (uintptr_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(uintptr_t*)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); }
+void iFppiiiiiii(x64emu_t *emu, uintptr_t fcn) { iFppiiiiiii_t fn = (iFppiiiiiii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); }
 void iFppiuiippL(x64emu_t *emu, uintptr_t fcn) { iFppiuiippL_t fn = (iFppiuiippL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); }
 void iFpppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFpppiiuuii_t fn = (iFpppiiuuii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24)); }
 void iFpppiipiiu(x64emu_t *emu, uintptr_t fcn) { iFpppiipiiu_t fn = (iFpppiipiiu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24)); }
@@ -2480,6 +2541,7 @@ void iFppppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFppppiiuuii_t fn = (iFppppiiu
 void uFpppppppppp(x64emu_t *emu, uintptr_t fcn) { uFpppppppppp_t fn = (uFpppppppppp_t)fcn; R_RAX=(uint64_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 pFpCuWCCuuCW(x64emu_t *emu, uintptr_t fcn) { pFpCuWCCuuCW_t fn = (pFpCuWCCuuCW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint64_t)R_RDX, (uint16_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(uint8_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32)); }
 void pFpuuuwwwwWW(x64emu_t *emu, uintptr_t fcn) { pFpuuuwwwwWW_t fn = (pFpuuuwwwwWW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(int16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16), *(uint16_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32)); }
+void pFplllllllll(x64emu_t *emu, uintptr_t fcn) { pFplllllllll_t fn = (pFplllllllll_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8, (intptr_t)R_R9, *(intptr_t*)(R_RSP + 8), *(intptr_t*)(R_RSP + 16), *(intptr_t*)(R_RSP + 24), *(intptr_t*)(R_RSP + 32)); }
 void pFppuiipuuii(x64emu_t *emu, uintptr_t fcn) { pFppuiipuuii_t fn = (pFppuiipuuii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32)); }
 void pFpppppppppp(x64emu_t *emu, uintptr_t fcn) { pFpppppppppp_t fn = (pFpppppppppp_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 vFuiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { vFuiiiiiiiiip_t fn = (vFuiiiiiiiiip_t)fcn; fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
@@ -2572,6 +2634,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &vFf) return 1;
 	if (fun == &vFd) return 1;
 	if (fun == &vFl) return 1;
+	if (fun == &vFL) return 1;
 	if (fun == &vFp) return 1;
 	if (fun == &cFv) return 1;
 	if (fun == &cFi) return 1;
@@ -2580,6 +2643,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &cFp) return 1;
 	if (fun == &wFp) return 1;
 	if (fun == &iFv) return 1;
+	if (fun == &iFw) return 1;
 	if (fun == &iFi) return 1;
 	if (fun == &iFu) return 1;
 	if (fun == &iFf) return 1;
@@ -2649,6 +2713,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &vFpL) return 1;
 	if (fun == &vFpp) return 1;
 	if (fun == &cFpp) return 1;
+	if (fun == &iFwp) return 1;
 	if (fun == &iFii) return 1;
 	if (fun == &iFiI) return 1;
 	if (fun == &iFiu) return 1;
@@ -2660,6 +2725,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFuu) return 1;
 	if (fun == &iFup) return 1;
 	if (fun == &iFli) return 1;
+	if (fun == &iFLi) return 1;
 	if (fun == &iFLL) return 1;
 	if (fun == &iFLp) return 1;
 	if (fun == &iFpw) return 1;
@@ -2707,11 +2773,14 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &lFll) return 1;
 	if (fun == &lFpi) return 1;
 	if (fun == &lFpp) return 1;
+	if (fun == &LFii) return 1;
+	if (fun == &LFLp) return 1;
 	if (fun == &LFpi) return 1;
 	if (fun == &LFpL) return 1;
 	if (fun == &LFpp) return 1;
 	if (fun == &pFii) return 1;
 	if (fun == &pFiu) return 1;
+	if (fun == &pFiL) return 1;
 	if (fun == &pFip) return 1;
 	if (fun == &pFui) return 1;
 	if (fun == &pFuu) return 1;
@@ -2774,9 +2843,12 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &vFppd) return 1;
 	if (fun == &vFppL) return 1;
 	if (fun == &vFppp) return 1;
+	if (fun == &iFwww) return 1;
+	if (fun == &iFwpp) return 1;
 	if (fun == &iFiwC) return 1;
 	if (fun == &iFiii) return 1;
 	if (fun == &iFiiu) return 1;
+	if (fun == &iFiiL) return 1;
 	if (fun == &iFiip) return 1;
 	if (fun == &iFiuu) return 1;
 	if (fun == &iFiLi) return 1;
@@ -2789,9 +2861,11 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFuff) return 1;
 	if (fun == &iFuLL) return 1;
 	if (fun == &iFfff) return 1;
+	if (fun == &iFLwp) return 1;
 	if (fun == &iFLip) return 1;
 	if (fun == &iFLLp) return 1;
 	if (fun == &iFLpp) return 1;
+	if (fun == &iFpwp) return 1;
 	if (fun == &iFpii) return 1;
 	if (fun == &iFpiu) return 1;
 	if (fun == &iFpiL) return 1;
@@ -2960,13 +3034,18 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &vFpppL) return 1;
 	if (fun == &vFpppp) return 1;
 	if (fun == &cFpiii) return 1;
+	if (fun == &iFwwww) return 1;
+	if (fun == &iFwppp) return 1;
 	if (fun == &iFiiii) return 1;
 	if (fun == &iFiiiu) return 1;
 	if (fun == &iFiiip) return 1;
 	if (fun == &iFiill) return 1;
+	if (fun == &iFiiLi) return 1;
+	if (fun == &iFiipi) return 1;
 	if (fun == &iFiipp) return 1;
 	if (fun == &iFiuii) return 1;
 	if (fun == &iFilli) return 1;
+	if (fun == &iFiLwp) return 1;
 	if (fun == &iFipii) return 1;
 	if (fun == &iFipui) return 1;
 	if (fun == &iFipup) return 1;
@@ -3000,6 +3079,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpuLp) return 1;
 	if (fun == &iFpupu) return 1;
 	if (fun == &iFplip) return 1;
+	if (fun == &iFpLwp) return 1;
 	if (fun == &iFpLpi) return 1;
 	if (fun == &iFpLpL) return 1;
 	if (fun == &iFpLpp) return 1;
@@ -3051,6 +3131,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &LFppLL) return 1;
 	if (fun == &LFppLp) return 1;
 	if (fun == &LFpppp) return 1;
+	if (fun == &pFiiii) return 1;
 	if (fun == &pFiiiu) return 1;
 	if (fun == &pFiiup) return 1;
 	if (fun == &pFippi) return 1;
@@ -3172,8 +3253,10 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpiiiL) return 1;
 	if (fun == &iFpiiip) return 1;
 	if (fun == &iFpiiuu) return 1;
+	if (fun == &iFpiiLi) return 1;
 	if (fun == &iFpiipi) return 1;
 	if (fun == &iFpiipp) return 1;
+	if (fun == &iFpiLwp) return 1;
 	if (fun == &iFpipii) return 1;
 	if (fun == &iFpipiL) return 1;
 	if (fun == &iFpippi) return 1;
@@ -3194,6 +3277,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFppupi) return 1;
 	if (fun == &iFppupp) return 1;
 	if (fun == &iFppllp) return 1;
+	if (fun == &iFppLwp) return 1;
 	if (fun == &iFppLpi) return 1;
 	if (fun == &iFppLpL) return 1;
 	if (fun == &iFppLpp) return 1;
@@ -3317,6 +3401,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &cFppLppi) return 1;
 	if (fun == &iFiiiiii) return 1;
 	if (fun == &iFiiiiip) return 1;
+	if (fun == &iFiiiLwp) return 1;
 	if (fun == &iFiuiipi) return 1;
 	if (fun == &iFipupup) return 1;
 	if (fun == &iFipuppp) return 1;
@@ -3360,6 +3445,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &lFipLipu) return 1;
 	if (fun == &lFipLipp) return 1;
 	if (fun == &LFpipipi) return 1;
+	if (fun == &pFiiiiii) return 1;
 	if (fun == &pFiCiiCi) return 1;
 	if (fun == &pFpiiiiu) return 1;
 	if (fun == &pFpiiCCC) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 3b28a0db..2e797b6c 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -35,6 +35,7 @@ void vFu(x64emu_t *emu, uintptr_t fnc);
 void vFf(x64emu_t *emu, uintptr_t fnc);
 void vFd(x64emu_t *emu, uintptr_t fnc);
 void vFl(x64emu_t *emu, uintptr_t fnc);
+void vFL(x64emu_t *emu, uintptr_t fnc);
 void vFp(x64emu_t *emu, uintptr_t fnc);
 void vFS(x64emu_t *emu, uintptr_t fnc);
 void cFv(x64emu_t *emu, uintptr_t fnc);
@@ -44,6 +45,7 @@ void cFf(x64emu_t *emu, uintptr_t fnc);
 void cFp(x64emu_t *emu, uintptr_t fnc);
 void wFp(x64emu_t *emu, uintptr_t fnc);
 void iFv(x64emu_t *emu, uintptr_t fnc);
+void iFw(x64emu_t *emu, uintptr_t fnc);
 void iFi(x64emu_t *emu, uintptr_t fnc);
 void iFu(x64emu_t *emu, uintptr_t fnc);
 void iFf(x64emu_t *emu, uintptr_t fnc);
@@ -126,6 +128,7 @@ void vFpS(x64emu_t *emu, uintptr_t fnc);
 void vFSi(x64emu_t *emu, uintptr_t fnc);
 void cFpp(x64emu_t *emu, uintptr_t fnc);
 void iFEp(x64emu_t *emu, uintptr_t fnc);
+void iFwp(x64emu_t *emu, uintptr_t fnc);
 void iFii(x64emu_t *emu, uintptr_t fnc);
 void iFiI(x64emu_t *emu, uintptr_t fnc);
 void iFiu(x64emu_t *emu, uintptr_t fnc);
@@ -137,6 +140,7 @@ void iFui(x64emu_t *emu, uintptr_t fnc);
 void iFuu(x64emu_t *emu, uintptr_t fnc);
 void iFup(x64emu_t *emu, uintptr_t fnc);
 void iFli(x64emu_t *emu, uintptr_t fnc);
+void iFLi(x64emu_t *emu, uintptr_t fnc);
 void iFLL(x64emu_t *emu, uintptr_t fnc);
 void iFLp(x64emu_t *emu, uintptr_t fnc);
 void iFpw(x64emu_t *emu, uintptr_t fnc);
@@ -191,12 +195,15 @@ void dFpp(x64emu_t *emu, uintptr_t fnc);
 void lFll(x64emu_t *emu, uintptr_t fnc);
 void lFpi(x64emu_t *emu, uintptr_t fnc);
 void lFpp(x64emu_t *emu, uintptr_t fnc);
+void LFii(x64emu_t *emu, uintptr_t fnc);
+void LFLp(x64emu_t *emu, uintptr_t fnc);
 void LFpi(x64emu_t *emu, uintptr_t fnc);
 void LFpL(x64emu_t *emu, uintptr_t fnc);
 void LFpp(x64emu_t *emu, uintptr_t fnc);
 void pFEp(x64emu_t *emu, uintptr_t fnc);
 void pFii(x64emu_t *emu, uintptr_t fnc);
 void pFiu(x64emu_t *emu, uintptr_t fnc);
+void pFiL(x64emu_t *emu, uintptr_t fnc);
 void pFip(x64emu_t *emu, uintptr_t fnc);
 void pFui(x64emu_t *emu, uintptr_t fnc);
 void pFuu(x64emu_t *emu, uintptr_t fnc);
@@ -277,9 +284,12 @@ void iFEpL(x64emu_t *emu, uintptr_t fnc);
 void iFEpp(x64emu_t *emu, uintptr_t fnc);
 void iFEpV(x64emu_t *emu, uintptr_t fnc);
 void iFESp(x64emu_t *emu, uintptr_t fnc);
+void iFwww(x64emu_t *emu, uintptr_t fnc);
+void iFwpp(x64emu_t *emu, uintptr_t fnc);
 void iFiwC(x64emu_t *emu, uintptr_t fnc);
 void iFiii(x64emu_t *emu, uintptr_t fnc);
 void iFiiu(x64emu_t *emu, uintptr_t fnc);
+void iFiiL(x64emu_t *emu, uintptr_t fnc);
 void iFiip(x64emu_t *emu, uintptr_t fnc);
 void iFiiO(x64emu_t *emu, uintptr_t fnc);
 void iFiuu(x64emu_t *emu, uintptr_t fnc);
@@ -294,9 +304,11 @@ void iFuup(x64emu_t *emu, uintptr_t fnc);
 void iFuff(x64emu_t *emu, uintptr_t fnc);
 void iFuLL(x64emu_t *emu, uintptr_t fnc);
 void iFfff(x64emu_t *emu, uintptr_t fnc);
+void iFLwp(x64emu_t *emu, uintptr_t fnc);
 void iFLip(x64emu_t *emu, uintptr_t fnc);
 void iFLLp(x64emu_t *emu, uintptr_t fnc);
 void iFLpp(x64emu_t *emu, uintptr_t fnc);
+void iFpwp(x64emu_t *emu, uintptr_t fnc);
 void iFpii(x64emu_t *emu, uintptr_t fnc);
 void iFpiu(x64emu_t *emu, uintptr_t fnc);
 void iFpiL(x64emu_t *emu, uintptr_t fnc);
@@ -498,14 +510,19 @@ void iFEppL(x64emu_t *emu, uintptr_t fnc);
 void iFEppp(x64emu_t *emu, uintptr_t fnc);
 void iFEppV(x64emu_t *emu, uintptr_t fnc);
 void iFEpOu(x64emu_t *emu, uintptr_t fnc);
+void iFwwww(x64emu_t *emu, uintptr_t fnc);
+void iFwppp(x64emu_t *emu, uintptr_t fnc);
 void iFiiii(x64emu_t *emu, uintptr_t fnc);
 void iFiiiu(x64emu_t *emu, uintptr_t fnc);
 void iFiiip(x64emu_t *emu, uintptr_t fnc);
 void iFiiiN(x64emu_t *emu, uintptr_t fnc);
 void iFiill(x64emu_t *emu, uintptr_t fnc);
+void iFiiLi(x64emu_t *emu, uintptr_t fnc);
+void iFiipi(x64emu_t *emu, uintptr_t fnc);
 void iFiipp(x64emu_t *emu, uintptr_t fnc);
 void iFiuii(x64emu_t *emu, uintptr_t fnc);
 void iFilli(x64emu_t *emu, uintptr_t fnc);
+void iFiLwp(x64emu_t *emu, uintptr_t fnc);
 void iFipii(x64emu_t *emu, uintptr_t fnc);
 void iFipiO(x64emu_t *emu, uintptr_t fnc);
 void iFipui(x64emu_t *emu, uintptr_t fnc);
@@ -542,6 +559,7 @@ void iFpuLp(x64emu_t *emu, uintptr_t fnc);
 void iFpupu(x64emu_t *emu, uintptr_t fnc);
 void iFpupV(x64emu_t *emu, uintptr_t fnc);
 void iFplip(x64emu_t *emu, uintptr_t fnc);
+void iFpLwp(x64emu_t *emu, uintptr_t fnc);
 void iFpLpi(x64emu_t *emu, uintptr_t fnc);
 void iFpLpL(x64emu_t *emu, uintptr_t fnc);
 void iFpLpp(x64emu_t *emu, uintptr_t fnc);
@@ -604,6 +622,7 @@ void pFEpii(x64emu_t *emu, uintptr_t fnc);
 void pFEpip(x64emu_t *emu, uintptr_t fnc);
 void pFEppi(x64emu_t *emu, uintptr_t fnc);
 void pFEppp(x64emu_t *emu, uintptr_t fnc);
+void pFiiii(x64emu_t *emu, uintptr_t fnc);
 void pFiiiu(x64emu_t *emu, uintptr_t fnc);
 void pFiiup(x64emu_t *emu, uintptr_t fnc);
 void pFippi(x64emu_t *emu, uintptr_t fnc);
@@ -744,8 +763,10 @@ 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 iFpiiLi(x64emu_t *emu, uintptr_t fnc);
 void iFpiipi(x64emu_t *emu, uintptr_t fnc);
 void iFpiipp(x64emu_t *emu, uintptr_t fnc);
+void iFpiLwp(x64emu_t *emu, uintptr_t fnc);
 void iFpipii(x64emu_t *emu, uintptr_t fnc);
 void iFpipiL(x64emu_t *emu, uintptr_t fnc);
 void iFpippi(x64emu_t *emu, uintptr_t fnc);
@@ -766,6 +787,7 @@ void iFppipp(x64emu_t *emu, uintptr_t fnc);
 void iFppupi(x64emu_t *emu, uintptr_t fnc);
 void iFppupp(x64emu_t *emu, uintptr_t fnc);
 void iFppllp(x64emu_t *emu, uintptr_t fnc);
+void iFppLwp(x64emu_t *emu, uintptr_t fnc);
 void iFppLpi(x64emu_t *emu, uintptr_t fnc);
 void iFppLpL(x64emu_t *emu, uintptr_t fnc);
 void iFppLpp(x64emu_t *emu, uintptr_t fnc);
@@ -909,6 +931,7 @@ void cFppLppi(x64emu_t *emu, uintptr_t fnc);
 void iFEiippi(x64emu_t *emu, uintptr_t fnc);
 void iFElpppp(x64emu_t *emu, uintptr_t fnc);
 void iFEpiipp(x64emu_t *emu, uintptr_t fnc);
+void iFEpiipV(x64emu_t *emu, uintptr_t fnc);
 void iFEpilpV(x64emu_t *emu, uintptr_t fnc);
 void iFEpippi(x64emu_t *emu, uintptr_t fnc);
 void iFEpuppp(x64emu_t *emu, uintptr_t fnc);
@@ -916,6 +939,7 @@ void iFEppiLi(x64emu_t *emu, uintptr_t fnc);
 void iFEppppp(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiii(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiip(x64emu_t *emu, uintptr_t fnc);
+void iFiiiLwp(x64emu_t *emu, uintptr_t fnc);
 void iFiuiipi(x64emu_t *emu, uintptr_t fnc);
 void iFipupup(x64emu_t *emu, uintptr_t fnc);
 void iFipuppp(x64emu_t *emu, uintptr_t fnc);
@@ -969,6 +993,7 @@ void pFEppLLp(x64emu_t *emu, uintptr_t fnc);
 void pFEpppLp(x64emu_t *emu, uintptr_t fnc);
 void pFEppppi(x64emu_t *emu, uintptr_t fnc);
 void pFEppppp(x64emu_t *emu, uintptr_t fnc);
+void pFiiiiii(x64emu_t *emu, uintptr_t fnc);
 void pFiCiiCi(x64emu_t *emu, uintptr_t fnc);
 void pFdddddd(x64emu_t *emu, uintptr_t fnc);
 void pFpiiiiu(x64emu_t *emu, uintptr_t fnc);
@@ -1043,6 +1068,8 @@ void iFEppLpIi(x64emu_t *emu, uintptr_t fnc);
 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 iFpiiiiii(x64emu_t *emu, uintptr_t fnc);
+void iFpiiiLwp(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);
@@ -1124,6 +1151,7 @@ void iFEppppipp(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void iFiiupiupi(x64emu_t *emu, uintptr_t fnc);
 void iFuiifpppp(x64emu_t *emu, uintptr_t fnc);
+void iFLLLLLLLL(x64emu_t *emu, uintptr_t fnc);
 void iFpiiiiipi(x64emu_t *emu, uintptr_t fnc);
 void iFpWCuWCuu(x64emu_t *emu, uintptr_t fnc);
 void iFpuuiiiii(x64emu_t *emu, uintptr_t fnc);
@@ -1174,6 +1202,8 @@ void iFiiiipiiip(x64emu_t *emu, uintptr_t fnc);
 void iFipiipippi(x64emu_t *emu, uintptr_t fnc);
 void iFdddpppppp(x64emu_t *emu, uintptr_t fnc);
 void iFpipLpiiip(x64emu_t *emu, uintptr_t fnc);
+void iFpLLLLLLLL(x64emu_t *emu, uintptr_t fnc);
+void iFppiiiiiii(x64emu_t *emu, uintptr_t fnc);
 void iFppiuiippL(x64emu_t *emu, uintptr_t fnc);
 void iFpppiiuuii(x64emu_t *emu, uintptr_t fnc);
 void iFpppiipiiu(x64emu_t *emu, uintptr_t fnc);
@@ -1215,6 +1245,7 @@ void iFppppiiuuii(x64emu_t *emu, uintptr_t fnc);
 void uFpppppppppp(x64emu_t *emu, uintptr_t fnc);
 void pFpCuWCCuuCW(x64emu_t *emu, uintptr_t fnc);
 void pFpuuuwwwwWW(x64emu_t *emu, uintptr_t fnc);
+void pFplllllllll(x64emu_t *emu, uintptr_t fnc);
 void pFppuiipuuii(x64emu_t *emu, uintptr_t fnc);
 void pFpppppppppp(x64emu_t *emu, uintptr_t fnc);
 void vFuiiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedlibformw.c b/src/wrapped/wrappedlibformw.c
new file mode 100644
index 00000000..b06620c9
--- /dev/null
+++ b/src/wrapped/wrappedlibformw.c
@@ -0,0 +1,17 @@
+#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* libformwName = "libformw.so.5";
+#define LIBNAME libformw
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibformw_private.h b/src/wrapped/wrappedlibformw_private.h
new file mode 100644
index 00000000..d204dffc
--- /dev/null
+++ b/src/wrapped/wrappedlibformw_private.h
@@ -0,0 +1,80 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+//GOM(new_fieldtype, pFPP)
+GO(link_fieldtype, pFpp)
+GO(free_fieldtype, iFp)
+//GOM(set_fieldtype_arg, iFpPPP)
+//GOM(set_fieldtype_choice, iFpPP)
+GO(new_field, pFiiiiii)
+GO(dup_field, pFpii)
+GO(link_field, pFpii)
+GO(free_field, iFp)
+GO(field_info, iFppppppp)
+GO(dynamic_field_info, iFpppp)
+GO(set_max_field, iFpi)
+GO(move_field, iFpii)
+//GO(set_field_type, iFpp,...)
+GO(set_new_page, iFpi)
+GO(set_field_just, iFpi)
+GO(field_just, iFp)
+GO(set_field_fore, iFpL)
+GO(set_field_back, iFpL)
+GO(set_field_pad, iFpi)
+GO(field_pad, iFp)
+GO(set_field_buffer, iFpip)
+GO(set_field_status, iFpi)
+GO(set_field_userptr, iFpp)
+GO(set_field_opts, iFpi)
+GO(field_opts_on, iFpi)
+GO(field_opts_off, iFpi)
+GO(field_fore, LFp)
+GO(field_back, LFp)
+GO(new_page, iFp)
+GO(field_status, iFp)
+GO(field_arg, pFp)
+GO(field_userptr, pFp)
+GO(field_type, pFp)
+GO(field_buffer, pFpi)
+GO(field_opts, iFp)
+GO(new_form, pFp)
+GO(form_fields, pFp)
+GO(current_field, pFp)
+GO(form_win, pFp)
+GO(form_sub, pFp)
+//GOM(form_init, PFp)
+//GOM(form_term, PFp)
+//GOM(field_init, PFp)
+//GOM(field_term, PFp)
+GO(free_form, iFp)
+GO(set_form_fields, iFpp)
+GO(field_count, iFp)
+GO(set_form_win, iFpp)
+GO(set_form_sub, iFpp)
+GO(set_current_field, iFpp)
+GO(unfocus_current_field, iFp)
+GO(field_index, iFp)
+GO(set_form_page, iFpi)
+GO(form_page, iFp)
+GO(scale_form, iFppp)
+//GOM(set_form_init, iFpP)
+//GOM(set_form_term, iFpP)
+//GOM(set_field_init, iFpP)
+//GOM(set_field_term, iFpP)
+GO(post_form, iFp)
+GO(unpost_form, iFp)
+GO(pos_form_cursor, iFp)
+GO(form_driver, iFpi)
+GO(form_driver_w, iFpiu)
+GO(set_form_userptr, iFpp)
+GO(set_form_opts, iFpi)
+GO(form_opts_on, iFpi)
+GO(form_opts_off, iFpi)
+GO(form_request_by_name, iFp)
+GO(form_request_name, pFi)
+GO(form_userptr, pFp)
+GO(form_opts, iFp)
+GO(data_ahead, iFp)
+GO(data_behind, iFp)
+GO(new_form_sp, pFpp)
diff --git a/src/wrapped/wrappedlibncurses.c b/src/wrapped/wrappedlibncurses.c
new file mode 100755
index 00000000..204e1145
--- /dev/null
+++ b/src/wrapped/wrappedlibncurses.c
@@ -0,0 +1,103 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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"
+#include "myalign.h"
+
+const char* libncursesName = "libncurses.so.5";
+#define LIBNAME libncurses
+
+static library_t* my_lib = NULL;
+
+// this is a simple copy of libncursesw wrapper. TODO: check if ok
+
+typedef int         (*iFppV_t)(void*, void*, va_list);
+typedef int         (*iFpiip_t)(void*, int32_t, int32_t, void*);
+
+#define SUPER() \
+    GO(mvwprintw, iFpiip_t) \
+    GO(vwprintw, iFppV_t)   \
+    GO(stdscr, void*)
+
+typedef struct libncurses_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} libncurses_my_t;
+
+void* getNCursesMy(library_t* lib)
+{
+    libncurses_my_t* my = (libncurses_my_t*)calloc(1, sizeof(libncurses_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeNCursesMy(void* lib)
+{
+    //libncurses_my_t *my = (libncurses_my_t *)lib;
+}
+
+EXPORT int my_mvwprintw(x64emu_t* emu, void* win, int32_t y, int32_t x, void* fmt, void* b)
+{
+    libncurses_my_t *my = (libncurses_my_t*)my_lib->priv.w.p2;
+
+    char* buf = NULL;
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 4);
+    PREPARE_VALIST;
+    int ret = vasprintf(&buf, (const char*)fmt, VARARGS);
+    (void)ret;
+    // pre-bake the fmt/vaarg, because there is no "va_list" version of this function
+    ret = my->mvwprintw(win, y, x, buf);
+    free(buf);
+    return ret;
+}
+
+EXPORT int my_printw(x64emu_t* emu, void* fmt, void* b)
+{
+    libncurses_my_t *my = (libncurses_my_t*)my_lib->priv.w.p2;
+
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1);
+    PREPARE_VALIST;
+    return my->vwprintw(my->stdscr, fmt, VARARGS);
+}
+
+EXPORT int my_vwprintw(x64emu_t* emu, void* p, void* fmt, x64_va_list_t b)
+{
+    libncurses_my_t *my = (libncurses_my_t*)my_lib->priv.w.p2;
+
+    CONVERT_VALIST(b);
+    return my->vwprintw(p, fmt, VARARGS);
+}
+
+
+#define CUSTOM_INIT \
+    lib->priv.w.p2 = getNCursesMy(lib); \
+    my_lib = lib; \
+    lib->priv.w.needed = 1; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libtinfo.so.5");
+
+#define CUSTOM_FINI \
+    freeNCursesMy(lib->priv.w.p2); \
+    free(lib->priv.w.p2); \
+    my_lib = NULL;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibncurses6.c b/src/wrapped/wrappedlibncurses6.c
new file mode 100755
index 00000000..243a26be
--- /dev/null
+++ b/src/wrapped/wrappedlibncurses6.c
@@ -0,0 +1,103 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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"
+#include "myalign.h"
+
+const char* libncurses6Name = "libncurses.so.6";
+#define LIBNAME libncurses6
+
+static library_t* my_lib = NULL;
+
+// this is a simple copy of libncursesw wrapper. TODO: check if ok
+
+typedef int         (*iFppV_t)(void*, void*, va_list);
+typedef int         (*iFpiip_t)(void*, int32_t, int32_t, void*);
+
+#define SUPER() \
+    GO(mvwprintw, iFpiip_t) \
+    GO(vwprintw, iFppV_t)   \
+    GO(stdscr, void*)
+
+typedef struct libncurses6_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} libncurses6_my_t;
+
+void* getNCurses6My(library_t* lib)
+{
+    libncurses6_my_t* my = (libncurses6_my_t*)calloc(1, sizeof(libncurses6_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeNCurses6My(void* lib)
+{
+    //libncurses6_my_t *my = (libncurses6_my_t *)lib;
+}
+
+EXPORT int my6_mvwprintw(x64emu_t* emu, void* win, int32_t y, int32_t x, void* fmt, void* b)
+{
+    libncurses6_my_t *my = (libncurses6_my_t*)my_lib->priv.w.p2;
+
+    char* buf = NULL;
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 4);
+    PREPARE_VALIST;
+    int ret = vasprintf(&buf, (const char*)fmt, VARARGS);
+    (void)ret;
+    // pre-bake the fmt/vaarg, because there is no "va_list" version of this function
+    ret = my->mvwprintw(win, y, x, buf);
+    free(buf);
+    return ret;
+}
+
+EXPORT int my6_printw(x64emu_t* emu, void* fmt, void* b)
+{
+    libncurses6_my_t *my = (libncurses6_my_t*)my_lib->priv.w.p2;
+
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1);
+    PREPARE_VALIST;
+    return my->vwprintw(my->stdscr, fmt, VARARGS);
+}
+
+EXPORT int my6_vwprintw(x64emu_t* emu, void* p, void* fmt, x64_va_list_t b)
+{
+    libncurses6_my_t *my = (libncurses6_my_t*)my_lib->priv.w.p2;
+
+    CONVERT_VALIST(b);
+    return my->vwprintw(p, fmt, VARARGS);
+}
+
+#define CUSTOM_INIT \
+    lib->priv.w.p2 = getNCurses6My(lib);    \
+    my_lib = lib;                           \
+    lib->altmy = strdup("my6_");            \
+    lib->priv.w.needed = 1;                 \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libtinfo.so.6");
+
+#define CUSTOM_FINI \
+    freeNCurses6My(lib->priv.w.p2); \
+    free(lib->priv.w.p2);           \
+    my_lib = NULL;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibncurses6_private.h b/src/wrapped/wrappedlibncurses6_private.h
new file mode 100755
index 00000000..1446bdec
--- /dev/null
+++ b/src/wrapped/wrappedlibncurses6_private.h
@@ -0,0 +1,424 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(wgetch_events, iFpp)
+GO(wgetnstr_events, iFppip)
+GO(addch, iFL)
+GO(addchnstr, iFpi)
+GO(addchstr, iFp)
+GO(addnstr, iFpi)
+GO(addstr, iFp)
+GO(attroff, iFi)
+GO(attron, iFi)
+GO(attrset, iFi)
+GO(attr_get, iFppp)
+GO(attr_off, iFLp)
+GO(attr_on, iFLp)
+GO(attr_set, iFLwp)
+GO(beep, iFv)
+GO(bkgd, iFL)
+GO(bkgdset, vFL)
+GO(border, iFLLLLLLLL)
+GO(box, iFpLL)
+GO(can_change_color, iFv)
+GO(chgat, iFiLwp)
+GO(clear, iFv)
+GO(clearok, iFpi)
+GO(clrtobot, iFv)
+GO(clrtoeol, iFv)
+GO(color_content, iFwppp)
+GO(color_set, iFwp)
+GO(COLOR_PAIR, iFi)
+GO(copywin, iFppiiiiiii)
+GO(delch, iFv)
+GO(delscreen, vFp)
+GO(delwin, iFp)
+GO(deleteln, iFv)
+GO(derwin, pFpiiii)
+GO(doupdate, iFv)
+GO(dupwin, pFp)
+GO(echo, iFv)
+GO(echochar, iFL)
+GO(erase, iFv)
+GO(endwin, iFv)
+GO(filter, vFv)
+GO(flash, iFv)
+GO(getbkgd, LFp)
+GO(getch, iFv)
+GO(getnstr, iFpi)
+GO(getstr, iFp)
+GO(getwin, pFp)
+GO(has_colors, iFv)
+GO(hline, iFLi)
+GO(immedok, vFpi)
+GO(inch, LFv)
+GO(inchnstr, iFpi)
+GO(inchstr, iFp)
+GO(initscr, pFv)
+GO(init_color, iFwwww)
+GO(init_pair, iFwww)
+GO(innstr, iFpi)
+GO(insch, iFL)
+GO(insdelln, iFi)
+GO(insertln, iFv)
+GO(insnstr, iFpi)
+GO(insstr, iFp)
+GO(instr, iFp)
+GO(isendwin, iFv)
+GO(is_linetouched, iFpi)
+GO(is_wintouched, iFp)
+GO(leaveok, iFpi)
+GO(move, iFii)
+GO(mvaddch, iFiiL)
+GO(mvaddchnstr, iFiipi)
+GO(mvaddchstr, iFiip)
+GO(mvaddnstr, iFiipi)
+GO(mvaddstr, iFiip)
+GO(mvchgat, iFiiiLwp)
+GO(mvcur, iFiiii)
+GO(mvdelch, iFii)
+GO(mvderwin, iFpii)
+GO(mvgetch, iFii)
+GO(mvgetnstr, iFiipi)
+GO(mvgetstr, iFiip)
+GO(mvhline, iFiiLi)
+GO(mvinch, LFii)
+GO(mvinchnstr, iFiipi)
+GO(mvinchstr, iFiip)
+GO(mvinnstr, iFiipi)
+GO(mvinsch, iFiiL)
+GO(mvinsnstr, iFiipi)
+GO(mvinsstr, iFiip)
+GO(mvinstr, iFiip)
+//GO(mvprintw, i(i,i,p,...)
+//GO(mvscanw, i(i,i,p,...)
+GO(mvvline, iFiiLi)
+GO(mvwaddch, iFpiiL)
+GO(mvwaddchnstr, iFpiipi)
+GO(mvwaddchstr, iFpiip)
+GO(mvwaddnstr, iFpiipi)
+GO(mvwaddstr, iFpiip)
+GO(mvwchgat, iFpiiiLwp)
+GO(mvwdelch, iFpii)
+GO(mvwgetch, iFpii)
+GO(mvwgetnstr, iFpiipi)
+GO(mvwgetstr, iFpiip)
+GO(mvwhline, iFpiiLi)
+GO(mvwin, iFpii)
+GO(mvwinch, LFpii)
+GO(mvwinchnstr, iFpiipi)
+GO(mvwinchstr, iFpiip)
+GO(mvwinnstr, iFpiipi)
+GO(mvwinsch, iFpiiL)
+GO(mvwinsnstr, iFpiipi)
+GO(mvwinsstr, iFpiip)
+GO(mvwinstr, iFpiip)
+GOM(mvwprintw, iFEpiipV)
+//GO(mvwscanw, i(p,i,i,p,...)
+GO(mvwvline, iFpiiLi)
+GO(newpad, pFii)
+GO(newterm, pFppp)
+GO(newwin, pFiiii)
+GO(nl, iFv)
+GO(noecho, iFv)
+GO(nonl, iFv)
+GO(overlay, iFpp)
+GO(overwrite, iFpp)
+GO(pair_content, iFwpp)
+GO(PAIR_NUMBER, iFi)
+GO(pechochar, iFpL)
+GO(pnoutrefresh, iFpiiiiii)
+GO(prefresh, iFpiiiiii)
+GOM(printw, iFEpV)
+GO(putwin, iFpp)
+GO(redrawwin, iFp)
+GO(refresh, iFv)
+//GOM(ripoffline, int(int,int (*)(WINDOW*,int)))
+//GO(scanw, i(p,...)
+GO(scr_dump, iFp)
+GO(scr_init, iFp)
+GO(scrl, iFi)
+GO(scroll, iFp)
+GO(scrollok, iFpi)
+GO(scr_restore, iFp)
+GO(scr_set, iFp)
+GO(setscrreg, iFii)
+GO(set_term, pFp)
+GO(slk_attroff, iFL)
+GO(slk_attr_off, iFLp)
+GO(slk_attron, iFL)
+GO(slk_attr_on, iFLp)
+GO(slk_attrset, iFL)
+GO(slk_attr, LFv)
+GO(slk_attr_set, iFLwp)
+GO(slk_clear, iFv)
+GO(slk_color, iFw)
+GO(slk_init, iFi)
+GO(slk_label, pFi)
+GO(slk_noutrefresh, iFv)
+GO(slk_refresh, iFv)
+GO(slk_restore, iFv)
+GO(slk_set, iFipi)
+GO(slk_touch, iFv)
+GO(standout, iFv)
+GO(standend, iFv)
+GO(start_color, iFv)
+GO(subpad, pFpiiii)
+GO(subwin, pFpiiii)
+GO(syncok, iFpi)
+GO(termattrs, LFv)
+GO(timeout, vFi)
+GO(touchline, iFpii)
+GO(touchwin, iFp)
+GO(ungetch, iFi)
+GO(untouchwin, iFp)
+GO(use_tioctl, vFi)
+GO(vidattr, iFL)
+//GOM(vidputs, iFLP)
+GO(vline, iFLi)
+GOM(vwprintw, iFEppp)
+GO(vw_printw, iFppp)
+GO(vwscanw, iFppp)
+GO(vw_scanw, iFppp)
+GO(waddch, iFpL)
+GO(waddchnstr, iFppi)
+GO(waddchstr, iFpp)
+GO(waddnstr, iFppi)
+GO(waddstr, iFpp)
+GO(wattron, iFpi)
+GO(wattroff, iFpi)
+GO(wattrset, iFpi)
+GO(wattr_get, iFpppp)
+GO(wattr_on, iFpLp)
+GO(wattr_off, iFpLp)
+GO(wattr_set, iFpLwp)
+GO(wbkgd, iFpL)
+GO(wbkgdset, vFpL)
+GO(wborder, iFpLLLLLLLL)
+GO(wchgat, iFpiLwp)
+GO(wclear, iFp)
+GO(wclrtobot, iFp)
+GO(wclrtoeol, iFp)
+GO(wcolor_set, iFpwp)
+GO(wcursyncup, vFp)
+GO(wdelch, iFp)
+GO(wdeleteln, iFp)
+GO(wechochar, iFpL)
+GO(werase, iFp)
+GO(wgetch, iFp)
+GO(wgetnstr, iFppi)
+GO(wgetstr, iFpp)
+GO(whline, iFpLi)
+GO(winch, LFp)
+GO(winchnstr, iFppi)
+GO(winchstr, iFpp)
+GO(winnstr, iFppi)
+GO(winsch, iFpL)
+GO(winsdelln, iFpi)
+GO(winsertln, iFp)
+GO(winsnstr, iFppi)
+GO(winsstr, iFpp)
+GO(winstr, iFpp)
+GO(wmove, iFpii)
+GO(wnoutrefresh, iFp)
+//GO(wprintw, i(p,p,...)
+GO(wredrawln, iFpii)
+GO(wrefresh, iFp)
+//GO(wscanw, i(p,p,...)
+GO(wscrl, iFpi)
+GO(wsetscrreg, iFpii)
+GO(wstandout, iFp)
+GO(wstandend, iFp)
+GO(wsyncdown, vFp)
+GO(wsyncup, vFp)
+GO(wtouchln, iFpiii)
+GO(wvline, iFpLi)
+GO(getattrs, iFp)
+GO(getcurx, iFp)
+GO(getcury, iFp)
+GO(getbegx, iFp)
+GO(getbegy, iFp)
+GO(getmaxx, iFp)
+GO(getmaxy, iFp)
+GO(getparx, iFp)
+GO(getpary, iFp)
+GO(is_term_resized, iFii)
+GO(alloc_pair, iFii)
+GO(assume_default_colors, iFii)
+GO(extended_color_content, iFippp)
+GO(extended_pair_content, iFipp)
+GO(extended_slk_color, iFi)
+GO(find_pair, iFii)
+GO(free_pair, iFi)
+GO(get_escdelay, iFv)
+GO(init_extended_color, iFiiii)
+GO(init_extended_pair, iFiii)
+GO(reset_color_pairs, vFv)
+GO(resize_term, iFii)
+GO(resizeterm, iFii)
+GO(set_escdelay, iFi)
+GO(use_default_colors, iFv)
+GO(use_legacy_coding, iFi)
+//GOM(use_screen, iFpPp)
+//GOM(use_window, iFpPp)
+GO(wresize, iFpii)
+GO(nofilter, vFv)
+GO(wgetparent, pFp)
+GO(is_cleared, iFp)
+GO(is_idcok, iFp)
+GO(is_idlok, iFp)
+GO(is_immedok, iFp)
+GO(is_keypad, iFp)
+GO(is_leaveok, iFp)
+GO(is_nodelay, iFp)
+GO(is_notimeout, iFp)
+GO(is_pad, iFp)
+GO(is_scrollok, iFp)
+GO(is_subwin, iFp)
+GO(is_syncok, iFp)
+GO(wgetdelay, iFp)
+GO(wgetscrreg, iFppp)
+GO(add_wch, iFp)
+GO(add_wchnstr, iFpi)
+GO(add_wchstr, iFp)
+GO(addnwstr, iFpi)
+GO(addwstr, iFp)
+GO(bkgrnd, iFp)
+GO(bkgrndset, vFp)
+GO(border_set, iFpppppppp)
+GO(box_set, iFppp)
+GO(echo_wchar, iFp)
+GO(erasewchar, iFp)
+GO(get_wch, iFp)
+GO(get_wstr, iFp)
+GO(getbkgrnd, iFp)
+GO(getcchar, iFppppp)
+GO(getn_wstr, iFpi)
+GO(hline_set, iFpi)
+GO(in_wch, iFp)
+GO(in_wchnstr, iFpi)
+GO(in_wchstr, iFp)
+GO(innwstr, iFpi)
+GO(ins_nwstr, iFpi)
+GO(ins_wch, iFp)
+GO(ins_wstr, iFp)
+GO(inwstr, iFp)
+GO(key_name, pFu)
+GO(killwchar, iFp)
+GO(mvadd_wch, iFiip)
+GO(mvadd_wchnstr, iFiipi)
+GO(mvadd_wchstr, iFiip)
+GO(mvaddnwstr, iFiipi)
+GO(mvaddwstr, iFiip)
+GO(mvget_wch, iFiip)
+GO(mvget_wstr, iFiip)
+GO(mvgetn_wstr, iFiipi)
+GO(mvhline_set, iFiipi)
+GO(mvin_wch, iFiip)
+GO(mvin_wchnstr, iFiipi)
+GO(mvin_wchstr, iFiip)
+GO(mvinnwstr, iFiipi)
+GO(mvins_nwstr, iFiipi)
+GO(mvins_wch, iFiip)
+GO(mvins_wstr, iFiip)
+GO(mvinwstr, iFiip)
+GO(mvvline_set, iFiipi)
+GO(mvwadd_wch, iFpiip)
+GO(mvwadd_wchnstr, iFpiipi)
+GO(mvwadd_wchstr, iFpiip)
+GO(mvwaddnwstr, iFpiipi)
+GO(mvwaddwstr, iFpiip)
+GO(mvwget_wch, iFpiip)
+GO(mvwget_wstr, iFpiip)
+GO(mvwgetn_wstr, iFpiipi)
+GO(mvwhline_set, iFpiipi)
+GO(mvwin_wch, iFpiip)
+GO(mvwin_wchnstr, iFpiipi)
+GO(mvwin_wchstr, iFpiip)
+GO(mvwinnwstr, iFpiipi)
+GO(mvwins_nwstr, iFpiipi)
+GO(mvwins_wch, iFpiip)
+GO(mvwins_wstr, iFpiip)
+GO(mvwinwstr, iFpiip)
+GO(mvwvline_set, iFpiipi)
+GO(pecho_wchar, iFpp)
+GO(setcchar, iFppLwp)
+GO(slk_wset, iFipi)
+GO(term_attrs, LFv)
+GO(unget_wch, iFu)
+GO(vid_attr, iFLwp)
+//GOM(vid_puts, iFLwpP)
+GO(vline_set, iFpi)
+GO(wadd_wch, iFpp)
+GO(wadd_wchnstr, iFppi)
+GO(wadd_wchstr, iFpp)
+GO(waddnwstr, iFppi)
+GO(waddwstr, iFpp)
+GO(wbkgrnd, iFpp)
+GO(wbkgrndset, vFpp)
+GO(wborder_set, iFppppppppp)
+GO(wecho_wchar, iFpp)
+GO(wget_wch, iFpp)
+GO(wget_wstr, iFpp)
+GO(wgetbkgrnd, iFpp)
+GO(wgetn_wstr, iFppi)
+GO(whline_set, iFppi)
+GO(win_wch, iFpp)
+GO(win_wchnstr, iFppi)
+GO(win_wchstr, iFpp)
+GO(winnwstr, iFppi)
+GO(wins_nwstr, iFppi)
+GO(wins_wch, iFpp)
+GO(wins_wstr, iFpp)
+GO(winwstr, iFpp)
+GO(wunctrl, pFp)
+GO(wvline_set, iFppi)
+GO(term_attrs, LFp)
+GO(unget_wch, iFpu)
+GO(vid_attr, iFpLwp)
+//GOM(vid_puts, iFpLwpP)
+GO(_nc_viswbuf, pFp)
+GO(_nc_viswibuf, pFp)
+GO(has_mouse, iFv)
+GO(getmouse, iFp)
+GO(ungetmouse, iFp)
+GO(mousemask, LFLp)
+GO(wenclose, iFpii)
+GO(mouseinterval, iFi)
+GO(wmouse_trafo, iFpppi)
+GO(mouse_trafo, iFppi)
+GO(has_mouse, iFp)
+GO(getmouse, iFpp)
+GO(ungetmouse, iFpp)
+GO(mousemask, LFpLp)
+GO(mouseinterval, iFpi)
+GO(mcprint, iFpi)
+GO(mcprint, iFppi)
+//GO(_tracef, v(p,...) GCC_PRINTFLIKE(1,2)
+GO(_traceattr, pFL)
+GO(_traceattr2, pFiL)
+GO(_tracechar, pFi)
+GO(_tracechtype, pFL)
+GO(_tracechtype2, pFiL)
+GO(_tracecchar_t, pFp)
+GO(_tracecchar_t2, pFip)
+GO(trace, vFu)
+GO(_nc_visbuf, pFp)
+
+GO(putp, iFp)
+GO(setupterm, iFpip)
+GO(tigetstr, pFp)
+GO(tparm, pFplllllllll) // va_arg or 9 long, depending on how old the .h is
+
+DATA(COLOR_PAIRS, sizeof(void*))
+DATA(COLS, sizeof(void*))
+DATA(COLORS, sizeof(void*))
+DATA(ESCDELAY, sizeof(void*))
+DATA(LINES, sizeof(void*))
+DATA(TABSIZE, sizeof(void*))
+DATA(curscr, sizeof(void*))
+DATA(newscr, sizeof(void*))
+DATA(stdscr, sizeof(void*))
+DATA(ttytype, sizeof(void*))
+DATA(_nc_wacs, sizeof(void*))
diff --git a/src/wrapped/wrappedlibncurses_private.h b/src/wrapped/wrappedlibncurses_private.h
new file mode 100755
index 00000000..b204cfc2
--- /dev/null
+++ b/src/wrapped/wrappedlibncurses_private.h
@@ -0,0 +1,419 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(wgetch_events, iFpp)
+GO(wgetnstr_events, iFppip)
+GO(addch, iFL)
+GO(addchnstr, iFpi)
+GO(addchstr, iFp)
+GO(addnstr, iFpi)
+GO(addstr, iFp)
+GO(attroff, iFi)
+GO(attron, iFi)
+GO(attrset, iFi)
+GO(attr_get, iFppp)
+GO(attr_off, iFLp)
+GO(attr_on, iFLp)
+GO(attr_set, iFLwp)
+GO(beep, iFv)
+GO(bkgd, iFL)
+GO(bkgdset, vFL)
+GO(border, iFLLLLLLLL)
+GO(box, iFpLL)
+GO(can_change_color, iFv)
+GO(chgat, iFiLwp)
+GO(clear, iFv)
+GO(clearok, iFpi)
+GO(clrtobot, iFv)
+GO(clrtoeol, iFv)
+GO(color_content, iFwppp)
+GO(color_set, iFwp)
+GO(COLOR_PAIR, iFi)
+GO(copywin, iFppiiiiiii)
+GO(delch, iFv)
+GO(delscreen, vFp)
+GO(delwin, iFp)
+GO(deleteln, iFv)
+GO(derwin, pFpiiii)
+GO(doupdate, iFv)
+GO(dupwin, pFp)
+GO(echo, iFv)
+GO(echochar, iFL)
+GO(erase, iFv)
+GO(endwin, iFv)
+GO(filter, vFv)
+GO(flash, iFv)
+GO(getbkgd, LFp)
+GO(getch, iFv)
+GO(getnstr, iFpi)
+GO(getstr, iFp)
+GO(getwin, pFp)
+GO(has_colors, iFv)
+GO(hline, iFLi)
+GO(immedok, vFpi)
+GO(inch, LFv)
+GO(inchnstr, iFpi)
+GO(inchstr, iFp)
+GO(initscr, pFv)
+GO(init_color, iFwwww)
+GO(init_pair, iFwww)
+GO(innstr, iFpi)
+GO(insch, iFL)
+GO(insdelln, iFi)
+GO(insertln, iFv)
+GO(insnstr, iFpi)
+GO(insstr, iFp)
+GO(instr, iFp)
+GO(isendwin, iFv)
+GO(is_linetouched, iFpi)
+GO(is_wintouched, iFp)
+GO(leaveok, iFpi)
+GO(move, iFii)
+GO(mvaddch, iFiiL)
+GO(mvaddchnstr, iFiipi)
+GO(mvaddchstr, iFiip)
+GO(mvaddnstr, iFiipi)
+GO(mvaddstr, iFiip)
+GO(mvchgat, iFiiiLwp)
+GO(mvcur, iFiiii)
+GO(mvdelch, iFii)
+GO(mvderwin, iFpii)
+GO(mvgetch, iFii)
+GO(mvgetnstr, iFiipi)
+GO(mvgetstr, iFiip)
+GO(mvhline, iFiiLi)
+GO(mvinch, LFii)
+GO(mvinchnstr, iFiipi)
+GO(mvinchstr, iFiip)
+GO(mvinnstr, iFiipi)
+GO(mvinsch, iFiiL)
+GO(mvinsnstr, iFiipi)
+GO(mvinsstr, iFiip)
+GO(mvinstr, iFiip)
+//GO(mvprintw, i(i,i,p,...)
+//GO(mvscanw, i(i,i,p,...)
+GO(mvvline, iFiiLi)
+GO(mvwaddch, iFpiiL)
+GO(mvwaddchnstr, iFpiipi)
+GO(mvwaddchstr, iFpiip)
+GO(mvwaddnstr, iFpiipi)
+GO(mvwaddstr, iFpiip)
+GO(mvwchgat, iFpiiiLwp)
+GO(mvwdelch, iFpii)
+GO(mvwgetch, iFpii)
+GO(mvwgetnstr, iFpiipi)
+GO(mvwgetstr, iFpiip)
+GO(mvwhline, iFpiiLi)
+GO(mvwin, iFpii)
+GO(mvwinch, LFpii)
+GO(mvwinchnstr, iFpiipi)
+GO(mvwinchstr, iFpiip)
+GO(mvwinnstr, iFpiipi)
+GO(mvwinsch, iFpiiL)
+GO(mvwinsnstr, iFpiipi)
+GO(mvwinsstr, iFpiip)
+GO(mvwinstr, iFpiip)
+GOM(mvwprintw, iFEpiipV)
+//GO(mvwscanw, i(p,i,i,p,...)
+GO(mvwvline, iFpiiLi)
+GO(newpad, pFii)
+GO(newterm, pFppp)
+GO(newwin, pFiiii)
+GO(nl, iFv)
+GO(noecho, iFv)
+GO(nonl, iFv)
+GO(overlay, iFpp)
+GO(overwrite, iFpp)
+GO(pair_content, iFwpp)
+GO(PAIR_NUMBER, iFi)
+GO(pechochar, iFpL)
+GO(pnoutrefresh, iFpiiiiii)
+GO(prefresh, iFpiiiiii)
+GOM(printw, iFEpV)
+GO(putwin, iFpp)
+GO(redrawwin, iFp)
+GO(refresh, iFv)
+//GOM(ripoffline, int(int,int (*)(WINDOW*,int)))
+//GO(scanw, i(p,...)
+GO(scr_dump, iFp)
+GO(scr_init, iFp)
+GO(scrl, iFi)
+GO(scroll, iFp)
+GO(scrollok, iFpi)
+GO(scr_restore, iFp)
+GO(scr_set, iFp)
+GO(setscrreg, iFii)
+GO(set_term, pFp)
+GO(slk_attroff, iFL)
+GO(slk_attr_off, iFLp)
+GO(slk_attron, iFL)
+GO(slk_attr_on, iFLp)
+GO(slk_attrset, iFL)
+GO(slk_attr, LFv)
+GO(slk_attr_set, iFLwp)
+GO(slk_clear, iFv)
+GO(slk_color, iFw)
+GO(slk_init, iFi)
+GO(slk_label, pFi)
+GO(slk_noutrefresh, iFv)
+GO(slk_refresh, iFv)
+GO(slk_restore, iFv)
+GO(slk_set, iFipi)
+GO(slk_touch, iFv)
+GO(standout, iFv)
+GO(standend, iFv)
+GO(start_color, iFv)
+GO(subpad, pFpiiii)
+GO(subwin, pFpiiii)
+GO(syncok, iFpi)
+GO(termattrs, LFv)
+GO(timeout, vFi)
+GO(touchline, iFpii)
+GO(touchwin, iFp)
+GO(ungetch, iFi)
+GO(untouchwin, iFp)
+GO(use_tioctl, vFi)
+GO(vidattr, iFL)
+//GOM(vidputs, iFLP)
+GO(vline, iFLi)
+GOM(vwprintw, iFEppp)
+GO(vw_printw, iFppp)
+GO(vwscanw, iFppp)
+GO(vw_scanw, iFppp)
+GO(waddch, iFpL)
+GO(waddchnstr, iFppi)
+GO(waddchstr, iFpp)
+GO(waddnstr, iFppi)
+GO(waddstr, iFpp)
+GO(wattron, iFpi)
+GO(wattroff, iFpi)
+GO(wattrset, iFpi)
+GO(wattr_get, iFpppp)
+GO(wattr_on, iFpLp)
+GO(wattr_off, iFpLp)
+GO(wattr_set, iFpLwp)
+GO(wbkgd, iFpL)
+GO(wbkgdset, vFpL)
+GO(wborder, iFpLLLLLLLL)
+GO(wchgat, iFpiLwp)
+GO(wclear, iFp)
+GO(wclrtobot, iFp)
+GO(wclrtoeol, iFp)
+GO(wcolor_set, iFpwp)
+GO(wcursyncup, vFp)
+GO(wdelch, iFp)
+GO(wdeleteln, iFp)
+GO(wechochar, iFpL)
+GO(werase, iFp)
+GO(wgetch, iFp)
+GO(wgetnstr, iFppi)
+GO(wgetstr, iFpp)
+GO(whline, iFpLi)
+GO(winch, LFp)
+GO(winchnstr, iFppi)
+GO(winchstr, iFpp)
+GO(winnstr, iFppi)
+GO(winsch, iFpL)
+GO(winsdelln, iFpi)
+GO(winsertln, iFp)
+GO(winsnstr, iFppi)
+GO(winsstr, iFpp)
+GO(winstr, iFpp)
+GO(wmove, iFpii)
+GO(wnoutrefresh, iFp)
+//GO(wprintw, i(p,p,...)
+GO(wredrawln, iFpii)
+GO(wrefresh, iFp)
+//GO(wscanw, i(p,p,...)
+GO(wscrl, iFpi)
+GO(wsetscrreg, iFpii)
+GO(wstandout, iFp)
+GO(wstandend, iFp)
+GO(wsyncdown, vFp)
+GO(wsyncup, vFp)
+GO(wtouchln, iFpiii)
+GO(wvline, iFpLi)
+GO(getattrs, iFp)
+GO(getcurx, iFp)
+GO(getcury, iFp)
+GO(getbegx, iFp)
+GO(getbegy, iFp)
+GO(getmaxx, iFp)
+GO(getmaxy, iFp)
+GO(getparx, iFp)
+GO(getpary, iFp)
+GO(is_term_resized, iFii)
+GO(alloc_pair, iFii)
+GO(assume_default_colors, iFii)
+GO(extended_color_content, iFippp)
+GO(extended_pair_content, iFipp)
+GO(extended_slk_color, iFi)
+GO(find_pair, iFii)
+GO(free_pair, iFi)
+GO(get_escdelay, iFv)
+GO(init_extended_color, iFiiii)
+GO(init_extended_pair, iFiii)
+GO(reset_color_pairs, vFv)
+GO(resize_term, iFii)
+GO(resizeterm, iFii)
+GO(set_escdelay, iFi)
+GO(use_default_colors, iFv)
+GO(use_legacy_coding, iFi)
+//GOM(use_screen, iFpPp)
+//GOM(use_window, iFpPp)
+GO(wresize, iFpii)
+GO(nofilter, vFv)
+GO(wgetparent, pFp)
+GO(is_cleared, iFp)
+GO(is_idcok, iFp)
+GO(is_idlok, iFp)
+GO(is_immedok, iFp)
+GO(is_keypad, iFp)
+GO(is_leaveok, iFp)
+GO(is_nodelay, iFp)
+GO(is_notimeout, iFp)
+GO(is_pad, iFp)
+GO(is_scrollok, iFp)
+GO(is_subwin, iFp)
+GO(is_syncok, iFp)
+GO(wgetdelay, iFp)
+GO(wgetscrreg, iFppp)
+GO(add_wch, iFp)
+GO(add_wchnstr, iFpi)
+GO(add_wchstr, iFp)
+GO(addnwstr, iFpi)
+GO(addwstr, iFp)
+GO(bkgrnd, iFp)
+GO(bkgrndset, vFp)
+GO(border_set, iFpppppppp)
+GO(box_set, iFppp)
+GO(echo_wchar, iFp)
+GO(erasewchar, iFp)
+GO(get_wch, iFp)
+GO(get_wstr, iFp)
+GO(getbkgrnd, iFp)
+GO(getcchar, iFppppp)
+GO(getn_wstr, iFpi)
+GO(hline_set, iFpi)
+GO(in_wch, iFp)
+GO(in_wchnstr, iFpi)
+GO(in_wchstr, iFp)
+GO(innwstr, iFpi)
+GO(ins_nwstr, iFpi)
+GO(ins_wch, iFp)
+GO(ins_wstr, iFp)
+GO(inwstr, iFp)
+GO(key_name, pFu)
+GO(killwchar, iFp)
+GO(mvadd_wch, iFiip)
+GO(mvadd_wchnstr, iFiipi)
+GO(mvadd_wchstr, iFiip)
+GO(mvaddnwstr, iFiipi)
+GO(mvaddwstr, iFiip)
+GO(mvget_wch, iFiip)
+GO(mvget_wstr, iFiip)
+GO(mvgetn_wstr, iFiipi)
+GO(mvhline_set, iFiipi)
+GO(mvin_wch, iFiip)
+GO(mvin_wchnstr, iFiipi)
+GO(mvin_wchstr, iFiip)
+GO(mvinnwstr, iFiipi)
+GO(mvins_nwstr, iFiipi)
+GO(mvins_wch, iFiip)
+GO(mvins_wstr, iFiip)
+GO(mvinwstr, iFiip)
+GO(mvvline_set, iFiipi)
+GO(mvwadd_wch, iFpiip)
+GO(mvwadd_wchnstr, iFpiipi)
+GO(mvwadd_wchstr, iFpiip)
+GO(mvwaddnwstr, iFpiipi)
+GO(mvwaddwstr, iFpiip)
+GO(mvwget_wch, iFpiip)
+GO(mvwget_wstr, iFpiip)
+GO(mvwgetn_wstr, iFpiipi)
+GO(mvwhline_set, iFpiipi)
+GO(mvwin_wch, iFpiip)
+GO(mvwin_wchnstr, iFpiipi)
+GO(mvwin_wchstr, iFpiip)
+GO(mvwinnwstr, iFpiipi)
+GO(mvwins_nwstr, iFpiipi)
+GO(mvwins_wch, iFpiip)
+GO(mvwins_wstr, iFpiip)
+GO(mvwinwstr, iFpiip)
+GO(mvwvline_set, iFpiipi)
+GO(pecho_wchar, iFpp)
+GO(setcchar, iFppLwp)
+GO(slk_wset, iFipi)
+GO(term_attrs, LFv)
+GO(unget_wch, iFu)
+GO(vid_attr, iFLwp)
+//GOM(vid_puts, iFLwpP)
+GO(vline_set, iFpi)
+GO(wadd_wch, iFpp)
+GO(wadd_wchnstr, iFppi)
+GO(wadd_wchstr, iFpp)
+GO(waddnwstr, iFppi)
+GO(waddwstr, iFpp)
+GO(wbkgrnd, iFpp)
+GO(wbkgrndset, vFpp)
+GO(wborder_set, iFppppppppp)
+GO(wecho_wchar, iFpp)
+GO(wget_wch, iFpp)
+GO(wget_wstr, iFpp)
+GO(wgetbkgrnd, iFpp)
+GO(wgetn_wstr, iFppi)
+GO(whline_set, iFppi)
+GO(win_wch, iFpp)
+GO(win_wchnstr, iFppi)
+GO(win_wchstr, iFpp)
+GO(winnwstr, iFppi)
+GO(wins_nwstr, iFppi)
+GO(wins_wch, iFpp)
+GO(wins_wstr, iFpp)
+GO(winwstr, iFpp)
+GO(wunctrl, pFp)
+GO(wvline_set, iFppi)
+GO(term_attrs, LFp)
+GO(unget_wch, iFpu)
+GO(vid_attr, iFpLwp)
+//GOM(vid_puts, iFpLwpP)
+GO(_nc_viswbuf, pFp)
+GO(_nc_viswibuf, pFp)
+GO(has_mouse, iFv)
+GO(getmouse, iFp)
+GO(ungetmouse, iFp)
+GO(mousemask, LFLp)
+GO(wenclose, iFpii)
+GO(mouseinterval, iFi)
+GO(wmouse_trafo, iFpppi)
+GO(mouse_trafo, iFppi)
+GO(has_mouse, iFp)
+GO(getmouse, iFpp)
+GO(ungetmouse, iFpp)
+GO(mousemask, LFpLp)
+GO(mouseinterval, iFpi)
+GO(mcprint, iFpi)
+GO(mcprint, iFppi)
+//GO(_tracef, v(p,...) GCC_PRINTFLIKE(1,2)
+GO(_traceattr, pFL)
+GO(_traceattr2, pFiL)
+GO(_tracechar, pFi)
+GO(_tracechtype, pFL)
+GO(_tracechtype2, pFiL)
+GO(_tracecchar_t, pFp)
+GO(_tracecchar_t2, pFip)
+GO(trace, vFu)
+GO(_nc_visbuf, pFp)
+
+DATA(COLOR_PAIRS, sizeof(void*))
+DATA(COLS, sizeof(void*))
+DATA(COLORS, sizeof(void*))
+DATA(ESCDELAY, sizeof(void*))
+DATA(LINES, sizeof(void*))
+DATA(TABSIZE, sizeof(void*))
+DATA(curscr, sizeof(void*))
+DATA(newscr, sizeof(void*))
+DATA(stdscr, sizeof(void*))
+DATA(ttytype, sizeof(void*))
+DATA(_nc_wacs, sizeof(void*))
diff --git a/src/wrapped/wrappedlibncursesw.c b/src/wrapped/wrappedlibncursesw.c
new file mode 100755
index 00000000..6628dc6f
--- /dev/null
+++ b/src/wrapped/wrappedlibncursesw.c
@@ -0,0 +1,101 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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"
+#include "myalign.h"
+
+const char* libncurseswName = "libncursesw.so.5";
+#define LIBNAME libncursesw
+
+static library_t* my_lib = NULL;
+
+typedef int         (*iFppV_t)(void*, void*, va_list);
+typedef int         (*iFpiip_t)(void*, int32_t, int32_t, void*);
+
+#define SUPER()             \
+    GO(mvwprintw, iFpiip_t) \
+    GO(vwprintw, iFppV_t)   \
+    GO(stdscr, void*)
+
+typedef struct libncursesw_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} libncursesw_my_t;
+
+void* getNCurseswMy(library_t* lib)
+{
+    libncursesw_my_t* my = (libncursesw_my_t*)calloc(1, sizeof(libncursesw_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeNCurseswMy(void* lib)
+{
+    //libncursesw_my_t *my = (libncursesw_my_t *)lib;
+}
+
+EXPORT int myw_mvwprintw(x64emu_t* emu, void* win, int32_t y, int32_t x, void* fmt, void* b)
+{
+    libncursesw_my_t *my = (libncursesw_my_t*)my_lib->priv.w.p2;
+
+    char* buf = NULL;
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 4);
+    PREPARE_VALIST;
+    int ret = vasprintf(&buf, (const char*)fmt, VARARGS);
+    (void)ret;
+    // pre-bake the fmt/vaarg, because there is no "va_list" version of this function
+    ret = my->mvwprintw(win, y, x, buf);
+    free(buf);
+    return ret;
+}
+
+EXPORT int myw_printw(x64emu_t* emu, void* fmt, void* b)
+{
+    libncursesw_my_t *my = (libncursesw_my_t*)my_lib->priv.w.p2;
+
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1);
+    PREPARE_VALIST;
+    return my->vwprintw(my->stdscr, fmt, VARARGS);
+}
+
+EXPORT int myw_vwprintw(x64emu_t* emu, void* p, void* fmt, x64_va_list_t b)
+{
+    libncursesw_my_t *my = (libncursesw_my_t*)my_lib->priv.w.p2;
+
+    CONVERT_VALIST(b);
+    return my->vwprintw(p, fmt, VARARGS);
+}
+
+#define CUSTOM_INIT \
+    lib->priv.w.p2 = getNCurseswMy(lib); \
+    my_lib = lib;   \
+    lib->altmy = strdup("myw_"); \
+    lib->priv.w.needed = 1; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libtinfo.so.5");
+
+#define CUSTOM_FINI \
+    freeNCurseswMy(lib->priv.w.p2); \
+    free(lib->priv.w.p2);           \
+    my_lib = NULL;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibncursesw_private.h b/src/wrapped/wrappedlibncursesw_private.h
new file mode 100755
index 00000000..b204cfc2
--- /dev/null
+++ b/src/wrapped/wrappedlibncursesw_private.h
@@ -0,0 +1,419 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(wgetch_events, iFpp)
+GO(wgetnstr_events, iFppip)
+GO(addch, iFL)
+GO(addchnstr, iFpi)
+GO(addchstr, iFp)
+GO(addnstr, iFpi)
+GO(addstr, iFp)
+GO(attroff, iFi)
+GO(attron, iFi)
+GO(attrset, iFi)
+GO(attr_get, iFppp)
+GO(attr_off, iFLp)
+GO(attr_on, iFLp)
+GO(attr_set, iFLwp)
+GO(beep, iFv)
+GO(bkgd, iFL)
+GO(bkgdset, vFL)
+GO(border, iFLLLLLLLL)
+GO(box, iFpLL)
+GO(can_change_color, iFv)
+GO(chgat, iFiLwp)
+GO(clear, iFv)
+GO(clearok, iFpi)
+GO(clrtobot, iFv)
+GO(clrtoeol, iFv)
+GO(color_content, iFwppp)
+GO(color_set, iFwp)
+GO(COLOR_PAIR, iFi)
+GO(copywin, iFppiiiiiii)
+GO(delch, iFv)
+GO(delscreen, vFp)
+GO(delwin, iFp)
+GO(deleteln, iFv)
+GO(derwin, pFpiiii)
+GO(doupdate, iFv)
+GO(dupwin, pFp)
+GO(echo, iFv)
+GO(echochar, iFL)
+GO(erase, iFv)
+GO(endwin, iFv)
+GO(filter, vFv)
+GO(flash, iFv)
+GO(getbkgd, LFp)
+GO(getch, iFv)
+GO(getnstr, iFpi)
+GO(getstr, iFp)
+GO(getwin, pFp)
+GO(has_colors, iFv)
+GO(hline, iFLi)
+GO(immedok, vFpi)
+GO(inch, LFv)
+GO(inchnstr, iFpi)
+GO(inchstr, iFp)
+GO(initscr, pFv)
+GO(init_color, iFwwww)
+GO(init_pair, iFwww)
+GO(innstr, iFpi)
+GO(insch, iFL)
+GO(insdelln, iFi)
+GO(insertln, iFv)
+GO(insnstr, iFpi)
+GO(insstr, iFp)
+GO(instr, iFp)
+GO(isendwin, iFv)
+GO(is_linetouched, iFpi)
+GO(is_wintouched, iFp)
+GO(leaveok, iFpi)
+GO(move, iFii)
+GO(mvaddch, iFiiL)
+GO(mvaddchnstr, iFiipi)
+GO(mvaddchstr, iFiip)
+GO(mvaddnstr, iFiipi)
+GO(mvaddstr, iFiip)
+GO(mvchgat, iFiiiLwp)
+GO(mvcur, iFiiii)
+GO(mvdelch, iFii)
+GO(mvderwin, iFpii)
+GO(mvgetch, iFii)
+GO(mvgetnstr, iFiipi)
+GO(mvgetstr, iFiip)
+GO(mvhline, iFiiLi)
+GO(mvinch, LFii)
+GO(mvinchnstr, iFiipi)
+GO(mvinchstr, iFiip)
+GO(mvinnstr, iFiipi)
+GO(mvinsch, iFiiL)
+GO(mvinsnstr, iFiipi)
+GO(mvinsstr, iFiip)
+GO(mvinstr, iFiip)
+//GO(mvprintw, i(i,i,p,...)
+//GO(mvscanw, i(i,i,p,...)
+GO(mvvline, iFiiLi)
+GO(mvwaddch, iFpiiL)
+GO(mvwaddchnstr, iFpiipi)
+GO(mvwaddchstr, iFpiip)
+GO(mvwaddnstr, iFpiipi)
+GO(mvwaddstr, iFpiip)
+GO(mvwchgat, iFpiiiLwp)
+GO(mvwdelch, iFpii)
+GO(mvwgetch, iFpii)
+GO(mvwgetnstr, iFpiipi)
+GO(mvwgetstr, iFpiip)
+GO(mvwhline, iFpiiLi)
+GO(mvwin, iFpii)
+GO(mvwinch, LFpii)
+GO(mvwinchnstr, iFpiipi)
+GO(mvwinchstr, iFpiip)
+GO(mvwinnstr, iFpiipi)
+GO(mvwinsch, iFpiiL)
+GO(mvwinsnstr, iFpiipi)
+GO(mvwinsstr, iFpiip)
+GO(mvwinstr, iFpiip)
+GOM(mvwprintw, iFEpiipV)
+//GO(mvwscanw, i(p,i,i,p,...)
+GO(mvwvline, iFpiiLi)
+GO(newpad, pFii)
+GO(newterm, pFppp)
+GO(newwin, pFiiii)
+GO(nl, iFv)
+GO(noecho, iFv)
+GO(nonl, iFv)
+GO(overlay, iFpp)
+GO(overwrite, iFpp)
+GO(pair_content, iFwpp)
+GO(PAIR_NUMBER, iFi)
+GO(pechochar, iFpL)
+GO(pnoutrefresh, iFpiiiiii)
+GO(prefresh, iFpiiiiii)
+GOM(printw, iFEpV)
+GO(putwin, iFpp)
+GO(redrawwin, iFp)
+GO(refresh, iFv)
+//GOM(ripoffline, int(int,int (*)(WINDOW*,int)))
+//GO(scanw, i(p,...)
+GO(scr_dump, iFp)
+GO(scr_init, iFp)
+GO(scrl, iFi)
+GO(scroll, iFp)
+GO(scrollok, iFpi)
+GO(scr_restore, iFp)
+GO(scr_set, iFp)
+GO(setscrreg, iFii)
+GO(set_term, pFp)
+GO(slk_attroff, iFL)
+GO(slk_attr_off, iFLp)
+GO(slk_attron, iFL)
+GO(slk_attr_on, iFLp)
+GO(slk_attrset, iFL)
+GO(slk_attr, LFv)
+GO(slk_attr_set, iFLwp)
+GO(slk_clear, iFv)
+GO(slk_color, iFw)
+GO(slk_init, iFi)
+GO(slk_label, pFi)
+GO(slk_noutrefresh, iFv)
+GO(slk_refresh, iFv)
+GO(slk_restore, iFv)
+GO(slk_set, iFipi)
+GO(slk_touch, iFv)
+GO(standout, iFv)
+GO(standend, iFv)
+GO(start_color, iFv)
+GO(subpad, pFpiiii)
+GO(subwin, pFpiiii)
+GO(syncok, iFpi)
+GO(termattrs, LFv)
+GO(timeout, vFi)
+GO(touchline, iFpii)
+GO(touchwin, iFp)
+GO(ungetch, iFi)
+GO(untouchwin, iFp)
+GO(use_tioctl, vFi)
+GO(vidattr, iFL)
+//GOM(vidputs, iFLP)
+GO(vline, iFLi)
+GOM(vwprintw, iFEppp)
+GO(vw_printw, iFppp)
+GO(vwscanw, iFppp)
+GO(vw_scanw, iFppp)
+GO(waddch, iFpL)
+GO(waddchnstr, iFppi)
+GO(waddchstr, iFpp)
+GO(waddnstr, iFppi)
+GO(waddstr, iFpp)
+GO(wattron, iFpi)
+GO(wattroff, iFpi)
+GO(wattrset, iFpi)
+GO(wattr_get, iFpppp)
+GO(wattr_on, iFpLp)
+GO(wattr_off, iFpLp)
+GO(wattr_set, iFpLwp)
+GO(wbkgd, iFpL)
+GO(wbkgdset, vFpL)
+GO(wborder, iFpLLLLLLLL)
+GO(wchgat, iFpiLwp)
+GO(wclear, iFp)
+GO(wclrtobot, iFp)
+GO(wclrtoeol, iFp)
+GO(wcolor_set, iFpwp)
+GO(wcursyncup, vFp)
+GO(wdelch, iFp)
+GO(wdeleteln, iFp)
+GO(wechochar, iFpL)
+GO(werase, iFp)
+GO(wgetch, iFp)
+GO(wgetnstr, iFppi)
+GO(wgetstr, iFpp)
+GO(whline, iFpLi)
+GO(winch, LFp)
+GO(winchnstr, iFppi)
+GO(winchstr, iFpp)
+GO(winnstr, iFppi)
+GO(winsch, iFpL)
+GO(winsdelln, iFpi)
+GO(winsertln, iFp)
+GO(winsnstr, iFppi)
+GO(winsstr, iFpp)
+GO(winstr, iFpp)
+GO(wmove, iFpii)
+GO(wnoutrefresh, iFp)
+//GO(wprintw, i(p,p,...)
+GO(wredrawln, iFpii)
+GO(wrefresh, iFp)
+//GO(wscanw, i(p,p,...)
+GO(wscrl, iFpi)
+GO(wsetscrreg, iFpii)
+GO(wstandout, iFp)
+GO(wstandend, iFp)
+GO(wsyncdown, vFp)
+GO(wsyncup, vFp)
+GO(wtouchln, iFpiii)
+GO(wvline, iFpLi)
+GO(getattrs, iFp)
+GO(getcurx, iFp)
+GO(getcury, iFp)
+GO(getbegx, iFp)
+GO(getbegy, iFp)
+GO(getmaxx, iFp)
+GO(getmaxy, iFp)
+GO(getparx, iFp)
+GO(getpary, iFp)
+GO(is_term_resized, iFii)
+GO(alloc_pair, iFii)
+GO(assume_default_colors, iFii)
+GO(extended_color_content, iFippp)
+GO(extended_pair_content, iFipp)
+GO(extended_slk_color, iFi)
+GO(find_pair, iFii)
+GO(free_pair, iFi)
+GO(get_escdelay, iFv)
+GO(init_extended_color, iFiiii)
+GO(init_extended_pair, iFiii)
+GO(reset_color_pairs, vFv)
+GO(resize_term, iFii)
+GO(resizeterm, iFii)
+GO(set_escdelay, iFi)
+GO(use_default_colors, iFv)
+GO(use_legacy_coding, iFi)
+//GOM(use_screen, iFpPp)
+//GOM(use_window, iFpPp)
+GO(wresize, iFpii)
+GO(nofilter, vFv)
+GO(wgetparent, pFp)
+GO(is_cleared, iFp)
+GO(is_idcok, iFp)
+GO(is_idlok, iFp)
+GO(is_immedok, iFp)
+GO(is_keypad, iFp)
+GO(is_leaveok, iFp)
+GO(is_nodelay, iFp)
+GO(is_notimeout, iFp)
+GO(is_pad, iFp)
+GO(is_scrollok, iFp)
+GO(is_subwin, iFp)
+GO(is_syncok, iFp)
+GO(wgetdelay, iFp)
+GO(wgetscrreg, iFppp)
+GO(add_wch, iFp)
+GO(add_wchnstr, iFpi)
+GO(add_wchstr, iFp)
+GO(addnwstr, iFpi)
+GO(addwstr, iFp)
+GO(bkgrnd, iFp)
+GO(bkgrndset, vFp)
+GO(border_set, iFpppppppp)
+GO(box_set, iFppp)
+GO(echo_wchar, iFp)
+GO(erasewchar, iFp)
+GO(get_wch, iFp)
+GO(get_wstr, iFp)
+GO(getbkgrnd, iFp)
+GO(getcchar, iFppppp)
+GO(getn_wstr, iFpi)
+GO(hline_set, iFpi)
+GO(in_wch, iFp)
+GO(in_wchnstr, iFpi)
+GO(in_wchstr, iFp)
+GO(innwstr, iFpi)
+GO(ins_nwstr, iFpi)
+GO(ins_wch, iFp)
+GO(ins_wstr, iFp)
+GO(inwstr, iFp)
+GO(key_name, pFu)
+GO(killwchar, iFp)
+GO(mvadd_wch, iFiip)
+GO(mvadd_wchnstr, iFiipi)
+GO(mvadd_wchstr, iFiip)
+GO(mvaddnwstr, iFiipi)
+GO(mvaddwstr, iFiip)
+GO(mvget_wch, iFiip)
+GO(mvget_wstr, iFiip)
+GO(mvgetn_wstr, iFiipi)
+GO(mvhline_set, iFiipi)
+GO(mvin_wch, iFiip)
+GO(mvin_wchnstr, iFiipi)
+GO(mvin_wchstr, iFiip)
+GO(mvinnwstr, iFiipi)
+GO(mvins_nwstr, iFiipi)
+GO(mvins_wch, iFiip)
+GO(mvins_wstr, iFiip)
+GO(mvinwstr, iFiip)
+GO(mvvline_set, iFiipi)
+GO(mvwadd_wch, iFpiip)
+GO(mvwadd_wchnstr, iFpiipi)
+GO(mvwadd_wchstr, iFpiip)
+GO(mvwaddnwstr, iFpiipi)
+GO(mvwaddwstr, iFpiip)
+GO(mvwget_wch, iFpiip)
+GO(mvwget_wstr, iFpiip)
+GO(mvwgetn_wstr, iFpiipi)
+GO(mvwhline_set, iFpiipi)
+GO(mvwin_wch, iFpiip)
+GO(mvwin_wchnstr, iFpiipi)
+GO(mvwin_wchstr, iFpiip)
+GO(mvwinnwstr, iFpiipi)
+GO(mvwins_nwstr, iFpiipi)
+GO(mvwins_wch, iFpiip)
+GO(mvwins_wstr, iFpiip)
+GO(mvwinwstr, iFpiip)
+GO(mvwvline_set, iFpiipi)
+GO(pecho_wchar, iFpp)
+GO(setcchar, iFppLwp)
+GO(slk_wset, iFipi)
+GO(term_attrs, LFv)
+GO(unget_wch, iFu)
+GO(vid_attr, iFLwp)
+//GOM(vid_puts, iFLwpP)
+GO(vline_set, iFpi)
+GO(wadd_wch, iFpp)
+GO(wadd_wchnstr, iFppi)
+GO(wadd_wchstr, iFpp)
+GO(waddnwstr, iFppi)
+GO(waddwstr, iFpp)
+GO(wbkgrnd, iFpp)
+GO(wbkgrndset, vFpp)
+GO(wborder_set, iFppppppppp)
+GO(wecho_wchar, iFpp)
+GO(wget_wch, iFpp)
+GO(wget_wstr, iFpp)
+GO(wgetbkgrnd, iFpp)
+GO(wgetn_wstr, iFppi)
+GO(whline_set, iFppi)
+GO(win_wch, iFpp)
+GO(win_wchnstr, iFppi)
+GO(win_wchstr, iFpp)
+GO(winnwstr, iFppi)
+GO(wins_nwstr, iFppi)
+GO(wins_wch, iFpp)
+GO(wins_wstr, iFpp)
+GO(winwstr, iFpp)
+GO(wunctrl, pFp)
+GO(wvline_set, iFppi)
+GO(term_attrs, LFp)
+GO(unget_wch, iFpu)
+GO(vid_attr, iFpLwp)
+//GOM(vid_puts, iFpLwpP)
+GO(_nc_viswbuf, pFp)
+GO(_nc_viswibuf, pFp)
+GO(has_mouse, iFv)
+GO(getmouse, iFp)
+GO(ungetmouse, iFp)
+GO(mousemask, LFLp)
+GO(wenclose, iFpii)
+GO(mouseinterval, iFi)
+GO(wmouse_trafo, iFpppi)
+GO(mouse_trafo, iFppi)
+GO(has_mouse, iFp)
+GO(getmouse, iFpp)
+GO(ungetmouse, iFpp)
+GO(mousemask, LFpLp)
+GO(mouseinterval, iFpi)
+GO(mcprint, iFpi)
+GO(mcprint, iFppi)
+//GO(_tracef, v(p,...) GCC_PRINTFLIKE(1,2)
+GO(_traceattr, pFL)
+GO(_traceattr2, pFiL)
+GO(_tracechar, pFi)
+GO(_tracechtype, pFL)
+GO(_tracechtype2, pFiL)
+GO(_tracecchar_t, pFp)
+GO(_tracecchar_t2, pFip)
+GO(trace, vFu)
+GO(_nc_visbuf, pFp)
+
+DATA(COLOR_PAIRS, sizeof(void*))
+DATA(COLS, sizeof(void*))
+DATA(COLORS, sizeof(void*))
+DATA(ESCDELAY, sizeof(void*))
+DATA(LINES, sizeof(void*))
+DATA(TABSIZE, sizeof(void*))
+DATA(curscr, sizeof(void*))
+DATA(newscr, sizeof(void*))
+DATA(stdscr, sizeof(void*))
+DATA(ttytype, sizeof(void*))
+DATA(_nc_wacs, sizeof(void*))
diff --git a/src/wrapped/wrappedlibtinfo.c b/src/wrapped/wrappedlibtinfo.c
new file mode 100755
index 00000000..06393291
--- /dev/null
+++ b/src/wrapped/wrappedlibtinfo.c
@@ -0,0 +1,103 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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"
+#include "myalign.h"
+
+const char* libtinfoName = "libtinfo.so.5";
+#define LIBNAME libtinfo
+
+static library_t* my_lib = NULL;
+
+typedef int    (*iFpip_t)       (void*, int, void*);
+
+#define SUPER() \
+    GO(tputs, iFpip_t)       \
+
+typedef struct libtinfo_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} libtinfo_my_t;
+
+void* getTinfoMy(library_t* lib)
+{
+    libtinfo_my_t* my = (libtinfo_my_t*)calloc(1, sizeof(libtinfo_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeTinfoMy(void* lib)
+{
+    //libtinfo_my_t *my = (libtinfo_my_t *)lib;
+}
+
+// utility functions
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)
+
+// putc
+#define GO(A)   \
+static uintptr_t my_putc_fct_##A = 0;                           \
+static int my_putc_##A(char c)                                  \
+{                                                               \
+    return (int)RunFunction(my_context, my_putc_fct_##A, 1, c); \
+}
+SUPER()
+#undef GO
+static void* find_putc_Fct(void* fct)
+{
+    if(!fct) return NULL;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_putc_fct_##A == (uintptr_t)fct) return my_putc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_putc_fct_##A == 0) {my_putc_fct_##A = (uintptr_t)fct; return my_putc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libSSL putc callback\n");
+    return NULL;
+}
+
+#undef SUPER
+
+EXPORT int my_tputs(x64emu_t* emu, void* str, int affcnt, void* f)
+{
+    libtinfo_my_t* my = (libtinfo_my_t*)my_lib->priv.w.p2;
+
+    return my->tputs(str, affcnt, find_putc_Fct(f));
+}
+
+#define CUSTOM_INIT \
+    my_lib = lib;   \
+    lib->priv.w.p2 = getTinfoMy(lib);
+
+#define CUSTOM_FINI \
+    my_lib = NULL;              \
+    freeTinfoMy(lib->priv.w.p2);  \
+    free(lib->priv.w.p2);
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibtinfo6.c b/src/wrapped/wrappedlibtinfo6.c
new file mode 100755
index 00000000..2b4bd8c0
--- /dev/null
+++ b/src/wrapped/wrappedlibtinfo6.c
@@ -0,0 +1,104 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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"
+#include "myalign.h"
+
+const char* libtinfo6Name = "libtinfo.so.6";
+#define LIBNAME libtinfo6
+
+static library_t* my_lib = NULL;
+
+typedef int    (*iFpip_t)       (void*, int, void*);
+
+#define SUPER() \
+    GO(tputs, iFpip_t)       \
+
+typedef struct libtinfo6_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} libtinfo6_my_t;
+
+void* getTinfo6My(library_t* lib)
+{
+    libtinfo6_my_t* my = (libtinfo6_my_t*)calloc(1, sizeof(libtinfo6_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeTinfo6My(void* lib)
+{
+    //libtinfo6_my_t *my = (libtinfo6_my_t *)lib;
+}
+
+// utility functions
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)
+
+// putc
+#define GO(A)   \
+static uintptr_t my_putc_fct_##A = 0;                           \
+static int my_putc_##A(char c)                                  \
+{                                                               \
+    return (int)RunFunction(my_context, my_putc_fct_##A, 1, c); \
+}
+SUPER()
+#undef GO
+static void* find_putc_Fct(void* fct)
+{
+    if(!fct) return NULL;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_putc_fct_##A == (uintptr_t)fct) return my_putc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_putc_fct_##A == 0) {my_putc_fct_##A = (uintptr_t)fct; return my_putc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libSSL putc callback\n");
+    return NULL;
+}
+
+#undef SUPER
+
+EXPORT int my6_tputs(x64emu_t* emu, void* str, int affcnt, void* f)
+{
+    libtinfo6_my_t* my = (libtinfo6_my_t*)my_lib->priv.w.p2;
+
+    return my->tputs(str, affcnt, find_putc_Fct(f));
+}
+
+#define CUSTOM_INIT \
+    my_lib = lib;   \
+    lib->altmy = strdup("my6_"); \
+    lib->priv.w.p2 = getTinfo6My(lib);
+
+#define CUSTOM_FINI \
+    my_lib = NULL;              \
+    freeTinfo6My(lib->priv.w.p2);  \
+    free(lib->priv.w.p2);
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibtinfo6_private.h b/src/wrapped/wrappedlibtinfo6_private.h
new file mode 100755
index 00000000..b530dcff
--- /dev/null
+++ b/src/wrapped/wrappedlibtinfo6_private.h
@@ -0,0 +1,153 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(baudrate, iFv)
+GO(cbreak, iFv)
+GO(curses_version, pFv)
+GO(curs_set, iFi)
+GO(define_key, iFpi)
+GO(def_prog_mode, iFv)
+GO(def_shell_mode, iFv)
+GO(delay_output, iFi)
+GO(del_curterm, iFp)
+GO(erasechar, cFv)
+GO(flushinp, iFv)
+GO(halfdelay, iFi)
+GO(has_ic, iFv)
+GO(has_il, iFv)
+GO(has_key, iFi)
+GO(idcok, vFpi)
+GO(idlok, iFpi)
+GO(intrflush, iFpi)
+GO(keybound, pFii)
+GO(key_defined, iFp)
+GO(keyname, pFi)
+GO(keyok, iFii)
+GO(keypad, iFpi)
+GO(killchar, cFv)
+GO(longname, pFv)
+GO(meta, iFpi)
+GO(napms, iFi)
+//GO(_nc_access, 
+//GO(_nc_add_to_try, 
+//GO(_nc_align_termtype, 
+//GO(_nc_basename, 
+//GO(_nc_baudrate, 
+//GO(_nc_copy_termtype, 
+//GO(_nc_delink_entry, 
+//GO(_nc_doalloc, 
+//GO(_nc_err_abort, 
+//GO(_nc_expand_try, 
+//GO(_nc_fallback, 
+//GO(_nc_find_entry, 
+//GO(_nc_find_type_entry, 
+//GO(_nc_first_db, 
+//GO(_nc_first_name, 
+//GO(_nc_flush, 
+//GO(_nc_free_entries, 
+//GO(_nc_free_entry, 
+//GO(_nc_free_termtype, 
+//GO(_nc_get_alias_table, 
+//GO(_nc_getenv_num, 
+//GO(_nc_get_hash_info, 
+//GO(_nc_get_hash_table, 
+//GO(_nc_get_locale, 
+//GO(_nc_get_screensize, 
+//GO(_nc_get_source, 
+//GO(_nc_get_table, 
+//GO(_nc_get_tty_mode, 
+//GO(_nc_get_type, 
+//GO(_nc_handle_sigwinch, 
+//GO(_nc_hashed_db, 
+//GO(_nc_home_terminfo, 
+//GO(_nc_init_acs, 
+//GO(_nc_init_keytry, 
+//GO(_nc_is_abs_path, 
+//GO(_nc_is_dir_path, 
+//GO(_nc_is_file_path, 
+//GO(_nc_keep_tic_dir, 
+//GO(_nc_keyname, 
+//GO(_nc_keypad, 
+//GO(_nc_last_db, 
+//GO(_nc_leaks_tinfo, 
+//GO(_nc_locale_breaks_acs, 
+//GO(_nc_name_match, 
+//GO(_nc_next_db, 
+//GO(_nc_ospeed, 
+//GO(_nc_outch, 
+//GO(_nc_pathlast, 
+//GO(_nc_putp, 
+//GO(_nc_putp_flush, 
+//GO(_nc_read_entry, 
+//GO(_nc_read_file_entry, 
+//GO(_nc_read_termcap, 
+//GO(_nc_read_termtype, 
+//GO(_nc_remove_key, 
+//GO(_nc_remove_string, 
+//GO(_nc_rootname, 
+//GO(_nc_safe_strcat, 
+//GO(_nc_safe_strcpy, 
+//GO(_nc_screen_of, 
+//GO(_nc_set_buffer, 
+//GO(_nc_set_no_padding, 
+//GO(_nc_set_source, 
+//GO(_nc_set_tty_mode, 
+//GO(_nc_set_type, 
+//GO(_nc_setupterm, 
+//GO(_nc_setup_tinfo, 
+//GO(_nc_str_copy, 
+//GO(_nc_str_init, 
+//GO(_nc_str_null, 
+//GO(_nc_syserr_abort, 
+//GO(_nc_tic_dir, 
+//GO(_nc_timed_wait, 
+//GO(_nc_tinfo_cmdch, 
+//GO(_nc_tparm_analyze, 
+//GO(_nc_trim_sgr0, 
+//GO(_nc_unctrl, 
+//GO(_nc_unicode_locale, 
+//GO(_nc_update_screensize, 
+//GO(_nc_visbuf, 
+//GO(_nc_visbuf2, 
+//GO(_nc_visbufn, 
+//GO(_nc_warning, 
+GO(nocbreak, iFv)
+GO(nodelay, iFpi)
+GO(noqiflush, vFv)
+GO(noraw, iFv)
+GO(notimeout, iFpi)
+GO(putp, iFp)
+GO(qiflush, vFv)
+GO(raw, iFv)
+GO(reset_prog_mode, iFv)
+GO(reset_shell_mode, iFv)
+GO(resetty, iFv)
+GO(savetty, iFv)
+GO(set_curterm, pFp)
+GO(set_tabsize, iFi)
+GO(setupterm, iFpip)
+GO(termname, pFv)
+GO(tgetent, iFpp)
+GO(tgetflag, iFp)
+GO(tgetnum, iFp)
+GO(tgetstr, pFpp)
+GO(tgoto, pFpii)
+GO(tigetflag, iFp)
+GO(tigetnum, iFp)
+GO(tigetstr, pFp)
+//GO(tiparm, p(p,...)
+GO(tparm, pFplllllllll) // va_arg or 9 long, depending on how old the .h is
+GOM(tputs, iFEpip)
+GO(typeahead, iFi)
+GO(unctrl, pFL)
+GO(use_env, vFi)
+GO(use_extended_names, iFi)
+GO(wtimeout, vFpi)
+
+DATA(stdscr, sizeof(void*))
+DATA(acs_map, sizeof(void*))
+DATA(UP, sizeof(void*))
+DATA(BC, sizeof(void*))
+DATA(PC, 1)
+DATA(ospeed, 2)
diff --git a/src/wrapped/wrappedlibtinfo_private.h b/src/wrapped/wrappedlibtinfo_private.h
new file mode 100755
index 00000000..b530dcff
--- /dev/null
+++ b/src/wrapped/wrappedlibtinfo_private.h
@@ -0,0 +1,153 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(baudrate, iFv)
+GO(cbreak, iFv)
+GO(curses_version, pFv)
+GO(curs_set, iFi)
+GO(define_key, iFpi)
+GO(def_prog_mode, iFv)
+GO(def_shell_mode, iFv)
+GO(delay_output, iFi)
+GO(del_curterm, iFp)
+GO(erasechar, cFv)
+GO(flushinp, iFv)
+GO(halfdelay, iFi)
+GO(has_ic, iFv)
+GO(has_il, iFv)
+GO(has_key, iFi)
+GO(idcok, vFpi)
+GO(idlok, iFpi)
+GO(intrflush, iFpi)
+GO(keybound, pFii)
+GO(key_defined, iFp)
+GO(keyname, pFi)
+GO(keyok, iFii)
+GO(keypad, iFpi)
+GO(killchar, cFv)
+GO(longname, pFv)
+GO(meta, iFpi)
+GO(napms, iFi)
+//GO(_nc_access, 
+//GO(_nc_add_to_try, 
+//GO(_nc_align_termtype, 
+//GO(_nc_basename, 
+//GO(_nc_baudrate, 
+//GO(_nc_copy_termtype, 
+//GO(_nc_delink_entry, 
+//GO(_nc_doalloc, 
+//GO(_nc_err_abort, 
+//GO(_nc_expand_try, 
+//GO(_nc_fallback, 
+//GO(_nc_find_entry, 
+//GO(_nc_find_type_entry, 
+//GO(_nc_first_db, 
+//GO(_nc_first_name, 
+//GO(_nc_flush, 
+//GO(_nc_free_entries, 
+//GO(_nc_free_entry, 
+//GO(_nc_free_termtype, 
+//GO(_nc_get_alias_table, 
+//GO(_nc_getenv_num, 
+//GO(_nc_get_hash_info, 
+//GO(_nc_get_hash_table, 
+//GO(_nc_get_locale, 
+//GO(_nc_get_screensize, 
+//GO(_nc_get_source, 
+//GO(_nc_get_table, 
+//GO(_nc_get_tty_mode, 
+//GO(_nc_get_type, 
+//GO(_nc_handle_sigwinch, 
+//GO(_nc_hashed_db, 
+//GO(_nc_home_terminfo, 
+//GO(_nc_init_acs, 
+//GO(_nc_init_keytry, 
+//GO(_nc_is_abs_path, 
+//GO(_nc_is_dir_path, 
+//GO(_nc_is_file_path, 
+//GO(_nc_keep_tic_dir, 
+//GO(_nc_keyname, 
+//GO(_nc_keypad, 
+//GO(_nc_last_db, 
+//GO(_nc_leaks_tinfo, 
+//GO(_nc_locale_breaks_acs, 
+//GO(_nc_name_match, 
+//GO(_nc_next_db, 
+//GO(_nc_ospeed, 
+//GO(_nc_outch, 
+//GO(_nc_pathlast, 
+//GO(_nc_putp, 
+//GO(_nc_putp_flush, 
+//GO(_nc_read_entry, 
+//GO(_nc_read_file_entry, 
+//GO(_nc_read_termcap, 
+//GO(_nc_read_termtype, 
+//GO(_nc_remove_key, 
+//GO(_nc_remove_string, 
+//GO(_nc_rootname, 
+//GO(_nc_safe_strcat, 
+//GO(_nc_safe_strcpy, 
+//GO(_nc_screen_of, 
+//GO(_nc_set_buffer, 
+//GO(_nc_set_no_padding, 
+//GO(_nc_set_source, 
+//GO(_nc_set_tty_mode, 
+//GO(_nc_set_type, 
+//GO(_nc_setupterm, 
+//GO(_nc_setup_tinfo, 
+//GO(_nc_str_copy, 
+//GO(_nc_str_init, 
+//GO(_nc_str_null, 
+//GO(_nc_syserr_abort, 
+//GO(_nc_tic_dir, 
+//GO(_nc_timed_wait, 
+//GO(_nc_tinfo_cmdch, 
+//GO(_nc_tparm_analyze, 
+//GO(_nc_trim_sgr0, 
+//GO(_nc_unctrl, 
+//GO(_nc_unicode_locale, 
+//GO(_nc_update_screensize, 
+//GO(_nc_visbuf, 
+//GO(_nc_visbuf2, 
+//GO(_nc_visbufn, 
+//GO(_nc_warning, 
+GO(nocbreak, iFv)
+GO(nodelay, iFpi)
+GO(noqiflush, vFv)
+GO(noraw, iFv)
+GO(notimeout, iFpi)
+GO(putp, iFp)
+GO(qiflush, vFv)
+GO(raw, iFv)
+GO(reset_prog_mode, iFv)
+GO(reset_shell_mode, iFv)
+GO(resetty, iFv)
+GO(savetty, iFv)
+GO(set_curterm, pFp)
+GO(set_tabsize, iFi)
+GO(setupterm, iFpip)
+GO(termname, pFv)
+GO(tgetent, iFpp)
+GO(tgetflag, iFp)
+GO(tgetnum, iFp)
+GO(tgetstr, pFpp)
+GO(tgoto, pFpii)
+GO(tigetflag, iFp)
+GO(tigetnum, iFp)
+GO(tigetstr, pFp)
+//GO(tiparm, p(p,...)
+GO(tparm, pFplllllllll) // va_arg or 9 long, depending on how old the .h is
+GOM(tputs, iFEpip)
+GO(typeahead, iFi)
+GO(unctrl, pFL)
+GO(use_env, vFi)
+GO(use_extended_names, iFi)
+GO(wtimeout, vFpi)
+
+DATA(stdscr, sizeof(void*))
+DATA(acs_map, sizeof(void*))
+DATA(UP, sizeof(void*))
+DATA(BC, sizeof(void*))
+DATA(PC, 1)
+DATA(ospeed, 2)