about summary refs log tree commit diff stats
path: root/src/wrapped
diff options
context:
space:
mode:
authorptitSeb <seebastien.chev@gmail.com>2023-09-16 13:49:09 +0200
committerptitSeb <seebastien.chev@gmail.com>2023-09-16 13:49:39 +0200
commit5903f0208689b3996ff8c6439ed5b25fc2f8666e (patch)
tree7faecc56ffcf9fc38df9dd093d3502cd2a6139d5 /src/wrapped
parent28dcd34624afb9bd14d838d5c1ae6123c8dc49fd (diff)
downloadbox64-5903f0208689b3996ff8c6439ed5b25fc2f8666e.tar.gz
box64-5903f0208689b3996ff8c6439ed5b25fc2f8666e.zip
Improvd steam/proton handling, and gstreamer initialization and a large bunch of gtk improvments
Diffstat (limited to 'src/wrapped')
-rw-r--r--src/wrapped/generated/functions_list.txt125
-rw-r--r--src/wrapped/generated/wrappedgio2types.h2
-rw-r--r--src/wrapped/generated/wrappedglib2types.h3
-rw-r--r--src/wrapped/generated/wrappedgstallocatorsdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstallocatorstypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstallocatorsundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstbasetypes.h10
-rw-r--r--src/wrapped/generated/wrappedgstcheckdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstchecktypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstcheckundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstcontrollerdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstcontrollertypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstcontrollerundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstfftdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstffttypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstfftundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstgltypes.h19
-rw-r--r--src/wrapped/generated/wrappedgstnetdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstnettypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstnetundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstpbutilsdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstpbutilstypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstpbutilsundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstreamertypes.h53
-rw-r--r--src/wrapped/generated/wrappedgstriffdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstrifftypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstriffundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstrtpdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstrtptypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstrtpundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstrtspdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstrtsptypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstrtspundefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstsdpdefs.h8
-rw-r--r--src/wrapped/generated/wrappedgstsdptypes.h17
-rw-r--r--src/wrapped/generated/wrappedgstsdpundefs.h8
-rw-r--r--src/wrapped/generated/wrapper.c84
-rw-r--r--src/wrapped/generated/wrapper.h34
-rw-r--r--src/wrapped/wrappedgio2.c5
-rw-r--r--src/wrapped/wrappedgio2_private.h28
-rw-r--r--src/wrapped/wrappedglib2.c15
-rw-r--r--src/wrapped/wrappedglib2_private.h16
-rw-r--r--src/wrapped/wrappedgobject2.c20
-rw-r--r--src/wrapped/wrappedgobject2_private.h2
-rw-r--r--src/wrapped/wrappedgstallocators.c22
-rw-r--r--src/wrapped/wrappedgstallocators_private.h18
-rw-r--r--src/wrapped/wrappedgstaudio.c25
-rw-r--r--src/wrapped/wrappedgstaudio_private.h45
-rw-r--r--src/wrapped/wrappedgstbase.c218
-rw-r--r--src/wrapped/wrappedgstbase_private.h104
-rw-r--r--src/wrapped/wrappedgstcheck.c22
-rw-r--r--src/wrapped/wrappedgstcheck_private.h203
-rw-r--r--src/wrapped/wrappedgstcontroller.c22
-rw-r--r--src/wrapped/wrappedgstcontroller_private.h31
-rw-r--r--src/wrapped/wrappedgstfft.c22
-rw-r--r--src/wrapped/wrappedgstfft_private.h25
-rw-r--r--src/wrapped/wrappedgstgl.c259
-rw-r--r--src/wrapped/wrappedgstgl_private.h324
-rw-r--r--src/wrapped/wrappedgstnet.c22
-rw-r--r--src/wrapped/wrappedgstnet_private.h33
-rw-r--r--src/wrapped/wrappedgstpbutils.c22
-rw-r--r--src/wrapped/wrappedgstpbutils_private.h195
-rw-r--r--src/wrapped/wrappedgstreamer.c617
-rw-r--r--src/wrapped/wrappedgstreamer_private.h217
-rw-r--r--src/wrapped/wrappedgstriff.c22
-rw-r--r--src/wrapped/wrappedgstriff_private.h19
-rw-r--r--src/wrapped/wrappedgstrtp.c22
-rw-r--r--src/wrapped/wrappedgstrtp_private.h215
-rw-r--r--src/wrapped/wrappedgstrtsp.c22
-rw-r--r--src/wrapped/wrappedgstrtsp_private.h170
-rw-r--r--src/wrapped/wrappedgstsdp.c22
-rw-r--r--src/wrapped/wrappedgstsdp_private.h178
-rw-r--r--src/wrapped/wrappedgsttag_private.h8
-rw-r--r--src/wrapped/wrappedgstvideo.c35
-rw-r--r--src/wrapped/wrappedgstvideo_private.h279
-rw-r--r--src/wrapped/wrappedlibogg_private.h4
-rw-r--r--src/wrapped/wrappedlibva_private.h6
77 files changed, 3657 insertions, 537 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 034e575e..b3bd60c6 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -99,6 +99,7 @@
 #() pFL
 #() pFp
 #() pFV
+#() pFA
 #() HFi
 #() HFp
 #() xFx
@@ -204,6 +205,7 @@
 #() IFpi
 #() IFpu
 #() IFpd
+#() IFpp
 #() CFip
 #() CFCi
 #() CFui
@@ -423,6 +425,7 @@
 #() vFppl
 #() vFppL
 #() vFppp
+#() vFppV
 #() cFpdp
 #() wFppp
 #() iFEiw
@@ -566,6 +569,7 @@
 #() uFppi
 #() uFppu
 #() uFppp
+#() UFUii
 #() UFUUU
 #() UFpiU
 #() UFppi
@@ -641,7 +645,6 @@
 #() pFuip
 #() pFuui
 #() pFuuu
-#() pFuup
 #() pFulu
 #() pFulp
 #() pFupi
@@ -651,6 +654,7 @@
 #() pFupp
 #() pFdip
 #() pFdUU
+#() pFddi
 #() pFddd
 #() pFDip
 #() pFlpi
@@ -675,6 +679,7 @@
 #() pFpuL
 #() pFpup
 #() pFpUi
+#() pFpUu
 #() pFpUp
 #() pFpdu
 #() pFpdd
@@ -694,6 +699,7 @@
 #() pFppl
 #() pFppL
 #() pFppp
+#() pFppA
 #() pFpOM
 #() pFSpl
 #() vWpup
@@ -1113,6 +1119,7 @@
 #() LFpppL
 #() LFpppp
 #() pFEipp
+#() pFEuup
 #() pFEupp
 #() pFELpV
 #() pFELpA
@@ -1157,6 +1164,7 @@
 #() pFpiLL
 #() pFpipi
 #() pFpipd
+#() pFpipL
 #() pFpipp
 #() pFpCip
 #() pFpCWp
@@ -1175,6 +1183,7 @@
 #() pFpupu
 #() pFpupp
 #() pFpdIU
+#() pFpddi
 #() pFplil
 #() pFplip
 #() pFplpl
@@ -1615,6 +1624,8 @@
 #() pFEpppi
 #() pFEpppu
 #() pFEpppp
+#() pFEpppV
+#() pFEpppA
 #() pFiiiii
 #() pFiiipL
 #() pFipipL
@@ -1627,15 +1638,18 @@
 #() pFudddp
 #() pFupLpl
 #() pFupLpL
+#() pFddddi
 #() pFLuppp
 #() pFLpppi
 #() pFpiiii
 #() pFpiiip
 #() pFpiiuu
 #() pFpiipi
+#() pFpiipL
 #() pFpiipp
 #() pFpiCCC
 #() pFpiuuu
+#() pFpiuup
 #() pFpiupp
 #() pFpiLip
 #() pFpipip
@@ -1663,6 +1677,7 @@
 #() pFpLLLp
 #() pFpLpii
 #() pFpLpip
+#() pFpLpup
 #() pFppiii
 #() pFppiiu
 #() pFppiip
@@ -1896,6 +1911,7 @@
 #() iFpipipi
 #() iFpipipp
 #() iFpipupp
+#() iFpipLpp
 #() iFpippip
 #() iFpippup
 #() iFpipppL
@@ -2009,6 +2025,7 @@
 #() lFpppLpp
 #() LFEupppp
 #() LFELpppi
+#() LFEpippp
 #() LFEppppi
 #() LFpipipi
 #() LFpLippp
@@ -2021,6 +2038,7 @@
 #() pFEpuupp
 #() pFEpuppp
 #() pFEpLLiN
+#() pFEppupi
 #() pFEppLLp
 #() pFEpppLp
 #() pFEppppi
@@ -2031,16 +2049,19 @@
 #() pFiiiiid
 #() pFipippp
 #() pFWCiWCi
+#() pFuCCCCp
 #() pFuuipip
 #() pFuuuiip
 #() pFuuuuii
 #() pFuuuuuu
 #() pFuuuuup
 #() pFuuppuu
+#() pFuppppp
 #() pFdddddd
 #() pFpiiiiu
 #() pFpiiipp
 #() pFpiiCCC
+#() pFpiiuup
 #() pFpiUUUU
 #() pFpipipp
 #() pFpippip
@@ -2048,6 +2069,7 @@
 #() pFpCuuCC
 #() pFpCuuWW
 #() pFpCuuup
+#() pFpuiiip
 #() pFpuuwwu
 #() pFpuuuuu
 #() pFpuuupu
@@ -2304,6 +2326,7 @@
 #() pFEppppip
 #() pFEpppppi
 #() pFifffppp
+#() pFWpppppp
 #() pFuuuiiip
 #() pFuupupup
 #() pFfiiiiid
@@ -2319,6 +2342,7 @@
 #() pFpWppWpp
 #() pFpuuuwwu
 #() pFpuupwwC
+#() pFpuLpipp
 #() pFpupiipp
 #() pFpuppipp
 #() pFplppppp
@@ -2346,6 +2370,7 @@
 #() pFpppuipp
 #() pFpppuuui
 #() pFpppuupp
+#() pFpppupii
 #() pFpppupup
 #() pFpppuppp
 #() pFpppfffi
@@ -2368,6 +2393,7 @@
 #() vFEiupippp
 #() vFEipAippp
 #() vFEppipppp
+#() vFEppLippp
 #() vFEpppippp
 #() vFEpppuipV
 #() vFEpppppuu
@@ -2498,6 +2524,7 @@
 #() LFEpiupppp
 #() LFpLpuuLLu
 #() pFEiplllpp
+#() pFEipLLLpp
 #() pFEpiuCppp
 #() pFEppLiiip
 #() pFEpppuipV
@@ -2507,8 +2534,10 @@
 #() pFiippipip
 #() pFiupppppp
 #() pFuiiiuuuu
+#() pFuCCCCpWw
 #() pFuupupipp
 #() pFpiiiiiuu
+#() pFpiiuuupp
 #() pFpiUdiiUi
 #() pFpipiiiip
 #() pFpCCuuwwC
@@ -2594,6 +2623,7 @@
 #() vFppppipiip
 #() vFpppppippp
 #() iFEpiiiiipi
+#() iFEppuppppp
 #() iFEpppipppp
 #() iFEppplPPPP
 #() iFEpppppupp
@@ -2602,6 +2632,7 @@
 #() iFiiiipiiip
 #() iFipiipippi
 #() iFdddpppppp
+#() iFpipippppi
 #() iFpipLpiiip
 #() iFpuuuuuuuu
 #() iFpuuuuduup
@@ -2759,6 +2790,7 @@
 #() vFppupipiuuuu
 #() vFppupppuiiii
 #() vFppppppppppp
+#() iFEiipppppppp
 #() iFEpppipppppp
 #() iFEppppiiiiuu
 #() iFEpppppppppp
@@ -3222,6 +3254,8 @@ wrappedgio2:
   - g_async_initable_new_valist_async
 - vFppipppp:
   - g_dbus_connection_new
+- vFppLippp:
+  - g_input_stream_read_async
 - vFpppuipV:
   - g_simple_async_report_error_in_idle
 - uFipipppp:
@@ -3314,6 +3348,7 @@ wrappedglib2:
   - g_option_group_set_parse_hooks
   - g_ptr_array_foreach
   - g_ptr_array_sort_with_data
+  - g_queue_foreach
   - g_static_private_set
 - vFppV:
   - g_string_append_printf
@@ -3344,11 +3379,13 @@ wrappedglib2:
   - g_list_insert_sorted
   - g_list_sort_with_data
   - g_node_copy_deep
+  - g_once_impl
   - g_queue_find_custom
   - g_slist_find_custom
   - g_slist_foreach
   - g_slist_insert_sorted
   - g_slist_sort_with_data
+  - g_thread_new
   - g_variant_new_va
 - pFppV:
   - g_build_path
@@ -3496,48 +3533,134 @@ wrappedgobject2:
 wrappedgomp:
 wrappedgssapi:
 wrappedgssapikrb5:
+wrappedgstallocators:
 wrappedgstapp:
 wrappedgstaudio:
 wrappedgstbase:
+- vFppp:
+  - gst_collect_pads_set_buffer_function
+  - gst_collect_pads_set_clip_function
+  - gst_collect_pads_set_event_function
+  - gst_collect_pads_set_function
+  - gst_collect_pads_set_query_function
+- pFppupi:
+  - gst_collect_pads_add_pad
+wrappedgstcheck:
+wrappedgstcontroller:
+wrappedgstfft:
 wrappedgstgl:
+- pFup:
+  - gst_gl_context_default_get_proc_address
+- vFppp:
+  - gst_gl_context_thread_add
+  - gst_gl_window_send_message
+- vFppV:
+  - gst_gl_insert_debug_marker
+- pFuup:
+  - gst_gl_context_get_proc_address_with_platform
+- vFpppp:
+  - gst_gl_window_set_close_callback
+  - gst_gl_window_set_draw_callback
+  - gst_gl_window_set_resize_callback
+- iFpppp:
+  - gst_gl_framebuffer_draw_to_texture
+- iFppppp:
+  - gst_gl_filter_render_to_target
+wrappedgstnet:
+wrappedgstpbutils:
 wrappedgstreamer:
+- pFA:
+  - gst_tag_list_new_valist
+- vFpp:
+  - gst_init
+- pFpp:
+  - gst_plugin_load_file
+- pFpV:
+  - _gst_element_error_printf
+  - gst_caps_features_new
+  - gst_make_element_message_details
+  - gst_tag_list_new
+- pFpA:
+  - gst_caps_features_new_valist
+- vFppp:
+  - gst_structure_filter_and_map_in_place
+  - gst_tag_list_foreach
 - vFppV:
   - gst_bin_add_many
   - gst_caps_set_simple
   - gst_structure_remove_fields
+  - gst_structure_set
 - vFppA:
   - gst_caps_set_simple_valist
   - gst_structure_remove_fields_valist
+  - gst_structure_set_valist
 - iFppp:
   - gst_caps_foreach
+  - gst_element_foreach_sink_pad
+  - gst_init_check
+  - gst_structure_foreach
 - iFppV:
   - gst_element_link_many
   - gst_structure_get
 - iFppA:
+  - gst_info_vasprintf
   - gst_structure_get_valist
 - uFppp:
   - gst_bus_add_watch
+- pFppp:
+  - gst_task_new
 - pFppV:
   - gst_caps_new_simple
   - gst_structure_new
+- pFppA:
+  - gst_structure_new_valist
+- vFpipV:
+  - gst_tag_list_add
+  - gst_tag_list_add_values
+- vFpipA:
+  - gst_tag_list_add_valist
+  - gst_tag_list_add_valist_values
 - vFpppp:
   - gst_bus_set_sync_handler
   - gst_mini_object_set_qdata
+  - gst_pad_set_activate_function_full
   - gst_pad_set_activatemode_function_full
   - gst_pad_set_chain_function_full
   - gst_pad_set_event_function_full
   - gst_pad_set_getrange_function_full
+  - gst_pad_set_link_function_full
   - gst_pad_set_query_function_full
+- iFpppp:
+  - gst_iterator_fold
+  - gst_pad_start_task
 - pFppip:
   - gst_registry_feature_filter
+- pFpppV:
+  - gst_pad_create_stream_id_printf
+- pFpppA:
+  - gst_pad_create_stream_id_printf_valist
 - uFpippp:
   - gst_bus_add_watch_full
+- LFpippp:
+  - gst_pad_add_probe
 - pFiplllpp:
   - gst_buffer_new_wrapped_full
+- pFipLLLpp:
+  - gst_memory_new_wrapped
+- pFpuLpipp:
+  - gst_util_array_binary_search
 - vFpippippV:
   - gst_debug_log
 - vFpippippA:
   - gst_debug_log_valist
+- iFppuppppp:
+  - gst_type_find_register
+- iFiipppppppp:
+  - gst_plugin_register_static
+wrappedgstriff:
+wrappedgstrtp:
+wrappedgstrtsp:
+wrappedgstsdp:
 wrappedgsttag:
 wrappedgstvideo:
 wrappedgthread2:
diff --git a/src/wrapped/generated/wrappedgio2types.h b/src/wrapped/generated/wrappedgio2types.h
index f2c5fe11..a9d5a6a0 100644
--- a/src/wrapped/generated/wrappedgio2types.h
+++ b/src/wrapped/generated/wrappedgio2types.h
@@ -29,6 +29,7 @@ typedef void (*vFiippppV_t)(int32_t, int32_t, void*, void*, void*, void*, ...);
 typedef void (*vFiupippp_t)(int32_t, uint32_t, void*, int32_t, void*, void*, void*);
 typedef void (*vFipAippp_t)(int32_t, void*, va_list, int32_t, void*, void*, void*);
 typedef void (*vFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*);
+typedef void (*vFppLippp_t)(void*, void*, uintptr_t, int32_t, void*, void*, void*);
 typedef void (*vFpppuipV_t)(void*, void*, void*, uint32_t, int32_t, void*, ...);
 typedef uint32_t (*uFipipppp_t)(int32_t, void*, int32_t, void*, void*, void*, void*);
 typedef uint32_t (*uFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*);
@@ -70,6 +71,7 @@ typedef void (*vFpppppppiippp_t)(void*, void*, void*, void*, void*, void*, void*
 	GO(g_async_initable_newv_async, vFiupippp_t) \
 	GO(g_async_initable_new_valist_async, vFipAippp_t) \
 	GO(g_dbus_connection_new, vFppipppp_t) \
+	GO(g_input_stream_read_async, vFppLippp_t) \
 	GO(g_simple_async_report_error_in_idle, vFpppuipV_t) \
 	GO(g_bus_watch_name, uFipipppp_t) \
 	GO(g_bus_own_name_on_connection, uFppipppp_t) \
diff --git a/src/wrapped/generated/wrappedglib2types.h b/src/wrapped/generated/wrappedglib2types.h
index fe5a9006..e806b7ff 100644
--- a/src/wrapped/generated/wrappedglib2types.h
+++ b/src/wrapped/generated/wrappedglib2types.h
@@ -111,6 +111,7 @@ typedef int32_t (*iFpppippppppp_t)(void*, void*, void*, int32_t, void*, void*, v
 	GO(g_option_group_set_parse_hooks, vFppp_t) \
 	GO(g_ptr_array_foreach, vFppp_t) \
 	GO(g_ptr_array_sort_with_data, vFppp_t) \
+	GO(g_queue_foreach, vFppp_t) \
 	GO(g_static_private_set, vFppp_t) \
 	GO(g_string_append_printf, vFppV_t) \
 	GO(g_string_printf, vFppV_t) \
@@ -133,11 +134,13 @@ typedef int32_t (*iFpppippppppp_t)(void*, void*, void*, int32_t, void*, void*, v
 	GO(g_list_insert_sorted, pFppp_t) \
 	GO(g_list_sort_with_data, pFppp_t) \
 	GO(g_node_copy_deep, pFppp_t) \
+	GO(g_once_impl, pFppp_t) \
 	GO(g_queue_find_custom, pFppp_t) \
 	GO(g_slist_find_custom, pFppp_t) \
 	GO(g_slist_foreach, pFppp_t) \
 	GO(g_slist_insert_sorted, pFppp_t) \
 	GO(g_slist_sort_with_data, pFppp_t) \
+	GO(g_thread_new, pFppp_t) \
 	GO(g_variant_new_va, pFppp_t) \
 	GO(g_build_path, pFppV_t) \
 	GO(g_log, vFpipV_t) \
diff --git a/src/wrapped/generated/wrappedgstallocatorsdefs.h b/src/wrapped/generated/wrappedgstallocatorsdefs.h
new file mode 100644
index 00000000..3f0366b6
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstallocatorsdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstallocatorsDEFS_H_
+#define __wrappedgstallocatorsDEFS_H_
+
+
+#endif // __wrappedgstallocatorsDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstallocatorstypes.h b/src/wrapped/generated/wrappedgstallocatorstypes.h
new file mode 100644
index 00000000..64e19372
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstallocatorstypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstallocatorsTYPES_H_
+#define __wrappedgstallocatorsTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstallocatorsTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstallocatorsundefs.h b/src/wrapped/generated/wrappedgstallocatorsundefs.h
new file mode 100644
index 00000000..00a94fa0
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstallocatorsundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstallocatorsUNDEFS_H_
+#define __wrappedgstallocatorsUNDEFS_H_
+
+
+#endif // __wrappedgstallocatorsUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstbasetypes.h b/src/wrapped/generated/wrappedgstbasetypes.h
index 46ac9086..bf7099ba 100644
--- a/src/wrapped/generated/wrappedgstbasetypes.h
+++ b/src/wrapped/generated/wrappedgstbasetypes.h
@@ -11,7 +11,15 @@
 #define ADDED_FUNCTIONS() 
 #endif
 
+typedef void (*vFppp_t)(void*, void*, void*);
+typedef void* (*pFppupi_t)(void*, void*, uint32_t, void*, int32_t);
 
-#define SUPER() ADDED_FUNCTIONS()
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(gst_collect_pads_set_buffer_function, vFppp_t) \
+	GO(gst_collect_pads_set_clip_function, vFppp_t) \
+	GO(gst_collect_pads_set_event_function, vFppp_t) \
+	GO(gst_collect_pads_set_function, vFppp_t) \
+	GO(gst_collect_pads_set_query_function, vFppp_t) \
+	GO(gst_collect_pads_add_pad, pFppupi_t)
 
 #endif // __wrappedgstbaseTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstcheckdefs.h b/src/wrapped/generated/wrappedgstcheckdefs.h
new file mode 100644
index 00000000..ba619ba4
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstcheckdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstcheckDEFS_H_
+#define __wrappedgstcheckDEFS_H_
+
+
+#endif // __wrappedgstcheckDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstchecktypes.h b/src/wrapped/generated/wrappedgstchecktypes.h
new file mode 100644
index 00000000..681e13c4
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstchecktypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstcheckTYPES_H_
+#define __wrappedgstcheckTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstcheckTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstcheckundefs.h b/src/wrapped/generated/wrappedgstcheckundefs.h
new file mode 100644
index 00000000..9d11182a
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstcheckundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstcheckUNDEFS_H_
+#define __wrappedgstcheckUNDEFS_H_
+
+
+#endif // __wrappedgstcheckUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstcontrollerdefs.h b/src/wrapped/generated/wrappedgstcontrollerdefs.h
new file mode 100644
index 00000000..6d228266
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstcontrollerdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstcontrollerDEFS_H_
+#define __wrappedgstcontrollerDEFS_H_
+
+
+#endif // __wrappedgstcontrollerDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstcontrollertypes.h b/src/wrapped/generated/wrappedgstcontrollertypes.h
new file mode 100644
index 00000000..47bda0c0
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstcontrollertypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstcontrollerTYPES_H_
+#define __wrappedgstcontrollerTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstcontrollerTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstcontrollerundefs.h b/src/wrapped/generated/wrappedgstcontrollerundefs.h
new file mode 100644
index 00000000..ea3e45cb
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstcontrollerundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstcontrollerUNDEFS_H_
+#define __wrappedgstcontrollerUNDEFS_H_
+
+
+#endif // __wrappedgstcontrollerUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstfftdefs.h b/src/wrapped/generated/wrappedgstfftdefs.h
new file mode 100644
index 00000000..f0d88904
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstfftdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstfftDEFS_H_
+#define __wrappedgstfftDEFS_H_
+
+
+#endif // __wrappedgstfftDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstffttypes.h b/src/wrapped/generated/wrappedgstffttypes.h
new file mode 100644
index 00000000..45e2b887
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstffttypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstfftTYPES_H_
+#define __wrappedgstfftTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstfftTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstfftundefs.h b/src/wrapped/generated/wrappedgstfftundefs.h
new file mode 100644
index 00000000..ade928e7
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstfftundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstfftUNDEFS_H_
+#define __wrappedgstfftUNDEFS_H_
+
+
+#endif // __wrappedgstfftUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstgltypes.h b/src/wrapped/generated/wrappedgstgltypes.h
index e5f7daf4..400d2a1a 100644
--- a/src/wrapped/generated/wrappedgstgltypes.h
+++ b/src/wrapped/generated/wrappedgstgltypes.h
@@ -11,7 +11,24 @@
 #define ADDED_FUNCTIONS() 
 #endif
 
+typedef void* (*pFup_t)(uint32_t, void*);
+typedef void (*vFppp_t)(void*, void*, void*);
+typedef void (*vFppV_t)(void*, void*, ...);
+typedef void* (*pFuup_t)(uint32_t, uint32_t, void*);
+typedef void (*vFpppp_t)(void*, void*, void*, void*);
+typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
+typedef int32_t (*iFppppp_t)(void*, void*, void*, void*, void*);
 
-#define SUPER() ADDED_FUNCTIONS()
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(gst_gl_context_default_get_proc_address, pFup_t) \
+	GO(gst_gl_context_thread_add, vFppp_t) \
+	GO(gst_gl_window_send_message, vFppp_t) \
+	GO(gst_gl_insert_debug_marker, vFppV_t) \
+	GO(gst_gl_context_get_proc_address_with_platform, pFuup_t) \
+	GO(gst_gl_window_set_close_callback, vFpppp_t) \
+	GO(gst_gl_window_set_draw_callback, vFpppp_t) \
+	GO(gst_gl_window_set_resize_callback, vFpppp_t) \
+	GO(gst_gl_framebuffer_draw_to_texture, iFpppp_t) \
+	GO(gst_gl_filter_render_to_target, iFppppp_t)
 
 #endif // __wrappedgstglTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstnetdefs.h b/src/wrapped/generated/wrappedgstnetdefs.h
new file mode 100644
index 00000000..109e75a6
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstnetdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstnetDEFS_H_
+#define __wrappedgstnetDEFS_H_
+
+
+#endif // __wrappedgstnetDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstnettypes.h b/src/wrapped/generated/wrappedgstnettypes.h
new file mode 100644
index 00000000..8416dbb2
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstnettypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstnetTYPES_H_
+#define __wrappedgstnetTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstnetTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstnetundefs.h b/src/wrapped/generated/wrappedgstnetundefs.h
new file mode 100644
index 00000000..82e0773c
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstnetundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstnetUNDEFS_H_
+#define __wrappedgstnetUNDEFS_H_
+
+
+#endif // __wrappedgstnetUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstpbutilsdefs.h b/src/wrapped/generated/wrappedgstpbutilsdefs.h
new file mode 100644
index 00000000..44eaea60
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstpbutilsdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstpbutilsDEFS_H_
+#define __wrappedgstpbutilsDEFS_H_
+
+
+#endif // __wrappedgstpbutilsDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstpbutilstypes.h b/src/wrapped/generated/wrappedgstpbutilstypes.h
new file mode 100644
index 00000000..e217d550
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstpbutilstypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstpbutilsTYPES_H_
+#define __wrappedgstpbutilsTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstpbutilsTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstpbutilsundefs.h b/src/wrapped/generated/wrappedgstpbutilsundefs.h
new file mode 100644
index 00000000..03cff549
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstpbutilsundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstpbutilsUNDEFS_H_
+#define __wrappedgstpbutilsUNDEFS_H_
+
+
+#endif // __wrappedgstpbutilsUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstreamertypes.h b/src/wrapped/generated/wrappedgstreamertypes.h
index a5d43518..16936cf5 100644
--- a/src/wrapped/generated/wrappedgstreamertypes.h
+++ b/src/wrapped/generated/wrappedgstreamertypes.h
@@ -11,44 +11,95 @@
 #define ADDED_FUNCTIONS() 
 #endif
 
+typedef void* (*pFA_t)(va_list);
+typedef void (*vFpp_t)(void*, void*);
+typedef void* (*pFpp_t)(void*, void*);
+typedef void* (*pFpV_t)(void*, ...);
+typedef void* (*pFpA_t)(void*, va_list);
+typedef void (*vFppp_t)(void*, void*, void*);
 typedef void (*vFppV_t)(void*, void*, ...);
 typedef void (*vFppA_t)(void*, void*, va_list);
 typedef int32_t (*iFppp_t)(void*, void*, void*);
 typedef int32_t (*iFppV_t)(void*, void*, ...);
 typedef int32_t (*iFppA_t)(void*, void*, va_list);
 typedef uint32_t (*uFppp_t)(void*, void*, void*);
+typedef void* (*pFppp_t)(void*, void*, void*);
 typedef void* (*pFppV_t)(void*, void*, ...);
+typedef void* (*pFppA_t)(void*, void*, va_list);
+typedef void (*vFpipV_t)(void*, int32_t, void*, ...);
+typedef void (*vFpipA_t)(void*, int32_t, void*, va_list);
 typedef void (*vFpppp_t)(void*, void*, void*, void*);
+typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
 typedef void* (*pFppip_t)(void*, void*, int32_t, void*);
+typedef void* (*pFpppV_t)(void*, void*, void*, ...);
+typedef void* (*pFpppA_t)(void*, void*, void*, va_list);
 typedef uint32_t (*uFpippp_t)(void*, int32_t, void*, void*, void*);
+typedef uintptr_t (*LFpippp_t)(void*, int32_t, void*, void*, void*);
 typedef void* (*pFiplllpp_t)(int32_t, void*, intptr_t, intptr_t, intptr_t, void*, void*);
+typedef void* (*pFipLLLpp_t)(int32_t, void*, uintptr_t, uintptr_t, uintptr_t, void*, void*);
+typedef void* (*pFpuLpipp_t)(void*, uint32_t, uintptr_t, void*, int32_t, void*, void*);
 typedef void (*vFpippippV_t)(void*, int32_t, void*, void*, int32_t, void*, void*, ...);
 typedef void (*vFpippippA_t)(void*, int32_t, void*, void*, int32_t, void*, void*, va_list);
+typedef int32_t (*iFppuppppp_t)(void*, void*, uint32_t, void*, void*, void*, void*, void*);
+typedef int32_t (*iFiipppppppp_t)(int32_t, int32_t, void*, void*, void*, void*, void*, void*, void*, void*);
 
 #define SUPER() ADDED_FUNCTIONS() \
+	GO(gst_tag_list_new_valist, pFA_t) \
+	GO(gst_init, vFpp_t) \
+	GO(gst_plugin_load_file, pFpp_t) \
+	GO(_gst_element_error_printf, pFpV_t) \
+	GO(gst_caps_features_new, pFpV_t) \
+	GO(gst_make_element_message_details, pFpV_t) \
+	GO(gst_tag_list_new, pFpV_t) \
+	GO(gst_caps_features_new_valist, pFpA_t) \
+	GO(gst_structure_filter_and_map_in_place, vFppp_t) \
+	GO(gst_tag_list_foreach, vFppp_t) \
 	GO(gst_bin_add_many, vFppV_t) \
 	GO(gst_caps_set_simple, vFppV_t) \
 	GO(gst_structure_remove_fields, vFppV_t) \
+	GO(gst_structure_set, vFppV_t) \
 	GO(gst_caps_set_simple_valist, vFppA_t) \
 	GO(gst_structure_remove_fields_valist, vFppA_t) \
+	GO(gst_structure_set_valist, vFppA_t) \
 	GO(gst_caps_foreach, iFppp_t) \
+	GO(gst_element_foreach_sink_pad, iFppp_t) \
+	GO(gst_init_check, iFppp_t) \
+	GO(gst_structure_foreach, iFppp_t) \
 	GO(gst_element_link_many, iFppV_t) \
 	GO(gst_structure_get, iFppV_t) \
+	GO(gst_info_vasprintf, iFppA_t) \
 	GO(gst_structure_get_valist, iFppA_t) \
 	GO(gst_bus_add_watch, uFppp_t) \
+	GO(gst_task_new, pFppp_t) \
 	GO(gst_caps_new_simple, pFppV_t) \
 	GO(gst_structure_new, pFppV_t) \
+	GO(gst_structure_new_valist, pFppA_t) \
+	GO(gst_tag_list_add, vFpipV_t) \
+	GO(gst_tag_list_add_values, vFpipV_t) \
+	GO(gst_tag_list_add_valist, vFpipA_t) \
+	GO(gst_tag_list_add_valist_values, vFpipA_t) \
 	GO(gst_bus_set_sync_handler, vFpppp_t) \
 	GO(gst_mini_object_set_qdata, vFpppp_t) \
+	GO(gst_pad_set_activate_function_full, vFpppp_t) \
 	GO(gst_pad_set_activatemode_function_full, vFpppp_t) \
 	GO(gst_pad_set_chain_function_full, vFpppp_t) \
 	GO(gst_pad_set_event_function_full, vFpppp_t) \
 	GO(gst_pad_set_getrange_function_full, vFpppp_t) \
+	GO(gst_pad_set_link_function_full, vFpppp_t) \
 	GO(gst_pad_set_query_function_full, vFpppp_t) \
+	GO(gst_iterator_fold, iFpppp_t) \
+	GO(gst_pad_start_task, iFpppp_t) \
 	GO(gst_registry_feature_filter, pFppip_t) \
+	GO(gst_pad_create_stream_id_printf, pFpppV_t) \
+	GO(gst_pad_create_stream_id_printf_valist, pFpppA_t) \
 	GO(gst_bus_add_watch_full, uFpippp_t) \
+	GO(gst_pad_add_probe, LFpippp_t) \
 	GO(gst_buffer_new_wrapped_full, pFiplllpp_t) \
+	GO(gst_memory_new_wrapped, pFipLLLpp_t) \
+	GO(gst_util_array_binary_search, pFpuLpipp_t) \
 	GO(gst_debug_log, vFpippippV_t) \
-	GO(gst_debug_log_valist, vFpippippA_t)
+	GO(gst_debug_log_valist, vFpippippA_t) \
+	GO(gst_type_find_register, iFppuppppp_t) \
+	GO(gst_plugin_register_static, iFiipppppppp_t)
 
 #endif // __wrappedgstreamerTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstriffdefs.h b/src/wrapped/generated/wrappedgstriffdefs.h
new file mode 100644
index 00000000..1d7db024
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstriffdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstriffDEFS_H_
+#define __wrappedgstriffDEFS_H_
+
+
+#endif // __wrappedgstriffDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstrifftypes.h b/src/wrapped/generated/wrappedgstrifftypes.h
new file mode 100644
index 00000000..b65c2d98
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstrifftypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstriffTYPES_H_
+#define __wrappedgstriffTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstriffTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstriffundefs.h b/src/wrapped/generated/wrappedgstriffundefs.h
new file mode 100644
index 00000000..2b885ab3
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstriffundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstriffUNDEFS_H_
+#define __wrappedgstriffUNDEFS_H_
+
+
+#endif // __wrappedgstriffUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstrtpdefs.h b/src/wrapped/generated/wrappedgstrtpdefs.h
new file mode 100644
index 00000000..d294c561
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstrtpdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstrtpDEFS_H_
+#define __wrappedgstrtpDEFS_H_
+
+
+#endif // __wrappedgstrtpDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstrtptypes.h b/src/wrapped/generated/wrappedgstrtptypes.h
new file mode 100644
index 00000000..838ba801
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstrtptypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstrtpTYPES_H_
+#define __wrappedgstrtpTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstrtpTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstrtpundefs.h b/src/wrapped/generated/wrappedgstrtpundefs.h
new file mode 100644
index 00000000..fed1e6fa
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstrtpundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstrtpUNDEFS_H_
+#define __wrappedgstrtpUNDEFS_H_
+
+
+#endif // __wrappedgstrtpUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstrtspdefs.h b/src/wrapped/generated/wrappedgstrtspdefs.h
new file mode 100644
index 00000000..84fc53c9
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstrtspdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstrtspDEFS_H_
+#define __wrappedgstrtspDEFS_H_
+
+
+#endif // __wrappedgstrtspDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstrtsptypes.h b/src/wrapped/generated/wrappedgstrtsptypes.h
new file mode 100644
index 00000000..66cebe62
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstrtsptypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstrtspTYPES_H_
+#define __wrappedgstrtspTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstrtspTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstrtspundefs.h b/src/wrapped/generated/wrappedgstrtspundefs.h
new file mode 100644
index 00000000..fb4d87d9
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstrtspundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstrtspUNDEFS_H_
+#define __wrappedgstrtspUNDEFS_H_
+
+
+#endif // __wrappedgstrtspUNDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstsdpdefs.h b/src/wrapped/generated/wrappedgstsdpdefs.h
new file mode 100644
index 00000000..30a83cf0
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstsdpdefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstsdpDEFS_H_
+#define __wrappedgstsdpDEFS_H_
+
+
+#endif // __wrappedgstsdpDEFS_H_
diff --git a/src/wrapped/generated/wrappedgstsdptypes.h b/src/wrapped/generated/wrappedgstsdptypes.h
new file mode 100644
index 00000000..43e14ad5
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstsdptypes.h
@@ -0,0 +1,17 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstsdpTYPES_H_
+#define __wrappedgstsdpTYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+
+#define SUPER() ADDED_FUNCTIONS()
+
+#endif // __wrappedgstsdpTYPES_H_
diff --git a/src/wrapped/generated/wrappedgstsdpundefs.h b/src/wrapped/generated/wrappedgstsdpundefs.h
new file mode 100644
index 00000000..d418a803
--- /dev/null
+++ b/src/wrapped/generated/wrappedgstsdpundefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.2.0.18) *
+ *******************************************************************/
+#ifndef __wrappedgstsdpUNDEFS_H_
+#define __wrappedgstsdpUNDEFS_H_
+
+
+#endif // __wrappedgstsdpUNDEFS_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index bfb15101..b2dd5a19 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -135,6 +135,7 @@ typedef void* (*pFl_t)(intptr_t);
 typedef void* (*pFL_t)(uintptr_t);
 typedef void* (*pFp_t)(void*);
 typedef void* (*pFV_t)(void*);
+typedef void* (*pFA_t)(void*);
 typedef unsigned __int128 (*HFi_t)(int32_t);
 typedef unsigned __int128 (*HFp_t)(void*);
 typedef complexf_t (*xFx_t)(complexf_t);
@@ -240,6 +241,7 @@ typedef int64_t (*IFII_t)(int64_t, int64_t);
 typedef int64_t (*IFpi_t)(void*, int32_t);
 typedef int64_t (*IFpu_t)(void*, uint32_t);
 typedef int64_t (*IFpd_t)(void*, double);
+typedef int64_t (*IFpp_t)(void*, void*);
 typedef uint8_t (*CFip_t)(int32_t, void*);
 typedef uint8_t (*CFCi_t)(uint8_t, int32_t);
 typedef uint8_t (*CFui_t)(uint32_t, int32_t);
@@ -459,6 +461,7 @@ typedef void (*vFppd_t)(void*, void*, double);
 typedef void (*vFppl_t)(void*, void*, intptr_t);
 typedef void (*vFppL_t)(void*, void*, uintptr_t);
 typedef void (*vFppp_t)(void*, void*, void*);
+typedef void (*vFppV_t)(void*, void*, void*);
 typedef int8_t (*cFpdp_t)(void*, double, void*);
 typedef int16_t (*wFppp_t)(void*, void*, void*);
 typedef int32_t (*iFEiw_t)(x64emu_t*, int32_t, int16_t);
@@ -602,6 +605,7 @@ typedef uint32_t (*uFpLp_t)(void*, uintptr_t, void*);
 typedef uint32_t (*uFppi_t)(void*, void*, int32_t);
 typedef uint32_t (*uFppu_t)(void*, void*, uint32_t);
 typedef uint32_t (*uFppp_t)(void*, void*, void*);
+typedef uint64_t (*UFUii_t)(uint64_t, int32_t, int32_t);
 typedef uint64_t (*UFUUU_t)(uint64_t, uint64_t, uint64_t);
 typedef uint64_t (*UFpiU_t)(void*, int32_t, uint64_t);
 typedef uint64_t (*UFppi_t)(void*, void*, int32_t);
@@ -677,7 +681,6 @@ typedef void* (*pFWWW_t)(uint16_t, uint16_t, uint16_t);
 typedef void* (*pFuip_t)(uint32_t, int32_t, void*);
 typedef void* (*pFuui_t)(uint32_t, uint32_t, int32_t);
 typedef void* (*pFuuu_t)(uint32_t, uint32_t, uint32_t);
-typedef void* (*pFuup_t)(uint32_t, uint32_t, void*);
 typedef void* (*pFulu_t)(uint32_t, intptr_t, uint32_t);
 typedef void* (*pFulp_t)(uint32_t, intptr_t, void*);
 typedef void* (*pFupi_t)(uint32_t, void*, int32_t);
@@ -687,6 +690,7 @@ typedef void* (*pFupL_t)(uint32_t, void*, uintptr_t);
 typedef void* (*pFupp_t)(uint32_t, void*, void*);
 typedef void* (*pFdip_t)(double, int32_t, void*);
 typedef void* (*pFdUU_t)(double, uint64_t, uint64_t);
+typedef void* (*pFddi_t)(double, double, int32_t);
 typedef void* (*pFddd_t)(double, double, double);
 typedef void* (*pFDip_t)(long double, int32_t, void*);
 typedef void* (*pFlpi_t)(intptr_t, void*, int32_t);
@@ -711,6 +715,7 @@ typedef void* (*pFpuu_t)(void*, uint32_t, uint32_t);
 typedef void* (*pFpuL_t)(void*, uint32_t, uintptr_t);
 typedef void* (*pFpup_t)(void*, uint32_t, void*);
 typedef void* (*pFpUi_t)(void*, uint64_t, int32_t);
+typedef void* (*pFpUu_t)(void*, uint64_t, uint32_t);
 typedef void* (*pFpUp_t)(void*, uint64_t, void*);
 typedef void* (*pFpdu_t)(void*, double, uint32_t);
 typedef void* (*pFpdd_t)(void*, double, double);
@@ -730,6 +735,7 @@ typedef void* (*pFppf_t)(void*, void*, float);
 typedef void* (*pFppl_t)(void*, void*, intptr_t);
 typedef void* (*pFppL_t)(void*, void*, uintptr_t);
 typedef void* (*pFppp_t)(void*, void*, void*);
+typedef void* (*pFppA_t)(void*, void*, void*);
 typedef void* (*pFpOM_t)(void*, int32_t, ...);
 typedef void* (*pFSpl_t)(void*, void*, intptr_t);
 typedef void (*vWpup_t)(void*, uint32_t, void*);
@@ -1149,6 +1155,7 @@ typedef uintptr_t (*LFpppi_t)(void*, void*, void*, int32_t);
 typedef uintptr_t (*LFpppL_t)(void*, void*, void*, uintptr_t);
 typedef uintptr_t (*LFpppp_t)(void*, void*, void*, void*);
 typedef void* (*pFEipp_t)(x64emu_t*, int32_t, void*, void*);
+typedef void* (*pFEuup_t)(x64emu_t*, uint32_t, uint32_t, void*);
 typedef void* (*pFEupp_t)(x64emu_t*, uint32_t, void*, void*);
 typedef void* (*pFELpV_t)(x64emu_t*, uintptr_t, void*, void*);
 typedef void* (*pFELpA_t)(x64emu_t*, uintptr_t, void*, void*);
@@ -1193,6 +1200,7 @@ typedef void* (*pFpiLi_t)(void*, int32_t, uintptr_t, int32_t);
 typedef void* (*pFpiLL_t)(void*, int32_t, uintptr_t, uintptr_t);
 typedef void* (*pFpipi_t)(void*, int32_t, void*, int32_t);
 typedef void* (*pFpipd_t)(void*, int32_t, void*, double);
+typedef void* (*pFpipL_t)(void*, int32_t, void*, uintptr_t);
 typedef void* (*pFpipp_t)(void*, int32_t, void*, void*);
 typedef void* (*pFpCip_t)(void*, uint8_t, int32_t, void*);
 typedef void* (*pFpCWp_t)(void*, uint8_t, uint16_t, void*);
@@ -1211,6 +1219,7 @@ typedef void* (*pFpupi_t)(void*, uint32_t, void*, int32_t);
 typedef void* (*pFpupu_t)(void*, uint32_t, void*, uint32_t);
 typedef void* (*pFpupp_t)(void*, uint32_t, void*, void*);
 typedef void* (*pFpdIU_t)(void*, double, int64_t, uint64_t);
+typedef void* (*pFpddi_t)(void*, double, double, int32_t);
 typedef void* (*pFplil_t)(void*, intptr_t, int32_t, intptr_t);
 typedef void* (*pFplip_t)(void*, intptr_t, int32_t, void*);
 typedef void* (*pFplpl_t)(void*, intptr_t, void*, intptr_t);
@@ -1651,6 +1660,8 @@ typedef void* (*pFEppLp_t)(x64emu_t*, void*, void*, uintptr_t, void*);
 typedef void* (*pFEpppi_t)(x64emu_t*, void*, void*, void*, int32_t);
 typedef void* (*pFEpppu_t)(x64emu_t*, void*, void*, void*, uint32_t);
 typedef void* (*pFEpppp_t)(x64emu_t*, void*, void*, void*, void*);
+typedef void* (*pFEpppV_t)(x64emu_t*, void*, void*, void*, void*);
+typedef void* (*pFEpppA_t)(x64emu_t*, void*, void*, void*, void*);
 typedef void* (*pFiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void* (*pFiiipL_t)(int32_t, int32_t, int32_t, void*, uintptr_t);
 typedef void* (*pFipipL_t)(int32_t, void*, int32_t, void*, uintptr_t);
@@ -1663,15 +1674,18 @@ typedef void* (*pFuupuu_t)(uint32_t, uint32_t, void*, uint32_t, uint32_t);
 typedef void* (*pFudddp_t)(uint32_t, double, double, double, void*);
 typedef void* (*pFupLpl_t)(uint32_t, void*, uintptr_t, void*, intptr_t);
 typedef void* (*pFupLpL_t)(uint32_t, void*, uintptr_t, void*, uintptr_t);
+typedef void* (*pFddddi_t)(double, double, double, double, int32_t);
 typedef void* (*pFLuppp_t)(uintptr_t, uint32_t, void*, void*, void*);
 typedef void* (*pFLpppi_t)(uintptr_t, void*, void*, void*, int32_t);
 typedef void* (*pFpiiii_t)(void*, int32_t, int32_t, int32_t, int32_t);
 typedef void* (*pFpiiip_t)(void*, int32_t, int32_t, int32_t, void*);
 typedef void* (*pFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t);
 typedef void* (*pFpiipi_t)(void*, int32_t, int32_t, void*, int32_t);
+typedef void* (*pFpiipL_t)(void*, int32_t, int32_t, void*, uintptr_t);
 typedef void* (*pFpiipp_t)(void*, int32_t, int32_t, void*, void*);
 typedef void* (*pFpiCCC_t)(void*, int32_t, uint8_t, uint8_t, uint8_t);
 typedef void* (*pFpiuuu_t)(void*, int32_t, uint32_t, uint32_t, uint32_t);
+typedef void* (*pFpiuup_t)(void*, int32_t, uint32_t, uint32_t, void*);
 typedef void* (*pFpiupp_t)(void*, int32_t, uint32_t, void*, void*);
 typedef void* (*pFpiLip_t)(void*, int32_t, uintptr_t, int32_t, void*);
 typedef void* (*pFpipip_t)(void*, int32_t, void*, int32_t, void*);
@@ -1699,6 +1713,7 @@ typedef void* (*pFpLLip_t)(void*, uintptr_t, uintptr_t, int32_t, void*);
 typedef void* (*pFpLLLp_t)(void*, uintptr_t, uintptr_t, uintptr_t, void*);
 typedef void* (*pFpLpii_t)(void*, uintptr_t, void*, int32_t, int32_t);
 typedef void* (*pFpLpip_t)(void*, uintptr_t, void*, int32_t, void*);
+typedef void* (*pFpLpup_t)(void*, uintptr_t, void*, uint32_t, void*);
 typedef void* (*pFppiii_t)(void*, void*, int32_t, int32_t, int32_t);
 typedef void* (*pFppiiu_t)(void*, void*, int32_t, int32_t, uint32_t);
 typedef void* (*pFppiip_t)(void*, void*, int32_t, int32_t, void*);
@@ -1932,6 +1947,7 @@ typedef int32_t (*iFpiuupp_t)(void*, int32_t, uint32_t, uint32_t, void*, void*);
 typedef int32_t (*iFpipipi_t)(void*, int32_t, void*, int32_t, void*, int32_t);
 typedef int32_t (*iFpipipp_t)(void*, int32_t, void*, int32_t, void*, void*);
 typedef int32_t (*iFpipupp_t)(void*, int32_t, void*, uint32_t, void*, void*);
+typedef int32_t (*iFpipLpp_t)(void*, int32_t, void*, uintptr_t, void*, void*);
 typedef int32_t (*iFpippip_t)(void*, int32_t, void*, void*, int32_t, void*);
 typedef int32_t (*iFpippup_t)(void*, int32_t, void*, void*, uint32_t, void*);
 typedef int32_t (*iFpipppL_t)(void*, int32_t, void*, void*, void*, uintptr_t);
@@ -2045,6 +2061,7 @@ typedef intptr_t (*lFppLipp_t)(void*, void*, uintptr_t, int32_t, void*, void*);
 typedef intptr_t (*lFpppLpp_t)(void*, void*, void*, uintptr_t, void*, void*);
 typedef uintptr_t (*LFEupppp_t)(x64emu_t*, uint32_t, void*, void*, void*, void*);
 typedef uintptr_t (*LFELpppi_t)(x64emu_t*, uintptr_t, void*, void*, void*, int32_t);
+typedef uintptr_t (*LFEpippp_t)(x64emu_t*, void*, int32_t, void*, void*, void*);
 typedef uintptr_t (*LFEppppi_t)(x64emu_t*, void*, void*, void*, void*, int32_t);
 typedef uintptr_t (*LFpipipi_t)(void*, int32_t, void*, int32_t, void*, int32_t);
 typedef uintptr_t (*LFpLippp_t)(void*, uintptr_t, int32_t, void*, void*, void*);
@@ -2057,6 +2074,7 @@ typedef void* (*pFEpuipp_t)(x64emu_t*, void*, uint32_t, int32_t, void*, void*);
 typedef void* (*pFEpuupp_t)(x64emu_t*, void*, uint32_t, uint32_t, void*, void*);
 typedef void* (*pFEpuppp_t)(x64emu_t*, void*, uint32_t, void*, void*, void*);
 typedef void* (*pFEpLLiN_t)(x64emu_t*, void*, uintptr_t, uintptr_t, int32_t, ...);
+typedef void* (*pFEppupi_t)(x64emu_t*, void*, void*, uint32_t, void*, int32_t);
 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*, int32_t);
@@ -2067,16 +2085,19 @@ typedef void* (*pFiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t
 typedef void* (*pFiiiiid_t)(int32_t, int32_t, int32_t, int32_t, int32_t, double);
 typedef void* (*pFipippp_t)(int32_t, void*, int32_t, void*, void*, void*);
 typedef void* (*pFWCiWCi_t)(uint16_t, uint8_t, int32_t, uint16_t, uint8_t, int32_t);
+typedef void* (*pFuCCCCp_t)(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t, void*);
 typedef void* (*pFuuipip_t)(uint32_t, uint32_t, int32_t, void*, int32_t, void*);
 typedef void* (*pFuuuiip_t)(uint32_t, uint32_t, uint32_t, int32_t, int32_t, void*);
 typedef void* (*pFuuuuii_t)(uint32_t, uint32_t, uint32_t, uint32_t, int32_t, int32_t);
 typedef void* (*pFuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFuuuuup_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, void*);
 typedef void* (*pFuuppuu_t)(uint32_t, uint32_t, void*, void*, uint32_t, uint32_t);
+typedef void* (*pFuppppp_t)(uint32_t, void*, void*, void*, void*, void*);
 typedef void* (*pFdddddd_t)(double, double, double, double, double, double);
 typedef void* (*pFpiiiiu_t)(void*, int32_t, int32_t, int32_t, int32_t, uint32_t);
 typedef void* (*pFpiiipp_t)(void*, int32_t, int32_t, int32_t, void*, void*);
 typedef void* (*pFpiiCCC_t)(void*, int32_t, int32_t, uint8_t, uint8_t, uint8_t);
+typedef void* (*pFpiiuup_t)(void*, int32_t, int32_t, uint32_t, uint32_t, void*);
 typedef void* (*pFpiUUUU_t)(void*, int32_t, uint64_t, uint64_t, uint64_t, uint64_t);
 typedef void* (*pFpipipp_t)(void*, int32_t, void*, int32_t, void*, void*);
 typedef void* (*pFpippip_t)(void*, int32_t, void*, void*, int32_t, void*);
@@ -2084,6 +2105,7 @@ typedef void* (*pFpipppp_t)(void*, int32_t, void*, void*, void*, void*);
 typedef void* (*pFpCuuCC_t)(void*, uint8_t, uint32_t, uint32_t, uint8_t, uint8_t);
 typedef void* (*pFpCuuWW_t)(void*, uint8_t, uint32_t, uint32_t, uint16_t, uint16_t);
 typedef void* (*pFpCuuup_t)(void*, uint8_t, uint32_t, uint32_t, uint32_t, void*);
+typedef void* (*pFpuiiip_t)(void*, uint32_t, int32_t, int32_t, int32_t, void*);
 typedef void* (*pFpuuwwu_t)(void*, uint32_t, uint32_t, int16_t, int16_t, uint32_t);
 typedef void* (*pFpuuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void* (*pFpuuupu_t)(void*, uint32_t, uint32_t, uint32_t, void*, uint32_t);
@@ -2340,6 +2362,7 @@ typedef void* (*pFEppuipp_t)(x64emu_t*, void*, void*, uint32_t, int32_t, void*,
 typedef void* (*pFEppppip_t)(x64emu_t*, void*, void*, void*, void*, int32_t, void*);
 typedef void* (*pFEpppppi_t)(x64emu_t*, void*, void*, void*, void*, void*, int32_t);
 typedef void* (*pFifffppp_t)(int32_t, float, float, float, void*, void*, void*);
+typedef void* (*pFWpppppp_t)(uint16_t, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFuuuiiip_t)(uint32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, void*);
 typedef void* (*pFuupupup_t)(uint32_t, uint32_t, void*, uint32_t, void*, uint32_t, void*);
 typedef void* (*pFfiiiiid_t)(float, int32_t, int32_t, int32_t, int32_t, int32_t, double);
@@ -2355,6 +2378,7 @@ typedef void* (*pFpCpWWup_t)(void*, uint8_t, void*, uint16_t, uint16_t, uint32_t
 typedef void* (*pFpWppWpp_t)(void*, uint16_t, void*, void*, uint16_t, void*, void*);
 typedef void* (*pFpuuuwwu_t)(void*, uint32_t, uint32_t, uint32_t, int16_t, int16_t, uint32_t);
 typedef void* (*pFpuupwwC_t)(void*, uint32_t, uint32_t, void*, int16_t, int16_t, uint8_t);
+typedef void* (*pFpuLpipp_t)(void*, uint32_t, uintptr_t, void*, int32_t, void*, void*);
 typedef void* (*pFpupiipp_t)(void*, uint32_t, void*, int32_t, int32_t, void*, void*);
 typedef void* (*pFpuppipp_t)(void*, uint32_t, void*, void*, int32_t, void*, void*);
 typedef void* (*pFplppppp_t)(void*, intptr_t, void*, void*, void*, void*, void*);
@@ -2382,6 +2406,7 @@ typedef void* (*pFpppCCCi_t)(void*, void*, void*, uint8_t, uint8_t, uint8_t, int
 typedef void* (*pFpppuipp_t)(void*, void*, void*, uint32_t, int32_t, void*, void*);
 typedef void* (*pFpppuuui_t)(void*, void*, void*, uint32_t, uint32_t, uint32_t, int32_t);
 typedef void* (*pFpppuupp_t)(void*, void*, void*, uint32_t, uint32_t, void*, void*);
+typedef void* (*pFpppupii_t)(void*, void*, void*, uint32_t, void*, int32_t, int32_t);
 typedef void* (*pFpppupup_t)(void*, void*, void*, uint32_t, void*, uint32_t, void*);
 typedef void* (*pFpppuppp_t)(void*, void*, void*, uint32_t, void*, void*, void*);
 typedef void* (*pFpppfffi_t)(void*, void*, void*, float, float, float, int32_t);
@@ -2404,6 +2429,7 @@ typedef void (*vFEiippppV_t)(x64emu_t*, int32_t, int32_t, void*, void*, void*, v
 typedef void (*vFEiupippp_t)(x64emu_t*, int32_t, uint32_t, void*, int32_t, void*, void*, void*);
 typedef void (*vFEipAippp_t)(x64emu_t*, int32_t, void*, void*, int32_t, void*, void*, void*);
 typedef void (*vFEppipppp_t)(x64emu_t*, void*, void*, int32_t, void*, void*, void*, void*);
+typedef void (*vFEppLippp_t)(x64emu_t*, void*, void*, uintptr_t, int32_t, void*, void*, void*);
 typedef void (*vFEpppippp_t)(x64emu_t*, void*, void*, void*, int32_t, void*, void*, void*);
 typedef void (*vFEpppuipV_t)(x64emu_t*, void*, void*, void*, uint32_t, int32_t, void*, void*);
 typedef void (*vFEpppppuu_t)(x64emu_t*, void*, void*, void*, void*, void*, uint32_t, uint32_t);
@@ -2534,6 +2560,7 @@ typedef uintptr_t (*LFELpupupu_t)(x64emu_t*, uintptr_t, void*, uint32_t, void*,
 typedef uintptr_t (*LFEpiupppp_t)(x64emu_t*, void*, int32_t, uint32_t, void*, void*, void*, void*);
 typedef uintptr_t (*LFpLpuuLLu_t)(void*, uintptr_t, void*, uint32_t, uint32_t, uintptr_t, uintptr_t, uint32_t);
 typedef void* (*pFEiplllpp_t)(x64emu_t*, int32_t, void*, intptr_t, intptr_t, intptr_t, void*, void*);
+typedef void* (*pFEipLLLpp_t)(x64emu_t*, int32_t, void*, uintptr_t, uintptr_t, uintptr_t, void*, void*);
 typedef void* (*pFEpiuCppp_t)(x64emu_t*, void*, int32_t, uint32_t, uint8_t, void*, void*, void*);
 typedef void* (*pFEppLiiip_t)(x64emu_t*, void*, void*, uintptr_t, int32_t, int32_t, int32_t, void*);
 typedef void* (*pFEpppuipV_t)(x64emu_t*, void*, void*, void*, uint32_t, int32_t, void*, void*);
@@ -2543,8 +2570,10 @@ typedef void* (*pFEppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void
 typedef void* (*pFiippipip_t)(int32_t, int32_t, void*, void*, int32_t, void*, int32_t, void*);
 typedef void* (*pFiupppppp_t)(int32_t, uint32_t, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFuiiiuuuu_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
+typedef void* (*pFuCCCCpWw_t)(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t, void*, uint16_t, int16_t);
 typedef void* (*pFuupupipp_t)(uint32_t, uint32_t, void*, uint32_t, void*, int32_t, void*, void*);
 typedef void* (*pFpiiiiiuu_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
+typedef void* (*pFpiiuuupp_t)(void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, void*, void*);
 typedef void* (*pFpiUdiiUi_t)(void*, int32_t, uint64_t, double, int32_t, int32_t, uint64_t, int32_t);
 typedef void* (*pFpipiiiip_t)(void*, int32_t, void*, int32_t, int32_t, int32_t, int32_t, void*);
 typedef void* (*pFpCCuuwwC_t)(void*, uint8_t, uint8_t, uint32_t, uint32_t, int16_t, int16_t, uint8_t);
@@ -2630,6 +2659,7 @@ typedef void (*vFpppffffff_t)(void*, void*, void*, float, float, float, float, f
 typedef void (*vFppppipiip_t)(void*, void*, void*, void*, int32_t, void*, int32_t, int32_t, void*);
 typedef void (*vFpppppippp_t)(void*, void*, void*, void*, void*, int32_t, void*, void*, void*);
 typedef int32_t (*iFEpiiiiipi_t)(x64emu_t*, void*, int32_t, int32_t, int32_t, int32_t, int32_t, void*, int32_t);
+typedef int32_t (*iFEppuppppp_t)(x64emu_t*, void*, void*, uint32_t, void*, void*, void*, void*, void*);
 typedef int32_t (*iFEpppipppp_t)(x64emu_t*, void*, void*, void*, int32_t, void*, void*, void*, void*);
 typedef int32_t (*iFEppplPPPP_t)(x64emu_t*, void*, void*, void*, intptr_t, void*, void*, void*, void*);
 typedef int32_t (*iFEpppppupp_t)(x64emu_t*, void*, void*, void*, void*, void*, uint32_t, void*, void*);
@@ -2638,6 +2668,7 @@ typedef int32_t (*iFiiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, in
 typedef int32_t (*iFiiiipiiip_t)(int32_t, int32_t, int32_t, int32_t, void*, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFipiipippi_t)(int32_t, void*, int32_t, int32_t, void*, int32_t, void*, void*, int32_t);
 typedef int32_t (*iFdddpppppp_t)(double, double, double, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFpipippppi_t)(void*, int32_t, void*, int32_t, void*, void*, void*, void*, int32_t);
 typedef int32_t (*iFpipLpiiip_t)(void*, int32_t, void*, uintptr_t, void*, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFpuuuuuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef int32_t (*iFpuuuuduup_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, double, uint32_t, uint32_t, void*);
@@ -2795,6 +2826,7 @@ typedef void (*vFppuupppiiii_t)(void*, void*, uint32_t, uint32_t, void*, void*,
 typedef void (*vFppupipiuuuu_t)(void*, void*, uint32_t, void*, int32_t, void*, int32_t, uint32_t, uint32_t, uint32_t, uint32_t);
 typedef void (*vFppupppuiiii_t)(void*, void*, uint32_t, void*, void*, void*, uint32_t, int32_t, int32_t, int32_t, int32_t);
 typedef void (*vFppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFEiipppppppp_t)(x64emu_t*, int32_t, int32_t, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFEpppipppppp_t)(x64emu_t*, void*, void*, void*, int32_t, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFEppppiiiiuu_t)(x64emu_t*, void*, void*, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t);
 typedef int32_t (*iFEpppppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
@@ -3042,6 +3074,7 @@ void pFl(x64emu_t *emu, uintptr_t fcn) { pFl_t fn = (pFl_t)fcn; R_RAX=(uintptr_t
 void pFL(x64emu_t *emu, uintptr_t fcn) { pFL_t fn = (pFL_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI); }
 void pFp(x64emu_t *emu, uintptr_t fcn) { pFp_t fn = (pFp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI); }
 void pFV(x64emu_t *emu, uintptr_t fcn) { pFV_t fn = (pFV_t)fcn; R_RAX=(uintptr_t)fn((void*)(R_RSP + 8)); }
+void pFA(x64emu_t *emu, uintptr_t fcn) { pFA_t fn = (pFA_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI); }
 void HFi(x64emu_t *emu, uintptr_t fcn) { HFi_t fn = (HFi_t)fcn; unsigned __int128 u128 = fn((int32_t)R_RDI); R_RAX=(u128&0xFFFFFFFFFFFFFFFFL); R_RDX=(u128>>64)&0xFFFFFFFFFFFFFFFFL; }
 void HFp(x64emu_t *emu, uintptr_t fcn) { HFp_t fn = (HFp_t)fcn; unsigned __int128 u128 = fn((void*)R_RDI); R_RAX=(u128&0xFFFFFFFFFFFFFFFFL); R_RDX=(u128>>64)&0xFFFFFFFFFFFFFFFFL; }
 void xFx(x64emu_t *emu, uintptr_t fcn) { xFx_t fn = (xFx_t)fcn; from_complexf(emu, fn(to_complexf(emu, 0))); }
@@ -3147,6 +3180,7 @@ void IFII(x64emu_t *emu, uintptr_t fcn) { IFII_t fn = (IFII_t)fcn; R_RAX=(int64_
 void IFpi(x64emu_t *emu, uintptr_t fcn) { IFpi_t fn = (IFpi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int32_t)R_RSI); }
 void IFpu(x64emu_t *emu, uintptr_t fcn) { IFpu_t fn = (IFpu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint32_t)R_RSI); }
 void IFpd(x64emu_t *emu, uintptr_t fcn) { IFpd_t fn = (IFpd_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, emu->xmm[0].d[0]); }
+void IFpp(x64emu_t *emu, uintptr_t fcn) { IFpp_t fn = (IFpp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI); }
 void CFip(x64emu_t *emu, uintptr_t fcn) { CFip_t fn = (CFip_t)fcn; R_RAX=(unsigned char)fn((int32_t)R_RDI, (void*)R_RSI); }
 void CFCi(x64emu_t *emu, uintptr_t fcn) { CFCi_t fn = (CFCi_t)fcn; R_RAX=(unsigned char)fn((uint8_t)R_RDI, (int32_t)R_RSI); }
 void CFui(x64emu_t *emu, uintptr_t fcn) { CFui_t fn = (CFui_t)fcn; R_RAX=(unsigned char)fn((uint32_t)R_RDI, (int32_t)R_RSI); }
@@ -3366,6 +3400,7 @@ void vFppd(x64emu_t *emu, uintptr_t fcn) { vFppd_t fn = (vFppd_t)fcn; fn((void*)
 void vFppl(x64emu_t *emu, uintptr_t fcn) { vFppl_t fn = (vFppl_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX); }
 void vFppL(x64emu_t *emu, uintptr_t fcn) { vFppL_t fn = (vFppL_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
 void vFppp(x64emu_t *emu, uintptr_t fcn) { vFppp_t fn = (vFppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
+void vFppV(x64emu_t *emu, uintptr_t fcn) { vFppV_t fn = (vFppV_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8)); }
 void cFpdp(x64emu_t *emu, uintptr_t fcn) { cFpdp_t fn = (cFpdp_t)fcn; R_RAX=fn((void*)R_RDI, emu->xmm[0].d[0], (void*)R_RSI); }
 void wFppp(x64emu_t *emu, uintptr_t fcn) { wFppp_t fn = (wFppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void iFEiw(x64emu_t *emu, uintptr_t fcn) { iFEiw_t fn = (iFEiw_t)fcn; R_RAX=(int32_t)fn(emu, (int32_t)R_RDI, (int16_t)R_RSI); }
@@ -3509,6 +3544,7 @@ void uFpLp(x64emu_t *emu, uintptr_t fcn) { uFpLp_t fn = (uFpLp_t)fcn; R_RAX=(uin
 void uFppi(x64emu_t *emu, uintptr_t fcn) { uFppi_t fn = (uFppi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void uFppu(x64emu_t *emu, uintptr_t fcn) { uFppu_t fn = (uFppu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); }
 void uFppp(x64emu_t *emu, uintptr_t fcn) { uFppp_t fn = (uFppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
+void UFUii(x64emu_t *emu, uintptr_t fcn) { UFUii_t fn = (UFUii_t)fcn; R_RAX=fn((uint64_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); }
 void UFUUU(x64emu_t *emu, uintptr_t fcn) { UFUUU_t fn = (UFUUU_t)fcn; R_RAX=fn((uint64_t)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX); }
 void UFpiU(x64emu_t *emu, uintptr_t fcn) { UFpiU_t fn = (UFpiU_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (uint64_t)R_RDX); }
 void UFppi(x64emu_t *emu, uintptr_t fcn) { UFppi_t fn = (UFppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
@@ -3584,7 +3620,6 @@ void pFWWW(x64emu_t *emu, uintptr_t fcn) { pFWWW_t fn = (pFWWW_t)fcn; R_RAX=(uin
 void pFuip(x64emu_t *emu, uintptr_t fcn) { pFuip_t fn = (pFuip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX); }
 void pFuui(x64emu_t *emu, uintptr_t fcn) { pFuui_t fn = (pFuui_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX); }
 void pFuuu(x64emu_t *emu, uintptr_t fcn) { pFuuu_t fn = (pFuuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); }
-void pFuup(x64emu_t *emu, uintptr_t fcn) { pFuup_t fn = (pFuup_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
 void pFulu(x64emu_t *emu, uintptr_t fcn) { pFulu_t fn = (pFulu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (intptr_t)R_RSI, (uint32_t)R_RDX); }
 void pFulp(x64emu_t *emu, uintptr_t fcn) { pFulp_t fn = (pFulp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (intptr_t)R_RSI, (void*)R_RDX); }
 void pFupi(x64emu_t *emu, uintptr_t fcn) { pFupi_t fn = (pFupi_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
@@ -3594,6 +3629,7 @@ void pFupL(x64emu_t *emu, uintptr_t fcn) { pFupL_t fn = (pFupL_t)fcn; R_RAX=(uin
 void pFupp(x64emu_t *emu, uintptr_t fcn) { pFupp_t fn = (pFupp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void pFdip(x64emu_t *emu, uintptr_t fcn) { pFdip_t fn = (pFdip_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], (int32_t)R_RDI, (void*)R_RSI); }
 void pFdUU(x64emu_t *emu, uintptr_t fcn) { pFdUU_t fn = (pFdUU_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], (uint64_t)R_RDI, (uint64_t)R_RSI); }
+void pFddi(x64emu_t *emu, uintptr_t fcn) { pFddi_t fn = (pFddi_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RDI); }
 void pFddd(x64emu_t *emu, uintptr_t fcn) { pFddd_t fn = (pFddd_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0]); }
 void pFDip(x64emu_t *emu, uintptr_t fcn) { pFDip_t fn = (pFDip_t)fcn; R_RAX=(uintptr_t)fn(LD2localLD((void*)(R_RSP + 8)), (int32_t)R_RDI, (void*)R_RSI); }
 void pFlpi(x64emu_t *emu, uintptr_t fcn) { pFlpi_t fn = (pFlpi_t)fcn; R_RAX=(uintptr_t)fn((intptr_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
@@ -3618,6 +3654,7 @@ void pFpuu(x64emu_t *emu, uintptr_t fcn) { pFpuu_t fn = (pFpuu_t)fcn; R_RAX=(uin
 void pFpuL(x64emu_t *emu, uintptr_t fcn) { pFpuL_t fn = (pFpuL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX); }
 void pFpup(x64emu_t *emu, uintptr_t fcn) { pFpup_t fn = (pFpup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
 void pFpUi(x64emu_t *emu, uintptr_t fcn) { pFpUi_t fn = (pFpUi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (int32_t)R_RDX); }
+void pFpUu(x64emu_t *emu, uintptr_t fcn) { pFpUu_t fn = (pFpUu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint32_t)R_RDX); }
 void pFpUp(x64emu_t *emu, uintptr_t fcn) { pFpUp_t fn = (pFpUp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX); }
 void pFpdu(x64emu_t *emu, uintptr_t fcn) { pFpdu_t fn = (pFpdu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, emu->xmm[0].d[0], (uint32_t)R_RSI); }
 void pFpdd(x64emu_t *emu, uintptr_t fcn) { pFpdd_t fn = (pFpdd_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0]); }
@@ -3637,6 +3674,7 @@ void pFppf(x64emu_t *emu, uintptr_t fcn) { pFppf_t fn = (pFppf_t)fcn; R_RAX=(uin
 void pFppl(x64emu_t *emu, uintptr_t fcn) { pFppl_t fn = (pFppl_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX); }
 void pFppL(x64emu_t *emu, uintptr_t fcn) { pFppL_t fn = (pFppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
 void pFppp(x64emu_t *emu, uintptr_t fcn) { pFppp_t fn = (pFppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
+void pFppA(x64emu_t *emu, uintptr_t fcn) { pFppA_t fn = (pFppA_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void pFpOM(x64emu_t *emu, uintptr_t fcn) { pFpOM_t fn = (pFpOM_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, of_convert((int32_t)R_RSI), (void*)R_RDX, (void*)R_RCX); }
 void pFSpl(x64emu_t *emu, uintptr_t fcn) { pFSpl_t fn = (pFSpl_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (intptr_t)R_RDX); }
 void vWpup(x64emu_t *emu, uintptr_t fcn) { vWpup_t fn = (vWpup_t)fcn; fn((void*)R_RCX, (uint32_t)R_RDX, (void*)R_R8); }
@@ -4056,6 +4094,7 @@ void LFpppi(x64emu_t *emu, uintptr_t fcn) { LFpppi_t fn = (LFpppi_t)fcn; R_RAX=(
 void LFpppL(x64emu_t *emu, uintptr_t fcn) { LFpppL_t fn = (LFpppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void LFpppp(x64emu_t *emu, uintptr_t fcn) { LFpppp_t fn = (LFpppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void pFEipp(x64emu_t *emu, uintptr_t fcn) { pFEipp_t fn = (pFEipp_t)fcn; R_RAX=(uintptr_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
+void pFEuup(x64emu_t *emu, uintptr_t fcn) { pFEuup_t fn = (pFEuup_t)fcn; R_RAX=(uintptr_t)fn(emu, (uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); }
 void pFEupp(x64emu_t *emu, uintptr_t fcn) { pFEupp_t fn = (pFEupp_t)fcn; R_RAX=(uintptr_t)fn(emu, (uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
 void pFELpV(x64emu_t *emu, uintptr_t fcn) { pFELpV_t fn = (pFELpV_t)fcn; R_RAX=(uintptr_t)fn(emu, (uintptr_t)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8)); }
 void pFELpA(x64emu_t *emu, uintptr_t fcn) { pFELpA_t fn = (pFELpA_t)fcn; R_RAX=(uintptr_t)fn(emu, (uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX); }
@@ -4100,6 +4139,7 @@ void pFpiLi(x64emu_t *emu, uintptr_t fcn) { pFpiLi_t fn = (pFpiLi_t)fcn; R_RAX=(
 void pFpiLL(x64emu_t *emu, uintptr_t fcn) { pFpiLL_t fn = (pFpiLL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX); }
 void pFpipi(x64emu_t *emu, uintptr_t fcn) { pFpipi_t fn = (pFpipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
 void pFpipd(x64emu_t *emu, uintptr_t fcn) { pFpipd_t fn = (pFpipd_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, emu->xmm[0].d[0]); }
+void pFpipL(x64emu_t *emu, uintptr_t fcn) { pFpipL_t fn = (pFpipL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); }
 void pFpipp(x64emu_t *emu, uintptr_t fcn) { pFpipp_t fn = (pFpipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void pFpCip(x64emu_t *emu, uintptr_t fcn) { pFpCip_t fn = (pFpCip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void pFpCWp(x64emu_t *emu, uintptr_t fcn) { pFpCWp_t fn = (pFpCWp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint16_t)R_RDX, (void*)R_RCX); }
@@ -4118,6 +4158,7 @@ void pFpupi(x64emu_t *emu, uintptr_t fcn) { pFpupi_t fn = (pFpupi_t)fcn; R_RAX=(
 void pFpupu(x64emu_t *emu, uintptr_t fcn) { pFpupu_t fn = (pFpupu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); }
 void pFpupp(x64emu_t *emu, uintptr_t fcn) { pFpupp_t fn = (pFpupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void pFpdIU(x64emu_t *emu, uintptr_t fcn) { pFpdIU_t fn = (pFpdIU_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, emu->xmm[0].d[0], (int64_t)R_RSI, (uint64_t)R_RDX); }
+void pFpddi(x64emu_t *emu, uintptr_t fcn) { pFpddi_t fn = (pFpddi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI); }
 void pFplil(x64emu_t *emu, uintptr_t fcn) { pFplil_t fn = (pFplil_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (int32_t)R_RDX, (intptr_t)R_RCX); }
 void pFplip(x64emu_t *emu, uintptr_t fcn) { pFplip_t fn = (pFplip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); }
 void pFplpl(x64emu_t *emu, uintptr_t fcn) { pFplpl_t fn = (pFplpl_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (void*)R_RDX, (intptr_t)R_RCX); }
@@ -4558,6 +4599,8 @@ void pFEppLp(x64emu_t *emu, uintptr_t fcn) { pFEppLp_t fn = (pFEppLp_t)fcn; R_RA
 void pFEpppi(x64emu_t *emu, uintptr_t fcn) { pFEpppi_t fn = (pFEpppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); }
 void pFEpppu(x64emu_t *emu, uintptr_t fcn) { pFEpppu_t fn = (pFEpppu_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); }
 void pFEpppp(x64emu_t *emu, uintptr_t fcn) { pFEpppp_t fn = (pFEpppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
+void pFEpppV(x64emu_t *emu, uintptr_t fcn) { pFEpppV_t fn = (pFEpppV_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); }
+void pFEpppA(x64emu_t *emu, uintptr_t fcn) { pFEpppA_t fn = (pFEpppA_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
 void pFiiiii(x64emu_t *emu, uintptr_t fcn) { pFiiiii_t fn = (pFiiiii_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
 void pFiiipL(x64emu_t *emu, uintptr_t fcn) { pFiiipL_t fn = (pFiiipL_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); }
 void pFipipL(x64emu_t *emu, uintptr_t fcn) { pFipipL_t fn = (pFipipL_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); }
@@ -4570,15 +4613,18 @@ void pFuupuu(x64emu_t *emu, uintptr_t fcn) { pFuupuu_t fn = (pFuupuu_t)fcn; R_RA
 void pFudddp(x64emu_t *emu, uintptr_t fcn) { pFudddp_t fn = (pFudddp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], (void*)R_RSI); }
 void pFupLpl(x64emu_t *emu, uintptr_t fcn) { pFupLpl_t fn = (pFupLpl_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (intptr_t)R_R8); }
 void pFupLpL(x64emu_t *emu, uintptr_t fcn) { pFupLpL_t fn = (pFupLpL_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); }
+void pFddddi(x64emu_t *emu, uintptr_t fcn) { pFddddi_t fn = (pFddddi_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], (int32_t)R_RDI); }
 void pFLuppp(x64emu_t *emu, uintptr_t fcn) { pFLuppp_t fn = (pFLuppp_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFLpppi(x64emu_t *emu, uintptr_t fcn) { pFLpppi_t fn = (pFLpppi_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void pFpiiii(x64emu_t *emu, uintptr_t fcn) { pFpiiii_t fn = (pFpiiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
 void pFpiiip(x64emu_t *emu, uintptr_t fcn) { pFpiiip_t fn = (pFpiiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void pFpiiuu(x64emu_t *emu, uintptr_t fcn) { pFpiiuu_t fn = (pFpiiuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
 void pFpiipi(x64emu_t *emu, uintptr_t fcn) { pFpiipi_t fn = (pFpiipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
+void pFpiipL(x64emu_t *emu, uintptr_t fcn) { pFpiipL_t fn = (pFpiipL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); }
 void pFpiipp(x64emu_t *emu, uintptr_t fcn) { pFpiipp_t fn = (pFpiipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFpiCCC(x64emu_t *emu, uintptr_t fcn) { pFpiCCC_t fn = (pFpiCCC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8); }
 void pFpiuuu(x64emu_t *emu, uintptr_t fcn) { pFpiuuu_t fn = (pFpiuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); }
+void pFpiuup(x64emu_t *emu, uintptr_t fcn) { pFpiuup_t fn = (pFpiuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); }
 void pFpiupp(x64emu_t *emu, uintptr_t fcn) { pFpiupp_t fn = (pFpiupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFpiLip(x64emu_t *emu, uintptr_t fcn) { pFpiLip_t fn = (pFpiLip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
 void pFpipip(x64emu_t *emu, uintptr_t fcn) { pFpipip_t fn = (pFpipip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
@@ -4606,6 +4652,7 @@ void pFpLLip(x64emu_t *emu, uintptr_t fcn) { pFpLLip_t fn = (pFpLLip_t)fcn; R_RA
 void pFpLLLp(x64emu_t *emu, uintptr_t fcn) { pFpLLLp_t fn = (pFpLLLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); }
 void pFpLpii(x64emu_t *emu, uintptr_t fcn) { pFpLpii_t fn = (pFpLpii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
 void pFpLpip(x64emu_t *emu, uintptr_t fcn) { pFpLpip_t fn = (pFpLpip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
+void pFpLpup(x64emu_t *emu, uintptr_t fcn) { pFpLpup_t fn = (pFpLpup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8); }
 void pFppiii(x64emu_t *emu, uintptr_t fcn) { pFppiii_t fn = (pFppiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
 void pFppiiu(x64emu_t *emu, uintptr_t fcn) { pFppiiu_t fn = (pFppiiu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8); }
 void pFppiip(x64emu_t *emu, uintptr_t fcn) { pFppiip_t fn = (pFppiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
@@ -4839,6 +4886,7 @@ void iFpiuupp(x64emu_t *emu, uintptr_t fcn) { iFpiuupp_t fn = (iFpiuupp_t)fcn; R
 void iFpipipi(x64emu_t *emu, uintptr_t fcn) { iFpipipi_t fn = (iFpipipi_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void iFpipipp(x64emu_t *emu, uintptr_t fcn) { iFpipipp_t fn = (iFpipipp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFpipupp(x64emu_t *emu, uintptr_t fcn) { iFpipupp_t fn = (iFpipupp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
+void iFpipLpp(x64emu_t *emu, uintptr_t fcn) { iFpipLpp_t fn = (iFpipLpp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void iFpippip(x64emu_t *emu, uintptr_t fcn) { iFpippip_t fn = (iFpippip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void iFpippup(x64emu_t *emu, uintptr_t fcn) { iFpippup_t fn = (iFpippup_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9); }
 void iFpipppL(x64emu_t *emu, uintptr_t fcn) { iFpipppL_t fn = (iFpipppL_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9); }
@@ -4952,6 +5000,7 @@ void lFppLipp(x64emu_t *emu, uintptr_t fcn) { lFppLipp_t fn = (lFppLipp_t)fcn; R
 void lFpppLpp(x64emu_t *emu, uintptr_t fcn) { lFpppLpp_t fn = (lFpppLpp_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void LFEupppp(x64emu_t *emu, uintptr_t fcn) { LFEupppp_t fn = (LFEupppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void LFELpppi(x64emu_t *emu, uintptr_t fcn) { LFELpppi_t fn = (LFELpppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
+void LFEpippp(x64emu_t *emu, uintptr_t fcn) { LFEpippp_t fn = (LFEpippp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void LFEppppi(x64emu_t *emu, uintptr_t fcn) { LFEppppi_t fn = (LFEppppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void LFpipipi(x64emu_t *emu, uintptr_t fcn) { LFpipipi_t fn = (LFpipipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void LFpLippp(x64emu_t *emu, uintptr_t fcn) { LFpLippp_t fn = (LFpLippp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
@@ -4964,6 +5013,7 @@ void pFEpuipp(x64emu_t *emu, uintptr_t fcn) { pFEpuipp_t fn = (pFEpuipp_t)fcn; R
 void pFEpuupp(x64emu_t *emu, uintptr_t fcn) { pFEpuupp_t fn = (pFEpuupp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFEpuppp(x64emu_t *emu, uintptr_t fcn) { pFEpuppp_t fn = (pFEpuppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFEpLLiN(x64emu_t *emu, uintptr_t fcn) { pFEpLLiN_t fn = (pFEpLLiN_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); }
+void pFEppupi(x64emu_t *emu, uintptr_t fcn) { pFEppupi_t fn = (pFEppupi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
 void pFEppLLp(x64emu_t *emu, uintptr_t fcn) { pFEppLLp_t fn = (pFEppLLp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); }
 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, (int32_t)R_R8); }
@@ -4974,16 +5024,19 @@ void pFiiiiii(x64emu_t *emu, uintptr_t fcn) { pFiiiiii_t fn = (pFiiiiii_t)fcn; R
 void pFiiiiid(x64emu_t *emu, uintptr_t fcn) { pFiiiiid_t fn = (pFiiiiid_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[0].d[0]); }
 void pFipippp(x64emu_t *emu, uintptr_t fcn) { pFipippp_t fn = (pFipippp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void pFWCiWCi(x64emu_t *emu, uintptr_t fcn) { pFWCiWCi_t fn = (pFWCiWCi_t)fcn; R_RAX=(uintptr_t)fn((uint16_t)R_RDI, (uint8_t)R_RSI, (int32_t)R_RDX, (uint16_t)R_RCX, (uint8_t)R_R8, (int32_t)R_R9); }
+void pFuCCCCp(x64emu_t *emu, uintptr_t fcn) { pFuCCCCp_t fn = (pFuCCCCp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8, (void*)R_R9); }
 void pFuuipip(x64emu_t *emu, uintptr_t fcn) { pFuuipip_t fn = (pFuuipip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void pFuuuiip(x64emu_t *emu, uintptr_t fcn) { pFuuuiip_t fn = (pFuuuiip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void pFuuuuii(x64emu_t *emu, uintptr_t fcn) { pFuuuuii_t fn = (pFuuuuii_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); }
 void pFuuuuuu(x64emu_t *emu, uintptr_t fcn) { pFuuuuuu_t fn = (pFuuuuuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
 void pFuuuuup(x64emu_t *emu, uintptr_t fcn) { pFuuuuup_t fn = (pFuuuuup_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); }
 void pFuuppuu(x64emu_t *emu, uintptr_t fcn) { pFuuppuu_t fn = (pFuuppuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
+void pFuppppp(x64emu_t *emu, uintptr_t fcn) { pFuppppp_t fn = (pFuppppp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)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, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9); }
 void pFpiiipp(x64emu_t *emu, uintptr_t fcn) { pFpiiipp_t fn = (pFpiiipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void pFpiiCCC(x64emu_t *emu, uintptr_t fcn) { pFpiiCCC_t fn = (pFpiiCCC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9); }
+void pFpiiuup(x64emu_t *emu, uintptr_t fcn) { pFpiiuup_t fn = (pFpiiuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); }
 void pFpiUUUU(x64emu_t *emu, uintptr_t fcn) { pFpiUUUU_t fn = (pFpiUUUU_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9); }
 void pFpipipp(x64emu_t *emu, uintptr_t fcn) { pFpipipp_t fn = (pFpipipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); }
 void pFpippip(x64emu_t *emu, uintptr_t fcn) { pFpippip_t fn = (pFpippip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
@@ -4991,6 +5044,7 @@ void pFpipppp(x64emu_t *emu, uintptr_t fcn) { pFpipppp_t fn = (pFpipppp_t)fcn; R
 void pFpCuuCC(x64emu_t *emu, uintptr_t fcn) { pFpCuuCC_t fn = (pFpCuuCC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9); }
 void pFpCuuWW(x64emu_t *emu, uintptr_t fcn) { pFpCuuWW_t fn = (pFpCuuWW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint16_t)R_R8, (uint16_t)R_R9); }
 void pFpCuuup(x64emu_t *emu, uintptr_t fcn) { pFpCuuup_t fn = (pFpCuuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); }
+void pFpuiiip(x64emu_t *emu, uintptr_t fcn) { pFpuiiip_t fn = (pFpuiiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void pFpuuwwu(x64emu_t *emu, uintptr_t fcn) { pFpuuwwu_t fn = (pFpuuwwu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int16_t)R_RCX, (int16_t)R_R8, (uint32_t)R_R9); }
 void pFpuuuuu(x64emu_t *emu, uintptr_t fcn) { pFpuuuuu_t fn = (pFpuuuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); }
 void pFpuuupu(x64emu_t *emu, uintptr_t fcn) { pFpuuupu_t fn = (pFpuuupu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9); }
@@ -5247,6 +5301,7 @@ void pFEppuipp(x64emu_t *emu, uintptr_t fcn) { pFEppuipp_t fn = (pFEppuipp_t)fcn
 void pFEppppip(x64emu_t *emu, uintptr_t fcn) { pFEppppip_t fn = (pFEppppip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); }
 void pFEpppppi(x64emu_t *emu, uintptr_t fcn) { pFEpppppi_t fn = (pFEpppppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9); }
 void pFifffppp(x64emu_t *emu, uintptr_t fcn) { pFifffppp_t fn = (pFifffppp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); }
+void pFWpppppp(x64emu_t *emu, uintptr_t fcn) { pFWpppppp_t fn = (pFWpppppp_t)fcn; R_RAX=(uintptr_t)fn((uint16_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFuuuiiip(x64emu_t *emu, uintptr_t fcn) { pFuuuiiip_t fn = (pFuuuiiip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
 void pFuupupup(x64emu_t *emu, uintptr_t fcn) { pFuupupup_t fn = (pFuupupup_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8)); }
 void pFfiiiiid(x64emu_t *emu, uintptr_t fcn) { pFfiiiiid_t fn = (pFfiiiiid_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].f[0], (int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[1].d[0]); }
@@ -5262,6 +5317,7 @@ void pFpCpWWup(x64emu_t *emu, uintptr_t fcn) { pFpCpWWup_t fn = (pFpCpWWup_t)fcn
 void pFpWppWpp(x64emu_t *emu, uintptr_t fcn) { pFpWppWpp_t fn = (pFpWppWpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint16_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint16_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFpuuuwwu(x64emu_t *emu, uintptr_t fcn) { pFpuuuwwu_t fn = (pFpuuuwwu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
 void pFpuupwwC(x64emu_t *emu, uintptr_t fcn) { pFpuupwwC_t fn = (pFpuupwwC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(uint8_t*)(R_RSP + 8)); }
+void pFpuLpipp(x64emu_t *emu, uintptr_t fcn) { pFpuLpipp_t fn = (pFpuLpipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFpupiipp(x64emu_t *emu, uintptr_t fcn) { pFpupiipp_t fn = (pFpupiipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFpuppipp(x64emu_t *emu, uintptr_t fcn) { pFpuppipp_t fn = (pFpuppipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFplppppp(x64emu_t *emu, uintptr_t fcn) { pFplppppp_t fn = (pFplppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
@@ -5289,6 +5345,7 @@ void pFpppCCCi(x64emu_t *emu, uintptr_t fcn) { pFpppCCCi_t fn = (pFpppCCCi_t)fcn
 void pFpppuipp(x64emu_t *emu, uintptr_t fcn) { pFpppuipp_t fn = (pFpppuipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFpppuuui(x64emu_t *emu, uintptr_t fcn) { pFpppuuui_t fn = (pFpppuuui_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void pFpppuupp(x64emu_t *emu, uintptr_t fcn) { pFpppuupp_t fn = (pFpppuupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void pFpppupii(x64emu_t *emu, uintptr_t fcn) { pFpppupii_t fn = (pFpppupii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void pFpppupup(x64emu_t *emu, uintptr_t fcn) { pFpppupup_t fn = (pFpppupup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8)); }
 void pFpppuppp(x64emu_t *emu, uintptr_t fcn) { pFpppuppp_t fn = (pFpppuppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFpppfffi(x64emu_t *emu, uintptr_t fcn) { pFpppfffi_t fn = (pFpppfffi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], (int32_t)R_RCX); }
@@ -5311,6 +5368,7 @@ void vFEiippppV(x64emu_t *emu, uintptr_t fcn) { vFEiippppV_t fn = (vFEiippppV_t)
 void vFEiupippp(x64emu_t *emu, uintptr_t fcn) { vFEiupippp_t fn = (vFEiupippp_t)fcn; fn(emu, (int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void vFEipAippp(x64emu_t *emu, uintptr_t fcn) { vFEipAippp_t fn = (vFEipAippp_t)fcn; fn(emu, (int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void vFEppipppp(x64emu_t *emu, uintptr_t fcn) { vFEppipppp_t fn = (vFEppipppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void vFEppLippp(x64emu_t *emu, uintptr_t fcn) { vFEppLippp_t fn = (vFEppLippp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void vFEpppippp(x64emu_t *emu, uintptr_t fcn) { vFEpppippp_t fn = (vFEpppippp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void vFEpppuipV(x64emu_t *emu, uintptr_t fcn) { vFEpppuipV_t fn = (vFEpppuipV_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, (void*)(R_RSP + 8)); }
 void vFEpppppuu(x64emu_t *emu, uintptr_t fcn) { vFEpppppuu_t fn = (vFEpppppuu_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); }
@@ -5441,6 +5499,7 @@ void LFELpupupu(x64emu_t *emu, uintptr_t fcn) { LFELpupupu_t fn = (LFELpupupu_t)
 void LFEpiupppp(x64emu_t *emu, uintptr_t fcn) { LFEpiupppp_t fn = (LFEpiupppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void LFpLpuuLLu(x64emu_t *emu, uintptr_t fcn) { LFpLpuuLLu_t fn = (LFpLpuuLLu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uintptr_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
 void pFEiplllpp(x64emu_t *emu, uintptr_t fcn) { pFEiplllpp_t fn = (pFEiplllpp_t)fcn; R_RAX=(uintptr_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
+void pFEipLLLpp(x64emu_t *emu, uintptr_t fcn) { pFEipLLLpp_t fn = (pFEipLLLpp_t)fcn; R_RAX=(uintptr_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFEpiuCppp(x64emu_t *emu, uintptr_t fcn) { pFEpiuCppp_t fn = (pFEpiuCppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (uint8_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); }
 void pFEppLiiip(x64emu_t *emu, uintptr_t fcn) { pFEppLiiip_t fn = (pFEppLiiip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); }
 void pFEpppuipV(x64emu_t *emu, uintptr_t fcn) { pFEpppuipV_t fn = (pFEpppuipV_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, (void*)(R_RSP + 8)); }
@@ -5450,8 +5509,10 @@ void pFEppppppp(x64emu_t *emu, uintptr_t fcn) { pFEppppppp_t fn = (pFEppppppp_t)
 void pFiippipip(x64emu_t *emu, uintptr_t fcn) { pFiippipip_t fn = (pFiippipip_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void pFiupppppp(x64emu_t *emu, uintptr_t fcn) { pFiupppppp_t fn = (pFiupppppp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void pFuiiiuuuu(x64emu_t *emu, uintptr_t fcn) { pFuiiiuuuu_t fn = (pFuiiiuuuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
+void pFuCCCCpWw(x64emu_t *emu, uintptr_t fcn) { pFuCCCCpWw_t fn = (pFuCCCCpWw_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8, (void*)R_R9, *(uint16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16)); }
 void pFuupupipp(x64emu_t *emu, uintptr_t fcn) { pFuupupipp_t fn = (pFuupupipp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void pFpiiiiiuu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiiuu_t fn = (pFpiiiiiuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
+void pFpiiuuupp(x64emu_t *emu, uintptr_t fcn) { pFpiiuuupp_t fn = (pFpiiuuupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void pFpiUdiiUi(x64emu_t *emu, uintptr_t fcn) { pFpiUdiiUi_t fn = (pFpiUdiiUi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint64_t)R_RDX, emu->xmm[0].d[0], (int32_t)R_RCX, (int32_t)R_R8, (uint64_t)R_R9, *(int32_t*)(R_RSP + 8)); }
 void pFpipiiiip(x64emu_t *emu, uintptr_t fcn) { pFpipiiiip_t fn = (pFpipiiiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void pFpCCuuwwC(x64emu_t *emu, uintptr_t fcn) { pFpCCuuwwC_t fn = (pFpCCuuwwC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int16_t)R_R9, *(int16_t*)(R_RSP + 8), *(uint8_t*)(R_RSP + 16)); }
@@ -5537,6 +5598,7 @@ void vFpppffffff(x64emu_t *emu, uintptr_t fcn) { vFpppffffff_t fn = (vFpppffffff
 void vFppppipiip(x64emu_t *emu, uintptr_t fcn) { vFppppipiip_t fn = (vFppppipiip_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void vFpppppippp(x64emu_t *emu, uintptr_t fcn) { vFpppppippp_t fn = (vFpppppippp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFEpiiiiipi(x64emu_t *emu, uintptr_t fcn) { iFEpiiiiipi_t fn = (iFEpiiiiipi_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); }
+void iFEppuppppp(x64emu_t *emu, uintptr_t fcn) { iFEppuppppp_t fn = (iFEppuppppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFEpppipppp(x64emu_t *emu, uintptr_t fcn) { iFEpppipppp_t fn = (iFEpppipppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void iFEppplPPPP(x64emu_t *emu, uintptr_t fcn) { iFEppplPPPP_t fn = (iFEppplPPPP_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (intptr_t)R_RCX, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); }
 void iFEpppppupp(x64emu_t *emu, uintptr_t fcn) { iFEpppppupp_t fn = (iFEpppppupp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
@@ -5545,6 +5607,7 @@ void iFiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiip_t fn = (iFiiiiiiiip
 void iFiiiipiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiipiiip_t fn = (iFiiiipiiip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFipiipippi(x64emu_t *emu, uintptr_t fcn) { iFipiipippi_t fn = (iFipiipippi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
 void iFdddpppppp(x64emu_t *emu, uintptr_t fcn) { iFdddpppppp_t fn = (iFdddpppppp_t)fcn; R_RAX=(int32_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 iFpipippppi(x64emu_t *emu, uintptr_t fcn) { iFpipippppi_t fn = (iFpipippppi_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
 void iFpipLpiiip(x64emu_t *emu, uintptr_t fcn) { iFpipLpiiip_t fn = (iFpipLpiiip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); }
 void iFpuuuuuuuu(x64emu_t *emu, uintptr_t fcn) { iFpuuuuuuuu_t fn = (iFpuuuuuuuu_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); }
 void iFpuuuuduup(x64emu_t *emu, uintptr_t fcn) { iFpuuuuduup_t fn = (iFpuuuuduup_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, emu->xmm[0].d[0], (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); }
@@ -5702,6 +5765,7 @@ void vFppuupppiiii(x64emu_t *emu, uintptr_t fcn) { vFppuupppiiii_t fn = (vFppuup
 void vFppupipiuuuu(x64emu_t *emu, uintptr_t fcn) { vFppupipiuuuu_t fn = (vFppupipiuuuu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40)); }
 void vFppupppuiiii(x64emu_t *emu, uintptr_t fcn) { vFppupppuiiii_t fn = (vFppupppuiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40)); }
 void vFppppppppppp(x64emu_t *emu, uintptr_t fcn) { vFppppppppppp_t fn = (vFppppppppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40)); }
+void iFEiipppppppp(x64emu_t *emu, uintptr_t fcn) { iFEiipppppppp_t fn = (iFEiipppppppp_t)fcn; R_RAX=(int32_t)fn(emu, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); }
 void iFEpppipppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppipppppp_t fn = (iFEpppipppppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)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 iFEppppiiiiuu(x64emu_t *emu, uintptr_t fcn) { iFEppppiiiiuu_t fn = (iFEppppiiiiuu_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32)); }
 void iFEpppppppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppppppp_t fn = (iFEpppppppppp_t)fcn; R_RAX=(int32_t)fn(emu, (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)); }
@@ -6037,6 +6101,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &IFpi) return 1;
 	if (fun == &IFpu) return 1;
 	if (fun == &IFpd) return 2;
+	if (fun == &IFpp) return 1;
 	if (fun == &CFip) return 1;
 	if (fun == &CFCi) return 1;
 	if (fun == &CFui) return 1;
@@ -6343,6 +6408,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &uFppi) return 1;
 	if (fun == &uFppu) return 1;
 	if (fun == &uFppp) return 1;
+	if (fun == &UFUii) return 1;
 	if (fun == &UFUUU) return 1;
 	if (fun == &UFpiU) return 1;
 	if (fun == &UFppi) return 1;
@@ -6404,7 +6470,6 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFuip) return 1;
 	if (fun == &pFuui) return 1;
 	if (fun == &pFuuu) return 1;
-	if (fun == &pFuup) return 1;
 	if (fun == &pFulu) return 1;
 	if (fun == &pFulp) return 1;
 	if (fun == &pFupi) return 1;
@@ -6414,6 +6479,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFupp) return 1;
 	if (fun == &pFdip) return 2;
 	if (fun == &pFdUU) return 2;
+	if (fun == &pFddi) return 3;
 	if (fun == &pFddd) return 4;
 	if (fun == &pFlpi) return 1;
 	if (fun == &pFLup) return 1;
@@ -6437,6 +6503,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFpuL) return 1;
 	if (fun == &pFpup) return 1;
 	if (fun == &pFpUi) return 1;
+	if (fun == &pFpUu) return 1;
 	if (fun == &pFpUp) return 1;
 	if (fun == &pFpdu) return 2;
 	if (fun == &pFpdd) return 3;
@@ -6840,6 +6907,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFpiLL) return 1;
 	if (fun == &pFpipi) return 1;
 	if (fun == &pFpipd) return 2;
+	if (fun == &pFpipL) return 1;
 	if (fun == &pFpipp) return 1;
 	if (fun == &pFpCip) return 1;
 	if (fun == &pFpCWp) return 1;
@@ -6858,6 +6926,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFpupu) return 1;
 	if (fun == &pFpupp) return 1;
 	if (fun == &pFpdIU) return 2;
+	if (fun == &pFpddi) return 3;
 	if (fun == &pFplil) return 1;
 	if (fun == &pFplip) return 1;
 	if (fun == &pFplpl) return 1;
@@ -7233,15 +7302,18 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFudddp) return 4;
 	if (fun == &pFupLpl) return 1;
 	if (fun == &pFupLpL) return 1;
+	if (fun == &pFddddi) return 5;
 	if (fun == &pFLuppp) return 1;
 	if (fun == &pFLpppi) return 1;
 	if (fun == &pFpiiii) return 1;
 	if (fun == &pFpiiip) return 1;
 	if (fun == &pFpiiuu) return 1;
 	if (fun == &pFpiipi) return 1;
+	if (fun == &pFpiipL) return 1;
 	if (fun == &pFpiipp) return 1;
 	if (fun == &pFpiCCC) return 1;
 	if (fun == &pFpiuuu) return 1;
+	if (fun == &pFpiuup) return 1;
 	if (fun == &pFpiupp) return 1;
 	if (fun == &pFpiLip) return 1;
 	if (fun == &pFpipip) return 1;
@@ -7269,6 +7341,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFpLLLp) return 1;
 	if (fun == &pFpLpii) return 1;
 	if (fun == &pFpLpip) return 1;
+	if (fun == &pFpLpup) return 1;
 	if (fun == &pFppiii) return 1;
 	if (fun == &pFppiiu) return 1;
 	if (fun == &pFppiip) return 1;
@@ -7459,6 +7532,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &iFpipipi) return 1;
 	if (fun == &iFpipipp) return 1;
 	if (fun == &iFpipupp) return 1;
+	if (fun == &iFpipLpp) return 1;
 	if (fun == &iFpippip) return 1;
 	if (fun == &iFpippup) return 1;
 	if (fun == &iFpipppL) return 1;
@@ -7572,16 +7646,19 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFiiiiid) return 2;
 	if (fun == &pFipippp) return 1;
 	if (fun == &pFWCiWCi) return 1;
+	if (fun == &pFuCCCCp) return 1;
 	if (fun == &pFuuipip) return 1;
 	if (fun == &pFuuuiip) return 1;
 	if (fun == &pFuuuuii) return 1;
 	if (fun == &pFuuuuuu) return 1;
 	if (fun == &pFuuuuup) return 1;
 	if (fun == &pFuuppuu) return 1;
+	if (fun == &pFuppppp) return 1;
 	if (fun == &pFdddddd) return 7;
 	if (fun == &pFpiiiiu) return 1;
 	if (fun == &pFpiiipp) return 1;
 	if (fun == &pFpiiCCC) return 1;
+	if (fun == &pFpiiuup) return 1;
 	if (fun == &pFpiUUUU) return 1;
 	if (fun == &pFpipipp) return 1;
 	if (fun == &pFpippip) return 1;
@@ -7589,6 +7666,7 @@ int isSimpleWrapper(wrapper_t fun) {
 	if (fun == &pFpCuuCC) return 1;
 	if (fun == &pFpCuuWW) return 1;
 	if (fun == &pFpCuuup) return 1;
+	if (fun == &pFpuiiip) return 1;
 	if (fun == &pFpuuwwu) return 1;
 	if (fun == &pFpuuuuu) return 1;
 	if (fun == &pFpuuupu) return 1;
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 8a77380b..3565fe69 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -136,6 +136,7 @@ void pFl(x64emu_t *emu, uintptr_t fnc);
 void pFL(x64emu_t *emu, uintptr_t fnc);
 void pFp(x64emu_t *emu, uintptr_t fnc);
 void pFV(x64emu_t *emu, uintptr_t fnc);
+void pFA(x64emu_t *emu, uintptr_t fnc);
 void HFi(x64emu_t *emu, uintptr_t fnc);
 void HFp(x64emu_t *emu, uintptr_t fnc);
 void xFx(x64emu_t *emu, uintptr_t fnc);
@@ -241,6 +242,7 @@ void IFII(x64emu_t *emu, uintptr_t fnc);
 void IFpi(x64emu_t *emu, uintptr_t fnc);
 void IFpu(x64emu_t *emu, uintptr_t fnc);
 void IFpd(x64emu_t *emu, uintptr_t fnc);
+void IFpp(x64emu_t *emu, uintptr_t fnc);
 void CFip(x64emu_t *emu, uintptr_t fnc);
 void CFCi(x64emu_t *emu, uintptr_t fnc);
 void CFui(x64emu_t *emu, uintptr_t fnc);
@@ -460,6 +462,7 @@ void vFppd(x64emu_t *emu, uintptr_t fnc);
 void vFppl(x64emu_t *emu, uintptr_t fnc);
 void vFppL(x64emu_t *emu, uintptr_t fnc);
 void vFppp(x64emu_t *emu, uintptr_t fnc);
+void vFppV(x64emu_t *emu, uintptr_t fnc);
 void cFpdp(x64emu_t *emu, uintptr_t fnc);
 void wFppp(x64emu_t *emu, uintptr_t fnc);
 void iFEiw(x64emu_t *emu, uintptr_t fnc);
@@ -603,6 +606,7 @@ void uFpLp(x64emu_t *emu, uintptr_t fnc);
 void uFppi(x64emu_t *emu, uintptr_t fnc);
 void uFppu(x64emu_t *emu, uintptr_t fnc);
 void uFppp(x64emu_t *emu, uintptr_t fnc);
+void UFUii(x64emu_t *emu, uintptr_t fnc);
 void UFUUU(x64emu_t *emu, uintptr_t fnc);
 void UFpiU(x64emu_t *emu, uintptr_t fnc);
 void UFppi(x64emu_t *emu, uintptr_t fnc);
@@ -678,7 +682,6 @@ void pFWWW(x64emu_t *emu, uintptr_t fnc);
 void pFuip(x64emu_t *emu, uintptr_t fnc);
 void pFuui(x64emu_t *emu, uintptr_t fnc);
 void pFuuu(x64emu_t *emu, uintptr_t fnc);
-void pFuup(x64emu_t *emu, uintptr_t fnc);
 void pFulu(x64emu_t *emu, uintptr_t fnc);
 void pFulp(x64emu_t *emu, uintptr_t fnc);
 void pFupi(x64emu_t *emu, uintptr_t fnc);
@@ -688,6 +691,7 @@ void pFupL(x64emu_t *emu, uintptr_t fnc);
 void pFupp(x64emu_t *emu, uintptr_t fnc);
 void pFdip(x64emu_t *emu, uintptr_t fnc);
 void pFdUU(x64emu_t *emu, uintptr_t fnc);
+void pFddi(x64emu_t *emu, uintptr_t fnc);
 void pFddd(x64emu_t *emu, uintptr_t fnc);
 void pFDip(x64emu_t *emu, uintptr_t fnc);
 void pFlpi(x64emu_t *emu, uintptr_t fnc);
@@ -712,6 +716,7 @@ void pFpuu(x64emu_t *emu, uintptr_t fnc);
 void pFpuL(x64emu_t *emu, uintptr_t fnc);
 void pFpup(x64emu_t *emu, uintptr_t fnc);
 void pFpUi(x64emu_t *emu, uintptr_t fnc);
+void pFpUu(x64emu_t *emu, uintptr_t fnc);
 void pFpUp(x64emu_t *emu, uintptr_t fnc);
 void pFpdu(x64emu_t *emu, uintptr_t fnc);
 void pFpdd(x64emu_t *emu, uintptr_t fnc);
@@ -731,6 +736,7 @@ void pFppf(x64emu_t *emu, uintptr_t fnc);
 void pFppl(x64emu_t *emu, uintptr_t fnc);
 void pFppL(x64emu_t *emu, uintptr_t fnc);
 void pFppp(x64emu_t *emu, uintptr_t fnc);
+void pFppA(x64emu_t *emu, uintptr_t fnc);
 void pFpOM(x64emu_t *emu, uintptr_t fnc);
 void pFSpl(x64emu_t *emu, uintptr_t fnc);
 void vWpup(x64emu_t *emu, uintptr_t fnc);
@@ -1150,6 +1156,7 @@ void LFpppi(x64emu_t *emu, uintptr_t fnc);
 void LFpppL(x64emu_t *emu, uintptr_t fnc);
 void LFpppp(x64emu_t *emu, uintptr_t fnc);
 void pFEipp(x64emu_t *emu, uintptr_t fnc);
+void pFEuup(x64emu_t *emu, uintptr_t fnc);
 void pFEupp(x64emu_t *emu, uintptr_t fnc);
 void pFELpV(x64emu_t *emu, uintptr_t fnc);
 void pFELpA(x64emu_t *emu, uintptr_t fnc);
@@ -1194,6 +1201,7 @@ void pFpiLi(x64emu_t *emu, uintptr_t fnc);
 void pFpiLL(x64emu_t *emu, uintptr_t fnc);
 void pFpipi(x64emu_t *emu, uintptr_t fnc);
 void pFpipd(x64emu_t *emu, uintptr_t fnc);
+void pFpipL(x64emu_t *emu, uintptr_t fnc);
 void pFpipp(x64emu_t *emu, uintptr_t fnc);
 void pFpCip(x64emu_t *emu, uintptr_t fnc);
 void pFpCWp(x64emu_t *emu, uintptr_t fnc);
@@ -1212,6 +1220,7 @@ void pFpupi(x64emu_t *emu, uintptr_t fnc);
 void pFpupu(x64emu_t *emu, uintptr_t fnc);
 void pFpupp(x64emu_t *emu, uintptr_t fnc);
 void pFpdIU(x64emu_t *emu, uintptr_t fnc);
+void pFpddi(x64emu_t *emu, uintptr_t fnc);
 void pFplil(x64emu_t *emu, uintptr_t fnc);
 void pFplip(x64emu_t *emu, uintptr_t fnc);
 void pFplpl(x64emu_t *emu, uintptr_t fnc);
@@ -1652,6 +1661,8 @@ void pFEppLp(x64emu_t *emu, uintptr_t fnc);
 void pFEpppi(x64emu_t *emu, uintptr_t fnc);
 void pFEpppu(x64emu_t *emu, uintptr_t fnc);
 void pFEpppp(x64emu_t *emu, uintptr_t fnc);
+void pFEpppV(x64emu_t *emu, uintptr_t fnc);
+void pFEpppA(x64emu_t *emu, uintptr_t fnc);
 void pFiiiii(x64emu_t *emu, uintptr_t fnc);
 void pFiiipL(x64emu_t *emu, uintptr_t fnc);
 void pFipipL(x64emu_t *emu, uintptr_t fnc);
@@ -1664,15 +1675,18 @@ void pFuupuu(x64emu_t *emu, uintptr_t fnc);
 void pFudddp(x64emu_t *emu, uintptr_t fnc);
 void pFupLpl(x64emu_t *emu, uintptr_t fnc);
 void pFupLpL(x64emu_t *emu, uintptr_t fnc);
+void pFddddi(x64emu_t *emu, uintptr_t fnc);
 void pFLuppp(x64emu_t *emu, uintptr_t fnc);
 void pFLpppi(x64emu_t *emu, uintptr_t fnc);
 void pFpiiii(x64emu_t *emu, uintptr_t fnc);
 void pFpiiip(x64emu_t *emu, uintptr_t fnc);
 void pFpiiuu(x64emu_t *emu, uintptr_t fnc);
 void pFpiipi(x64emu_t *emu, uintptr_t fnc);
+void pFpiipL(x64emu_t *emu, uintptr_t fnc);
 void pFpiipp(x64emu_t *emu, uintptr_t fnc);
 void pFpiCCC(x64emu_t *emu, uintptr_t fnc);
 void pFpiuuu(x64emu_t *emu, uintptr_t fnc);
+void pFpiuup(x64emu_t *emu, uintptr_t fnc);
 void pFpiupp(x64emu_t *emu, uintptr_t fnc);
 void pFpiLip(x64emu_t *emu, uintptr_t fnc);
 void pFpipip(x64emu_t *emu, uintptr_t fnc);
@@ -1700,6 +1714,7 @@ void pFpLLip(x64emu_t *emu, uintptr_t fnc);
 void pFpLLLp(x64emu_t *emu, uintptr_t fnc);
 void pFpLpii(x64emu_t *emu, uintptr_t fnc);
 void pFpLpip(x64emu_t *emu, uintptr_t fnc);
+void pFpLpup(x64emu_t *emu, uintptr_t fnc);
 void pFppiii(x64emu_t *emu, uintptr_t fnc);
 void pFppiiu(x64emu_t *emu, uintptr_t fnc);
 void pFppiip(x64emu_t *emu, uintptr_t fnc);
@@ -1933,6 +1948,7 @@ void iFpiuupp(x64emu_t *emu, uintptr_t fnc);
 void iFpipipi(x64emu_t *emu, uintptr_t fnc);
 void iFpipipp(x64emu_t *emu, uintptr_t fnc);
 void iFpipupp(x64emu_t *emu, uintptr_t fnc);
+void iFpipLpp(x64emu_t *emu, uintptr_t fnc);
 void iFpippip(x64emu_t *emu, uintptr_t fnc);
 void iFpippup(x64emu_t *emu, uintptr_t fnc);
 void iFpipppL(x64emu_t *emu, uintptr_t fnc);
@@ -2046,6 +2062,7 @@ void lFppLipp(x64emu_t *emu, uintptr_t fnc);
 void lFpppLpp(x64emu_t *emu, uintptr_t fnc);
 void LFEupppp(x64emu_t *emu, uintptr_t fnc);
 void LFELpppi(x64emu_t *emu, uintptr_t fnc);
+void LFEpippp(x64emu_t *emu, uintptr_t fnc);
 void LFEppppi(x64emu_t *emu, uintptr_t fnc);
 void LFpipipi(x64emu_t *emu, uintptr_t fnc);
 void LFpLippp(x64emu_t *emu, uintptr_t fnc);
@@ -2058,6 +2075,7 @@ void pFEpuipp(x64emu_t *emu, uintptr_t fnc);
 void pFEpuupp(x64emu_t *emu, uintptr_t fnc);
 void pFEpuppp(x64emu_t *emu, uintptr_t fnc);
 void pFEpLLiN(x64emu_t *emu, uintptr_t fnc);
+void pFEppupi(x64emu_t *emu, uintptr_t fnc);
 void pFEppLLp(x64emu_t *emu, uintptr_t fnc);
 void pFEpppLp(x64emu_t *emu, uintptr_t fnc);
 void pFEppppi(x64emu_t *emu, uintptr_t fnc);
@@ -2068,16 +2086,19 @@ void pFiiiiii(x64emu_t *emu, uintptr_t fnc);
 void pFiiiiid(x64emu_t *emu, uintptr_t fnc);
 void pFipippp(x64emu_t *emu, uintptr_t fnc);
 void pFWCiWCi(x64emu_t *emu, uintptr_t fnc);
+void pFuCCCCp(x64emu_t *emu, uintptr_t fnc);
 void pFuuipip(x64emu_t *emu, uintptr_t fnc);
 void pFuuuiip(x64emu_t *emu, uintptr_t fnc);
 void pFuuuuii(x64emu_t *emu, uintptr_t fnc);
 void pFuuuuuu(x64emu_t *emu, uintptr_t fnc);
 void pFuuuuup(x64emu_t *emu, uintptr_t fnc);
 void pFuuppuu(x64emu_t *emu, uintptr_t fnc);
+void pFuppppp(x64emu_t *emu, uintptr_t fnc);
 void pFdddddd(x64emu_t *emu, uintptr_t fnc);
 void pFpiiiiu(x64emu_t *emu, uintptr_t fnc);
 void pFpiiipp(x64emu_t *emu, uintptr_t fnc);
 void pFpiiCCC(x64emu_t *emu, uintptr_t fnc);
+void pFpiiuup(x64emu_t *emu, uintptr_t fnc);
 void pFpiUUUU(x64emu_t *emu, uintptr_t fnc);
 void pFpipipp(x64emu_t *emu, uintptr_t fnc);
 void pFpippip(x64emu_t *emu, uintptr_t fnc);
@@ -2085,6 +2106,7 @@ void pFpipppp(x64emu_t *emu, uintptr_t fnc);
 void pFpCuuCC(x64emu_t *emu, uintptr_t fnc);
 void pFpCuuWW(x64emu_t *emu, uintptr_t fnc);
 void pFpCuuup(x64emu_t *emu, uintptr_t fnc);
+void pFpuiiip(x64emu_t *emu, uintptr_t fnc);
 void pFpuuwwu(x64emu_t *emu, uintptr_t fnc);
 void pFpuuuuu(x64emu_t *emu, uintptr_t fnc);
 void pFpuuupu(x64emu_t *emu, uintptr_t fnc);
@@ -2341,6 +2363,7 @@ void pFEppuipp(x64emu_t *emu, uintptr_t fnc);
 void pFEppppip(x64emu_t *emu, uintptr_t fnc);
 void pFEpppppi(x64emu_t *emu, uintptr_t fnc);
 void pFifffppp(x64emu_t *emu, uintptr_t fnc);
+void pFWpppppp(x64emu_t *emu, uintptr_t fnc);
 void pFuuuiiip(x64emu_t *emu, uintptr_t fnc);
 void pFuupupup(x64emu_t *emu, uintptr_t fnc);
 void pFfiiiiid(x64emu_t *emu, uintptr_t fnc);
@@ -2356,6 +2379,7 @@ void pFpCpWWup(x64emu_t *emu, uintptr_t fnc);
 void pFpWppWpp(x64emu_t *emu, uintptr_t fnc);
 void pFpuuuwwu(x64emu_t *emu, uintptr_t fnc);
 void pFpuupwwC(x64emu_t *emu, uintptr_t fnc);
+void pFpuLpipp(x64emu_t *emu, uintptr_t fnc);
 void pFpupiipp(x64emu_t *emu, uintptr_t fnc);
 void pFpuppipp(x64emu_t *emu, uintptr_t fnc);
 void pFplppppp(x64emu_t *emu, uintptr_t fnc);
@@ -2383,6 +2407,7 @@ void pFpppCCCi(x64emu_t *emu, uintptr_t fnc);
 void pFpppuipp(x64emu_t *emu, uintptr_t fnc);
 void pFpppuuui(x64emu_t *emu, uintptr_t fnc);
 void pFpppuupp(x64emu_t *emu, uintptr_t fnc);
+void pFpppupii(x64emu_t *emu, uintptr_t fnc);
 void pFpppupup(x64emu_t *emu, uintptr_t fnc);
 void pFpppuppp(x64emu_t *emu, uintptr_t fnc);
 void pFpppfffi(x64emu_t *emu, uintptr_t fnc);
@@ -2405,6 +2430,7 @@ void vFEiippppV(x64emu_t *emu, uintptr_t fnc);
 void vFEiupippp(x64emu_t *emu, uintptr_t fnc);
 void vFEipAippp(x64emu_t *emu, uintptr_t fnc);
 void vFEppipppp(x64emu_t *emu, uintptr_t fnc);
+void vFEppLippp(x64emu_t *emu, uintptr_t fnc);
 void vFEpppippp(x64emu_t *emu, uintptr_t fnc);
 void vFEpppuipV(x64emu_t *emu, uintptr_t fnc);
 void vFEpppppuu(x64emu_t *emu, uintptr_t fnc);
@@ -2535,6 +2561,7 @@ void LFELpupupu(x64emu_t *emu, uintptr_t fnc);
 void LFEpiupppp(x64emu_t *emu, uintptr_t fnc);
 void LFpLpuuLLu(x64emu_t *emu, uintptr_t fnc);
 void pFEiplllpp(x64emu_t *emu, uintptr_t fnc);
+void pFEipLLLpp(x64emu_t *emu, uintptr_t fnc);
 void pFEpiuCppp(x64emu_t *emu, uintptr_t fnc);
 void pFEppLiiip(x64emu_t *emu, uintptr_t fnc);
 void pFEpppuipV(x64emu_t *emu, uintptr_t fnc);
@@ -2544,8 +2571,10 @@ void pFEppppppp(x64emu_t *emu, uintptr_t fnc);
 void pFiippipip(x64emu_t *emu, uintptr_t fnc);
 void pFiupppppp(x64emu_t *emu, uintptr_t fnc);
 void pFuiiiuuuu(x64emu_t *emu, uintptr_t fnc);
+void pFuCCCCpWw(x64emu_t *emu, uintptr_t fnc);
 void pFuupupipp(x64emu_t *emu, uintptr_t fnc);
 void pFpiiiiiuu(x64emu_t *emu, uintptr_t fnc);
+void pFpiiuuupp(x64emu_t *emu, uintptr_t fnc);
 void pFpiUdiiUi(x64emu_t *emu, uintptr_t fnc);
 void pFpipiiiip(x64emu_t *emu, uintptr_t fnc);
 void pFpCCuuwwC(x64emu_t *emu, uintptr_t fnc);
@@ -2631,6 +2660,7 @@ void vFpppffffff(x64emu_t *emu, uintptr_t fnc);
 void vFppppipiip(x64emu_t *emu, uintptr_t fnc);
 void vFpppppippp(x64emu_t *emu, uintptr_t fnc);
 void iFEpiiiiipi(x64emu_t *emu, uintptr_t fnc);
+void iFEppuppppp(x64emu_t *emu, uintptr_t fnc);
 void iFEpppipppp(x64emu_t *emu, uintptr_t fnc);
 void iFEppplPPPP(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppupp(x64emu_t *emu, uintptr_t fnc);
@@ -2639,6 +2669,7 @@ void iFiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
 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 iFpipippppi(x64emu_t *emu, uintptr_t fnc);
 void iFpipLpiiip(x64emu_t *emu, uintptr_t fnc);
 void iFpuuuuuuuu(x64emu_t *emu, uintptr_t fnc);
 void iFpuuuuduup(x64emu_t *emu, uintptr_t fnc);
@@ -2796,6 +2827,7 @@ void vFppuupppiiii(x64emu_t *emu, uintptr_t fnc);
 void vFppupipiuuuu(x64emu_t *emu, uintptr_t fnc);
 void vFppupppuiiii(x64emu_t *emu, uintptr_t fnc);
 void vFppppppppppp(x64emu_t *emu, uintptr_t fnc);
+void iFEiipppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFEpppipppppp(x64emu_t *emu, uintptr_t fnc);
 void iFEppppiiiiuu(x64emu_t *emu, uintptr_t fnc);
 void iFEpppppppppp(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedgio2.c b/src/wrapped/wrappedgio2.c
index e4837e7e..2556c7b3 100644
--- a/src/wrapped/wrappedgio2.c
+++ b/src/wrapped/wrappedgio2.c
@@ -616,6 +616,11 @@ EXPORT void my_g_task_return_new_error(x64emu_t* emu, void* task, uint32_t domai
     free(tmp);
 }
 
+EXPORT void my_g_input_stream_read_async(x64emu_t* emu, void* stream, void* buffer, size_t count, int io_prio, void* cancel, void* f, void* data)
+{
+    my->g_input_stream_read_async(stream, buffer, count, io_prio, cancel, findGAsyncReadyCallbackFct(f), data);
+}
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
diff --git a/src/wrapped/wrappedgio2_private.h b/src/wrapped/wrappedgio2_private.h
index 560b2518..c97a314d 100644
--- a/src/wrapped/wrappedgio2_private.h
+++ b/src/wrapped/wrappedgio2_private.h
@@ -952,11 +952,11 @@ GO(g_input_stream_has_pending, iFp)
 //GO(g_input_stream_is_closed, 
 GO(g_input_stream_read, lFppLpp)
 GO(g_input_stream_read_all, iFppLppp)
-//GO(g_input_stream_read_async, 
+GOM(g_input_stream_read_async, vFEppLippp)
 GO(g_input_stream_read_bytes, pFpLpp)
 //GO(g_input_stream_read_bytes_async, 
 GO(g_input_stream_read_bytes_finish, pFppp)
-//GO(g_input_stream_read_finish, 
+GO(g_input_stream_read_finish, lFppp)
 GO(g_input_stream_set_pending, iFpp)
 GO(g_input_stream_skip, lFpLpp)
 //GO(g_input_stream_skip_async, 
@@ -1228,7 +1228,7 @@ GO(g_proxy_address_get_destination_port, WFp)
 //GO(g_proxy_address_get_destination_protocol, 
 //GO(g_proxy_address_get_password, 
 //GO(g_proxy_address_get_protocol, 
-//GO(g_proxy_address_get_type, 
+GO(g_proxy_address_get_type, LFv)
 GO(g_proxy_address_get_uri, pFp)
 //GO(g_proxy_address_get_username, 
 GO(g_proxy_address_new, pFpWppWpp)
@@ -1238,7 +1238,7 @@ GO(g_proxy_connect_finish, pFppp)
 GO(g_proxy_get_default_for_protocol, pFp)
 //GO(g_proxy_get_type, 
 GO(g_proxy_resolver_get_default, pFv)
-//GO(g_proxy_resolver_get_type, 
+GO(g_proxy_resolver_get_type, LFv)
 GO(g_proxy_resolver_is_supported, iFp)
 GO(g_proxy_resolver_lookup, pFpppp)
 //GO(g_proxy_resolver_lookup_async, 
@@ -1252,7 +1252,7 @@ GO(g_remote_action_group_change_action_state_full, vFpppp)
 //GO(g_resolver_free_addresses, 
 GO(g_resolver_free_targets, vFp)
 GO(g_resolver_get_default, pFv)
-//GO(g_resolver_get_type, 
+GO(g_resolver_get_type, LFv)
 GO(g_resolver_lookup_by_address, pFpppp)
 //GO(g_resolver_lookup_by_address_async, 
 GO(g_resolver_lookup_by_address_finish, pFppp)
@@ -1424,7 +1424,7 @@ GO(g_socket_address_enumerator_next, pFppp)
 GO(g_socket_address_enumerator_next_finish, pFppp)
 GO(g_socket_address_get_family, uFp)
 GO(g_socket_address_get_native_size, lFp)
-//GO(g_socket_address_get_type, 
+GO(g_socket_address_get_type, LFv)
 //GO(g_socket_address_new_from_native, 
 GO(g_socket_address_to_native, iFppLp)
 GO(g_socket_bind, iFppip)
@@ -1452,7 +1452,7 @@ GO(g_socket_client_get_socket_type, uFp)
 GO(g_socket_client_get_timeout, uFp)
 GO(g_socket_client_get_tls, iFp)
 GO(g_socket_client_get_tls_validation_flags, uFp)
-//GO(g_socket_client_get_type, 
+GO(g_socket_client_get_type, LFv)
 GO(g_socket_client_new, pFv)
 //GO(g_socket_client_set_enable_proxy, 
 GO(g_socket_client_set_family, vFpu)
@@ -1489,7 +1489,7 @@ GO(g_socket_control_message_get_size, LFp)
 //GO(g_socket_control_message_get_type, 
 GO(g_socket_control_message_serialize, vFpp)
 //GO(g_socket_create_source, 
-//GO(g_socket_family_get_type, 
+GO(g_socket_family_get_type, LFv)
 GO(g_socket_get_available_bytes, lFp)
 //GO(g_socket_get_blocking, 
 //GO(g_socket_get_broadcast, 
@@ -1507,7 +1507,7 @@ GO(g_socket_get_remote_address, pFpp)
 GO(g_socket_get_socket_type, uFp)
 //GO(g_socket_get_timeout, 
 //GO(g_socket_get_ttl, 
-//GO(g_socket_get_type, 
+GO(g_socket_get_type, LFv)
 //GO(g_socket_is_closed, 
 //GO(g_socket_is_connected, 
 //GO(g_socket_join_multicast_group, 
@@ -1539,7 +1539,7 @@ GO(g_socket_send, lFppLpp)
 GO(g_socket_send_message, lFpppipiipp)
 GO(g_socket_send_to, lFpppLpp)
 GO(g_socket_send_with_blocking, lFppLipp)
-//GO(g_socket_service_get_type, 
+GO(g_socket_service_get_type, LFv)
 GO(g_socket_service_is_active, iFp)
 GO(g_socket_service_new, pFv)
 //GO(g_socket_service_start, 
@@ -1682,7 +1682,7 @@ GO(g_tls_backend_get_default_database, pFp)
 //GO(g_tls_backend_supports_tls, 
 //GO(g_tls_certificate_flags_get_type, 
 GO(g_tls_certificate_get_issuer, pFp)
-//GO(g_tls_certificate_get_type, 
+GO(g_tls_certificate_get_type, LFv)
 GO(g_tls_certificate_is_same, iFpp)
 GO(g_tls_certificate_list_new_from_file, pFpp)
 GO(g_tls_certificate_new_from_file, pFpp)
@@ -1707,7 +1707,7 @@ GO(g_tls_connection_get_peer_certificate, pFp)
 GO(g_tls_connection_get_peer_certificate_errors, uFp)
 GO(g_tls_connection_get_rehandshake_mode, uFp)
 GO(g_tls_connection_get_require_close_notify, iFp)
-//GO(g_tls_connection_get_type, 
+GO(g_tls_connection_get_type, LFv)
 //GO(g_tls_connection_get_use_system_certdb, 
 GO(g_tls_connection_handshake, iFppp)
 //GO(g_tls_connection_handshake_async, 
@@ -1719,7 +1719,7 @@ GO(g_tls_connection_set_rehandshake_mode, vFpu)
 GO(g_tls_connection_set_require_close_notify, vFpi)
 //GO(g_tls_connection_set_use_system_certdb, 
 GO(g_tls_database_create_certificate_handle, pFpp)
-//GO(g_tls_database_get_type, 
+GO(g_tls_database_get_type, LFv)
 GO(g_tls_database_lookup_certificate_for_handle, pFpppupp)
 //GO(g_tls_database_lookup_certificate_for_handle_async, 
 //GO(g_tls_database_lookup_certificate_for_handle_finish, 
@@ -1741,7 +1741,7 @@ GO(g_tls_file_database_new, pFpp)
 GO(g_tls_interaction_ask_password, uFpppp)
 //GO(g_tls_interaction_ask_password_async, 
 //GO(g_tls_interaction_ask_password_finish, 
-//GO(g_tls_interaction_get_type, 
+GO(g_tls_interaction_get_type, LFv)
 //GO(g_tls_interaction_invoke_ask_password, 
 //GO(g_tls_interaction_invoke_request_certificate, 
 GO(g_tls_interaction_request_certificate, uFppupp)
diff --git a/src/wrapped/wrappedglib2.c b/src/wrapped/wrappedglib2.c
index 5c10638b..9dd59d76 100644
--- a/src/wrapped/wrappedglib2.c
+++ b/src/wrapped/wrappedglib2.c
@@ -1420,6 +1420,21 @@ EXPORT void my_g_option_group_set_parse_hooks(x64emu_t* emu, void* group, void*
     my->g_option_group_set_parse_hooks(group, findGOptionParseFct(preparse), findGOptionParseFct(postparse));
 }
 
+EXPORT void* my_g_thread_new(x64emu_t* emu, void* name, void* f, void* data)
+{
+    return my->g_thread_new(name, findGThreadFuncFct(f), data);
+}
+
+EXPORT void my_g_queue_foreach(x64emu_t* emu, void* queue, void* f, void* data)
+{
+    my->g_queue_foreach(queue, findGFuncFct(f), data);
+}
+
+EXPORT void* my_g_once_impl(x64emu_t* emu, void* once, void* f, void* arg)
+{
+    return my->g_once_impl(once, findGThreadFuncFct(f), arg);
+}
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
diff --git a/src/wrapped/wrappedglib2_private.h b/src/wrapped/wrappedglib2_private.h
index c5285b9d..1f64bd14 100644
--- a/src/wrapped/wrappedglib2_private.h
+++ b/src/wrapped/wrappedglib2_private.h
@@ -180,7 +180,7 @@ GO(g_cache_remove, vFpp)
 //GO(g_cache_value_foreach, 
 GO(g_chdir, iFp)
 GO(g_checksum_copy, pFp)
-//GO(g_checksum_free, 
+GO(g_checksum_free, vFp)
 GO(g_checksum_get_digest, vFppp)
 GO(g_checksum_get_string, pFp)
 GO(g_checksum_new, pFu)
@@ -324,7 +324,7 @@ GO(g_date_time_to_timeval, iFpp)
 GO(g_date_time_to_timezone, pFpp)
 GO(g_date_time_to_unix, lFp)
 GO(g_date_time_to_utc, pFp)
-//GO(g_date_time_unref, 
+GO(g_date_time_unref, vFp)
 GO(g_date_to_struct_tm, vFpp)
 GO(g_date_valid, iFp)
 GO(g_date_valid_day, iFC)
@@ -751,10 +751,10 @@ GO(g_node_push_allocator, vFp)
 GOM(g_node_traverse, vFEpiiipp)
 //GO(g_node_unlink, 
 GO(g_nullify_pointer, vFp)
-//GO(g_once_impl, 
+GOM(g_once_impl, pFEppp)
 GO(g_once_init_enter, iFp)
 GO(g_once_init_enter_impl, iFp)
-GO(g_once_init_leave, vFpi)
+GO(g_once_init_leave, vFpL)
 GO(g_on_error_query, vFp)
 GO(g_on_error_stack_trace, vFp)
 GO(g_open, iFpii)
@@ -845,7 +845,7 @@ GO(g_queue_copy, pFp)
 GO(g_queue_delete_link, vFpp)
 GO(g_queue_find, pFpp)
 GOM(g_queue_find_custom, pFEppp)
-//GOM(g_queue_foreach, vFEpBp)
+GOM(g_queue_foreach, vFEppp)
 GO(g_queue_free, vFp)
 //GOM(g_queue_free_full, vFEpB)
 GO(g_queue_get_length, uFp)
@@ -1211,6 +1211,7 @@ GO(g_str_to_ascii, pFpp)
 GO(g_strtod, dFpp)
 GO(g_str_tokenize_and_fold, pFppp)
 GO(g_strup, pFp)
+GO(g_strv_contains, iFpp)
 GO(g_strv_length, uFp)
 //GO(g_test_add_data_func, 
 //GO(g_test_add_data_func_full, 
@@ -1269,7 +1270,7 @@ GOM(g_thread_foreach, vFEpp)
 GO(g_thread_get_initialized, iFv)
 //GO(g_thread_init_glib, 
 GO(g_thread_join, pFp)
-//GO(g_thread_new, 
+GOM(g_thread_new, pFEppp)
 //GO(g_thread_pool_free, 
 GO(g_thread_pool_get_max_idle_time, uFv)
 //GO(g_thread_pool_get_max_threads, 
@@ -1396,9 +1397,12 @@ GO(g_unlink, iFp)
 GO(g_unsetenv, vFp)
 GO(g_uri_escape_string, pFppi)
 GO(g_uri_list_extract_uris, pFp)
+GO(g_uri_parse, pFpip)
 GO(g_uri_parse_scheme, pFp)
+GO(g_uri_to_string_partial, pFpi)
 GO(g_uri_unescape_segment, pFppp)
 GO(g_uri_unescape_string, pFpp)
+GO(g_uri_unref, vFp)
 GO(g_usleep, vFL)
 GO(g_utf16_to_ucs4, pFplppp)
 GO(g_utf16_to_utf8, pFplppp)
diff --git a/src/wrapped/wrappedgobject2.c b/src/wrapped/wrappedgobject2.c
index d51a736f..6a30df4c 100644
--- a/src/wrapped/wrappedgobject2.c
+++ b/src/wrapped/wrappedgobject2.c
@@ -29,6 +29,7 @@ typedef void*(*pFL_t)(size_t);
  GO(g_object_get_type, LFv_t)       \
  GO(g_initially_unowned_get_type, LFv_t)    \
  GO(g_type_name, pFL_t)             \
+ GO(g_type_parent, LFv_t)           \
  GO(g_type_class_peek, pFL_t)       \
 
 #include "generated/wrappedgobject2types.h"
@@ -541,20 +542,22 @@ static my_GParamSpecTypeInfo_t* findFreeGParamSpecTypeInfo(my_GParamSpecTypeInfo
 // GInterfaceInitFunc
 #define GO(A)   \
 static uintptr_t my_GInterfaceInitFunc_fct_##A = 0;                             \
+static size_t my_GInterfaceInitFunc_klass_##A = 0;                              \
 static void my_GInterfaceInitFunc_##A(void* src, void* dst)                     \
 {                                                                               \
-    RunFunctionFmt(my_GInterfaceInitFunc_fct_##A, "pp", src, dst);  \
+    RunFunctionFmt(my_GInterfaceInitFunc_fct_##A, "pp", src, dst);              \
+    unwrapGTKInterface(src, my_GInterfaceInitFunc_klass_##A);                   \
 }
 SUPER()
 #undef GO
-static void* findGInterfaceInitFuncFct(void* fct)
+static void* findGInterfaceInitFuncFct(void* fct, size_t klass)
 {
     if(!fct) return fct;
     if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
-    #define GO(A) if(my_GInterfaceInitFunc_fct_##A == (uintptr_t)fct) return my_GInterfaceInitFunc_##A;
+    #define GO(A) if(my_GInterfaceInitFunc_fct_##A == (uintptr_t)fct && my_GInterfaceInitFunc_klass_##A == klass) return my_GInterfaceInitFunc_##A;
     SUPER()
     #undef GO
-    #define GO(A) if(my_GInterfaceInitFunc_fct_##A == 0) {my_GInterfaceInitFunc_fct_##A = (uintptr_t)fct; return my_GInterfaceInitFunc_##A; }
+    #define GO(A) if(my_GInterfaceInitFunc_fct_##A == 0) {my_GInterfaceInitFunc_fct_##A = (uintptr_t)fct; my_GInterfaceInitFunc_klass_##A = klass; return my_GInterfaceInitFunc_##A; }
     SUPER()
     #undef GO
     printf_log(LOG_NONE, "Warning, no more slot for gobject GInterfaceInitFunc callback\n");
@@ -713,8 +716,10 @@ EXPORT void* my_g_object_new_valist(x64emu_t* emu, size_t type, void* first, x64
 
 EXPORT size_t my_g_type_register_static(x64emu_t* emu, size_t parent, void* name, my_GTypeInfo_t* info, int flags)
 {
-
-    return my->g_type_register_static(parent, name, findFreeGTypeInfo(info, parent), flags);
+    size_t ret = my->g_type_register_static(parent, name, findFreeGTypeInfo(info, parent), flags);
+    printf_log(LOG_DEBUG, "Registered %s as 0x%zx\n", name, ret);
+    addRegisteredClass(ret, name);
+    return ret;
 }
 
 EXPORT size_t my_g_type_register_fundamental(x64emu_t* emu, size_t parent, void* name, my_GTypeInfo_t* info, void* finfo, int flags)
@@ -767,7 +772,7 @@ typedef struct my_GInterfaceInfo_s {
 EXPORT void my_g_type_add_interface_static(x64emu_t* emu, size_t instance_type, size_t interface_type, my_GInterfaceInfo_t* info)
 {
     my_GInterfaceInfo_t i = {0};
-    i.interface_init = findGInterfaceInitFuncFct(info->interface_init);
+    i.interface_init = findGInterfaceInitFuncFct(info->interface_init, interface_type);
     i.interface_finalize = findGInterfaceFinalizeFuncFct(info->interface_finalize);
     i.data = info->data;
     my->g_type_add_interface_static(instance_type, interface_type, &i);
@@ -906,6 +911,7 @@ EXPORT void* my_g_type_value_table_peek(x64emu_t* emu, size_t type)
     SetGInitiallyUnownedID(my->g_initially_unowned_get_type()); \
     SetGTypeName(my->g_type_name);          \
     SetGClassPeek(my->g_type_class_peek);   \
+    SetGTypeParent(my->g_type_parent);      \
     setNeededLibs(lib, 1, "libglib-2.0.so.0");
 
 #define CUSTOM_FINI \
diff --git a/src/wrapped/wrappedgobject2_private.h b/src/wrapped/wrappedgobject2_private.h
index b81d036d..574ce14a 100644
--- a/src/wrapped/wrappedgobject2_private.h
+++ b/src/wrapped/wrappedgobject2_private.h
@@ -183,7 +183,7 @@ GO(g_param_spec_int, pFpppiiii)
 GO(g_param_spec_int64, pFpppllli)
 GO(g_param_spec_internal, pFLpppi)
 GO(g_param_spec_long, pFpppllli)
-GO(g_param_spec_object, pFpppii)
+GO(g_param_spec_object, pFpppLi)
 GO(g_param_spec_override, pFpp)
 GO(g_param_spec_param, pFpppii)
 GO(g_param_spec_pointer, pFpppi)
diff --git a/src/wrapped/wrappedgstallocators.c b/src/wrapped/wrappedgstallocators.c
new file mode 100644
index 00000000..a698ce73
--- /dev/null
+++ b/src/wrapped/wrappedgstallocators.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstallocatorsName = "libgstallocators-1.0.so.0";
+#define LIBNAME gstallocators
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstallocators_private.h b/src/wrapped/wrappedgstallocators_private.h
new file mode 100644
index 00000000..18c71e14
--- /dev/null
+++ b/src/wrapped/wrappedgstallocators_private.h
@@ -0,0 +1,18 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(gst_dmabuf_allocator_alloc, pFpiL)
+//GO(gst_dmabuf_allocator_alloc_with_flags, 
+GO(gst_dmabuf_allocator_get_type, LFv)
+GO(gst_dmabuf_allocator_new, pFv)
+//GO(gst_dmabuf_memory_get_fd, 
+//GO(gst_fd_allocator_alloc, 
+GO(gst_fd_allocator_get_type, LFv)
+//GO(gst_fd_allocator_new, 
+//GO(gst_fd_memory_get_fd, 
+//GO(gst_is_dmabuf_memory, 
+//GO(gst_is_fd_memory, 
+//GO(gst_is_phys_memory, 
+GO(gst_phys_memory_allocator_get_type, LFv)
+//GO(gst_phys_memory_get_phys_addr, 
\ No newline at end of file
diff --git a/src/wrapped/wrappedgstaudio.c b/src/wrapped/wrappedgstaudio.c
index 5f4e2a46..f7faf217 100644
--- a/src/wrapped/wrappedgstaudio.c
+++ b/src/wrapped/wrappedgstaudio.c
@@ -11,12 +11,37 @@
 #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"
+#include "gtkclass.h"
+#include "fileutils.h"
 
 const char* gstaudioName = "libgstaudio-1.0.so.0";
 #define LIBNAME gstaudio
 
+typedef size_t  (*LFv_t)();
+
+#define ADDED_FUNCTIONS()                   \
+    GO(gst_audio_decoder_get_type, LFv_t)   \
+
+#include "generated/wrappedgstaudiotypes.h"
+
+#include "wrappercallback.h"
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
 
+#define CUSTOM_INIT \
+    getMy(lib);     \
+    SetGstAudioDecoderID(my->gst_audio_decoder_get_type());\
+    setNeededLibs(lib, 1, "libgstreamer-1.0.so.0");
+
+#define CUSTOM_FINI \
+    freeMy();
+
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstaudio_private.h b/src/wrapped/wrappedgstaudio_private.h
index ef7996c3..f297ebfa 100644
--- a/src/wrapped/wrappedgstaudio_private.h
+++ b/src/wrapped/wrappedgstaudio_private.h
@@ -50,7 +50,7 @@ GO(gst_audio_channel_positions_to_mask, iFpiip)
 GO(gst_audio_channel_positions_to_string, pFpi)
 GO(gst_audio_channel_positions_to_valid_order, iFpi)
 GO(gst_audio_check_valid_channel_positions, iFpii)
-//GO(gst_audio_clipping_meta_api_get_type, 
+GO(gst_audio_clipping_meta_api_get_type, LFv)
 //GO(gst_audio_clipping_meta_get_info, 
 //GO(gst_audio_clock_adjust, 
 //GO(gst_audio_clock_get_time, 
@@ -72,10 +72,10 @@ GO(gst_audio_converter_reset, vFp)
 GO(gst_audio_converter_samples, iFpupLpL)
 //GO(gst_audio_converter_supports_inplace, 
 GO(gst_audio_converter_update_config, iFpiip)
-//GO(gst_audio_decoder_allocate_output_buffer, 
-//GO(_gst_audio_decoder_error, 
-//GO(gst_audio_decoder_finish_frame, 
-//GO(gst_audio_decoder_finish_subframe, 
+GO(gst_audio_decoder_allocate_output_buffer, pFpL)
+GO(_gst_audio_decoder_error, iFpipippppi)
+GO(gst_audio_decoder_finish_frame, iFppi)
+GO(gst_audio_decoder_finish_subframe, iFpp)
 //GO(gst_audio_decoder_get_allocator, 
 //GO(gst_audio_decoder_get_audio_info, 
 //GO(gst_audio_decoder_get_delay, 
@@ -89,30 +89,30 @@ GO(gst_audio_converter_update_config, iFpiip)
 //GO(gst_audio_decoder_get_plc, 
 //GO(gst_audio_decoder_get_plc_aware, 
 //GO(gst_audio_decoder_get_tolerance, 
-//GO(gst_audio_decoder_get_type, 
+GO(gst_audio_decoder_get_type, LFv)
 //GO(gst_audio_decoder_merge_tags, 
 //GO(gst_audio_decoder_negotiate, 
 //GO(gst_audio_decoder_proxy_getcaps, 
 //GO(gst_audio_decoder_set_allocation_caps, 
-//GO(gst_audio_decoder_set_drainable, 
+GO(gst_audio_decoder_set_drainable, vFpi)
 //GO(gst_audio_decoder_set_estimate_rate, 
 //GO(gst_audio_decoder_set_latency, 
 //GO(gst_audio_decoder_set_max_errors, 
 //GO(gst_audio_decoder_set_min_latency, 
-//GO(gst_audio_decoder_set_needs_format, 
+GO(gst_audio_decoder_set_needs_format, vFpi)
 //GO(gst_audio_decoder_set_output_caps, 
-//GO(gst_audio_decoder_set_output_format, 
+GO(gst_audio_decoder_set_output_format, iFpp)
 //GO(gst_audio_decoder_set_plc, 
 //GO(gst_audio_decoder_set_plc_aware, 
 //GO(gst_audio_decoder_set_tolerance, 
-//GO(gst_audio_decoder_set_use_default_pad_acceptcaps, 
+GO(gst_audio_decoder_set_use_default_pad_acceptcaps, vFpi)
 //GO(gst_audio_dither_method_get_type, 
 //GO(gst_audio_downmix_meta_api_get_type, 
 //GO(gst_audio_downmix_meta_get_info, 
 //GO(gst_audio_encoder_allocate_output_buffer, 
-//GO(gst_audio_encoder_finish_frame, 
+GO(gst_audio_encoder_finish_frame, iFppi)
 //GO(gst_audio_encoder_get_allocator, 
-//GO(gst_audio_encoder_get_audio_info, 
+GO(gst_audio_encoder_get_audio_info, pFp)
 //GO(gst_audio_encoder_get_drainable, 
 //GO(gst_audio_encoder_get_frame_max, 
 //GO(gst_audio_encoder_get_frame_samples_max, 
@@ -124,34 +124,35 @@ GO(gst_audio_converter_update_config, iFpiip)
 //GO(gst_audio_encoder_get_mark_granule, 
 //GO(gst_audio_encoder_get_perfect_timestamp, 
 //GO(gst_audio_encoder_get_tolerance, 
-//GO(gst_audio_encoder_get_type, 
-//GO(gst_audio_encoder_merge_tags, 
+GO(gst_audio_encoder_get_type, LFv)
+GO(gst_audio_encoder_merge_tags, vFppi)
 //GO(gst_audio_encoder_negotiate, 
 //GO(gst_audio_encoder_proxy_getcaps, 
 //GO(gst_audio_encoder_set_allocation_caps, 
-//GO(gst_audio_encoder_set_drainable, 
-//GO(gst_audio_encoder_set_frame_max, 
-//GO(gst_audio_encoder_set_frame_samples_max, 
-//GO(gst_audio_encoder_set_frame_samples_min, 
+GO(gst_audio_encoder_set_drainable, vFpi)
+GO(gst_audio_encoder_set_frame_max, vFpi)
+GO(gst_audio_encoder_set_frame_samples_max, vFpi)
+GO(gst_audio_encoder_set_frame_samples_min, vFpi)
 //GO(gst_audio_encoder_set_hard_min, 
 //GO(gst_audio_encoder_set_hard_resync, 
 //GO(gst_audio_encoder_set_headers, 
 //GO(gst_audio_encoder_set_latency, 
 //GO(gst_audio_encoder_set_lookahead, 
 //GO(gst_audio_encoder_set_mark_granule, 
-//GO(gst_audio_encoder_set_output_format, 
+GO(gst_audio_encoder_set_output_format, iFpp)
 //GO(gst_audio_encoder_set_perfect_timestamp, 
 //GO(gst_audio_encoder_set_tolerance, 
 //GO(gst_audio_filter_class_add_pad_templates, 
 //GO(gst_audio_filter_get_type, 
 //GO(gst_audio_flags_get_type, 
 GO(gst_audio_format_build_integer, uFiiii)
-//GO(gst_audio_format_fill_silence, 
+GO(gst_audio_format_fill_silence, vFppL)
 //GO(gst_audio_format_flags_get_type, 
 GO(gst_audio_format_from_string, uFp)
 //GO(gst_audio_format_get_info, 
 //GO(gst_audio_format_get_type, 
-//GO(gst_audio_format_info_get_type, 
+GO(gst_audio_format_info_fill_silence, vFppL)
+GO(gst_audio_format_info_get_type, LFv)
 GO(gst_audio_formats_raw, pFp)
 GO(gst_audio_format_to_string, pFu)
 GO(gst_audio_get_channel_reorder_map, iFippp)
@@ -244,7 +245,7 @@ GO(gst_audio_stream_align_set_discont_wait, vFpL)
 GO(gst_audio_stream_align_set_rate, vFpi)
 GO(gst_buffer_add_audio_clipping_meta, pFpuLL)
 GO(gst_buffer_add_audio_downmix_meta, pFppipip)
-//GO(gst_buffer_add_audio_meta, 
+GO(gst_buffer_add_audio_meta, pFppLp)
 GO(gst_buffer_get_audio_downmix_meta_for_channels, pFppi)
 GO(gst_stream_volume_convert_volume, dFuud)
 GO(gst_stream_volume_get_mute, iFp)
diff --git a/src/wrapped/wrappedgstbase.c b/src/wrapped/wrappedgstbase.c
index 266ef86a..47c8f8a3 100644
--- a/src/wrapped/wrappedgstbase.c
+++ b/src/wrapped/wrappedgstbase.c
@@ -11,12 +11,230 @@
 #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"
+#include "gtkclass.h"
+#include "fileutils.h"
 
 const char* gstbaseName = "libgstbase-1.0.so.0";
 #define LIBNAME gstbase
 
+typedef size_t  (*LFv_t)();
+
+#define ADDED_FUNCTIONS()                   \
+    GO(gst_base_transform_get_type, LFv_t)  \
+    GO(gst_base_sink_get_type, LFv_t)       \
+    GO(gst_aggregator_get_type, LFv_t)      \
+    GO(gst_push_src_get_type, LFv_t)        \
+    GO(gst_base_src_get_type, LFv_t)        \
+    GO(gst_aggregator_pad_get_type, LFv_t)  \
+
+#include "generated/wrappedgstbasetypes.h"
+
+#include "wrappercallback.h"
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)
+
+// GstCollectPadsFunction ...
+#define GO(A)   \
+static uintptr_t my_GstCollectPadsFunction_fct_##A = 0;                     \
+static int my_GstCollectPadsFunction_##A(void* a, void* b)                  \
+{                                                                           \
+    return RunFunctionFmt(my_GstCollectPadsFunction_fct_##A, "pp", a, b);   \
+}
+SUPER()
+#undef GO
+static void* findGstCollectPadsFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_GstCollectPadsFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstCollectPadsFunction_fct_##A == 0) {my_GstCollectPadsFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsFunction callback\n");
+    return NULL;
+}
+// GstCollectDataDestroyNotify ...
+#define GO(A)   \
+static uintptr_t my_GstCollectDataDestroyNotify_fct_##A = 0;        \
+static void my_GstCollectDataDestroyNotify_##A(void* a)             \
+{                                                                   \
+    RunFunctionFmt(my_GstCollectDataDestroyNotify_fct_##A, "p", a); \
+}
+SUPER()
+#undef GO
+static void* findGstCollectDataDestroyNotifyFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_GstCollectDataDestroyNotify_fct_##A == (uintptr_t)fct) return my_GstCollectDataDestroyNotify_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstCollectDataDestroyNotify_fct_##A == 0) {my_GstCollectDataDestroyNotify_fct_##A = (uintptr_t)fct; return my_GstCollectDataDestroyNotify_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectDataDestroyNotify callback\n");
+    return NULL;
+}
+// GstCollectPadsEventFunction ...
+#define GO(A)   \
+static uintptr_t my_GstCollectPadsEventFunction_fct_##A = 0;                            \
+static int my_GstCollectPadsEventFunction_##A(void* a, void* b, void* c, void* d)       \
+{                                                                                       \
+    return RunFunctionFmt(my_GstCollectPadsEventFunction_fct_##A, "pppp", a, b, c, d);  \
+}
+SUPER()
+#undef GO
+static void* findGstCollectPadsEventFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_GstCollectPadsEventFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsEventFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstCollectPadsEventFunction_fct_##A == 0) {my_GstCollectPadsEventFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsEventFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsEventFunction callback\n");
+    return NULL;
+}
+// GstCollectPadsQueryFunction ...
+#define GO(A)   \
+static uintptr_t my_GstCollectPadsQueryFunction_fct_##A = 0;                            \
+static int my_GstCollectPadsQueryFunction_##A(void* a, void* b, void* c, void* d)       \
+{                                                                                       \
+    return RunFunctionFmt(my_GstCollectPadsQueryFunction_fct_##A, "pppp", a, b, c, d);  \
+}
+SUPER()
+#undef GO
+static void* findGstCollectPadsQueryFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_GstCollectPadsQueryFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsQueryFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstCollectPadsQueryFunction_fct_##A == 0) {my_GstCollectPadsQueryFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsQueryFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsQueryFunction callback\n");
+    return NULL;
+}
+// GstCollectPadsClipFunction ...
+#define GO(A)   \
+static uintptr_t my_GstCollectPadsClipFunction_fct_##A = 0;                                 \
+static int my_GstCollectPadsClipFunction_##A(void* a, void* b, void* c, void* d, void* e)   \
+{                                                                                           \
+    return RunFunctionFmt(my_GstCollectPadsClipFunction_fct_##A, "ppppp", a, b, c, d, e);   \
+}
+SUPER()
+#undef GO
+static void* findGstCollectPadsClipFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_GstCollectPadsClipFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsClipFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstCollectPadsClipFunction_fct_##A == 0) {my_GstCollectPadsClipFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsClipFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsClipFunction callback\n");
+    return NULL;
+}
+// GstCollectPadsBufferFunction ...
+#define GO(A)   \
+static uintptr_t my_GstCollectPadsBufferFunction_fct_##A = 0;                           \
+static int my_GstCollectPadsBufferFunction_##A(void* a, void* b, void* c, void* d)      \
+{                                                                                       \
+    return RunFunctionFmt(my_GstCollectPadsBufferFunction_fct_##A, "pppp", a, b, c, d); \
+}
+SUPER()
+#undef GO
+static void* findGstCollectPadsBufferFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_GstCollectPadsBufferFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsBufferFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstCollectPadsBufferFunction_fct_##A == 0) {my_GstCollectPadsBufferFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsBufferFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsBufferFunction callback\n");
+    return NULL;
+}
+
+#undef SUPER
+
+EXPORT void my_gst_collect_pads_set_function(x64emu_t* emu, void* p, void* f, void* data)
+{
+    my->gst_collect_pads_set_function(p, findGstCollectPadsFunctionFct(f), data);
+}
+
+EXPORT void* my_gst_collect_pads_add_pad(x64emu_t* emu, void* pads, void* pad, uint32_t size, void* d, int lock)
+{
+    return my->gst_collect_pads_add_pad(pads, pad, size, findGstCollectDataDestroyNotifyFct(d), lock);
+}
+
+EXPORT void my_gst_collect_pads_set_event_function(x64emu_t* emu, void* pads, void* f, void* data)
+{
+    my->gst_collect_pads_set_event_function(pads, findGstCollectPadsEventFunctionFct(f), data);
+}
+
+EXPORT void my_gst_collect_pads_set_query_function(x64emu_t* emu, void* pads, void* f, void* data)
+{
+    my->gst_collect_pads_set_query_function(pads, findGstCollectPadsQueryFunctionFct(f), data);
+}
+
+EXPORT void my_gst_collect_pads_set_clip_function(x64emu_t* emu, void* pads, void* f, void* data)
+{
+    my->gst_collect_pads_set_clip_function(pads, findGstCollectPadsClipFunctionFct(f), data);
+}
+
+EXPORT void my_gst_collect_pads_set_buffer_function(x64emu_t* emu, void* pads, void* f, void* data)
+{
+    my->gst_collect_pads_set_buffer_function(pads, findGstCollectPadsBufferFunctionFct(f), data);
+}
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
 
+#define CUSTOM_INIT \
+    getMy(lib);     \
+    SetGstBaseTransformID(my->gst_base_transform_get_type());\
+    SetGstBaseSinkID(my->gst_base_sink_get_type());\
+    SetGstAggregatorID(my->gst_aggregator_get_type());\
+    SetGstPushSrcID(my->gst_push_src_get_type());\
+    SetGstBaseSrcID(my->gst_base_src_get_type());\
+    SetGstAggregatorPadID(my->gst_aggregator_pad_get_type());\
+    setNeededLibs(lib, 1, "libgstreamer-1.0.so.0");
+
+#define CUSTOM_FINI \
+    freeMy();
+
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstbase_private.h b/src/wrapped/wrappedgstbase_private.h
index f203a1b5..68b52422 100644
--- a/src/wrapped/wrappedgstbase_private.h
+++ b/src/wrapped/wrappedgstbase_private.h
@@ -2,9 +2,9 @@
 #error meh!
 #endif
 
-//GO(gst_adapter_available, 
+GO(gst_adapter_available, LFp)
 GO(gst_adapter_available_fast, LFp)
-//GO(gst_adapter_clear, 
+GO(gst_adapter_clear, vFp)
 GO(gst_adapter_copy, vFppLL)
 GO(gst_adapter_copy_bytes, pFpLL)
 GO(gst_adapter_distance_from_discont, LFp)
@@ -14,7 +14,7 @@ GO(gst_adapter_flush, vFpL)
 GO(gst_adapter_get_buffer_fast, pFpL)
 GO(gst_adapter_get_buffer_list, pFpL)
 GO(gst_adapter_get_list, pFpL)
-//GO(gst_adapter_get_type, 
+GO(gst_adapter_get_type, LFv)
 GO(gst_adapter_map, pFpL)
 GO(gst_adapter_masked_scan_uint32, lFpuuLL)
 GO(gst_adapter_masked_scan_uint32_peek, lFpuuLLp)
@@ -28,20 +28,20 @@ GO(gst_adapter_prev_offset, LFpp)
 //GO(gst_adapter_pts_at_discont, 
 GO(gst_adapter_push, vFpp)
 GO(gst_adapter_take, pFpL)
-//GO(gst_adapter_take_buffer, 
+GO(gst_adapter_take_buffer, pFpL)
 //GO(gst_adapter_take_buffer_fast, 
 //GO(gst_adapter_take_buffer_list, 
 //GO(gst_adapter_take_list, 
-//GO(gst_adapter_unmap, 
-//GO(gst_aggregator_finish_buffer, 
+GO(gst_adapter_unmap, vFp)
+GO(gst_aggregator_finish_buffer, iFpp)
 //GO(gst_aggregator_finish_buffer_list, 
 //GO(gst_aggregator_get_allocator, 
 //GO(gst_aggregator_get_buffer_pool, 
 //GO(gst_aggregator_get_latency, 
-//GO(gst_aggregator_get_type, 
+GO(gst_aggregator_get_type, LFv)
 //GO(gst_aggregator_negotiate, 
 //GO(gst_aggregator_pad_drop_buffer, 
-//GO(gst_aggregator_pad_get_type, 
+GO(gst_aggregator_pad_get_type, LFv)
 //GO(gst_aggregator_pad_has_buffer, 
 //GO(gst_aggregator_pad_is_eos, 
 //GO(gst_aggregator_pad_peek_buffer, 
@@ -89,7 +89,7 @@ GO(gst_adapter_take, pFpL)
 //GO(gst_base_sink_get_sync, 
 //GO(gst_base_sink_get_throttle_time, 
 //GO(gst_base_sink_get_ts_offset, 
-//GO(gst_base_sink_get_type, 
+GO(gst_base_sink_get_type, LFv)
 //GO(gst_base_sink_is_async_enabled, 
 //GO(gst_base_sink_is_last_sample_enabled, 
 //GO(gst_base_sink_is_qos_enabled, 
@@ -110,44 +110,44 @@ GO(gst_adapter_take, pFpL)
 //GO(gst_base_sink_wait_clock, 
 //GO(gst_base_sink_wait_preroll, 
 //GO(gst_base_src_get_allocator, 
-//GO(gst_base_src_get_blocksize, 
+GO(gst_base_src_get_blocksize, uFp)
 //GO(gst_base_src_get_buffer_pool, 
 //GO(gst_base_src_get_do_timestamp, 
-//GO(gst_base_src_get_type, 
+GO(gst_base_src_get_type, LFv)
 //GO(gst_base_src_is_async, 
-//GO(gst_base_src_is_live, 
+GO(gst_base_src_is_live, iFp)
 //GO(gst_base_src_negotiate, 
 //GO(gst_base_src_new_seamless_segment, 
 //GO(gst_base_src_new_segment, 
 //GO(gst_base_src_query_latency, 
 //GO(gst_base_src_set_async, 
-//GO(gst_base_src_set_automatic_eos, 
-//GO(gst_base_src_set_blocksize, 
-//GO(gst_base_src_set_caps, 
+GO(gst_base_src_set_automatic_eos, vFpi)
+GO(gst_base_src_set_blocksize, vFpu)
+GO(gst_base_src_set_caps, iFpp)
 //GO(gst_base_src_set_do_timestamp, 
 //GO(gst_base_src_set_dynamic_size, 
 //GO(gst_base_src_set_format, 
-//GO(gst_base_src_set_live, 
+GO(gst_base_src_set_live, vFpi)
 //GO(gst_base_src_start_complete, 
 //GO(gst_base_src_start_wait, 
 //GO(gst_base_src_submit_buffer_list, 
 //GO(gst_base_src_wait_playing, 
 //GO(gst_base_transform_get_allocator, 
 //GO(gst_base_transform_get_buffer_pool, 
-//GO(gst_base_transform_get_type, 
+GO(gst_base_transform_get_type, LFv)
 //GO(gst_base_transform_is_in_place, 
-//GO(gst_base_transform_is_passthrough, 
+GO(gst_base_transform_is_passthrough, iFp)
 //GO(gst_base_transform_is_qos_enabled, 
 //GO(gst_base_transform_reconfigure, 
 //GO(gst_base_transform_reconfigure_sink, 
-//GO(gst_base_transform_reconfigure_src, 
-//GO(gst_base_transform_set_gap_aware, 
-//GO(gst_base_transform_set_in_place, 
-//GO(gst_base_transform_set_passthrough, 
-//GO(gst_base_transform_set_prefer_passthrough, 
+GO(gst_base_transform_reconfigure_src, vFp)
+GO(gst_base_transform_set_gap_aware, vFpi)
+GO(gst_base_transform_set_in_place, vFpi)
+GO(gst_base_transform_set_passthrough, vFpi)
+GO(gst_base_transform_set_prefer_passthrough, vFpi)
 //GO(gst_base_transform_set_qos_enabled, 
 //GO(gst_base_transform_update_qos, 
-//GO(gst_base_transform_update_src_caps, 
+GO(gst_base_transform_update_src_caps, iFpp)
 //GO(gst_bit_reader_free, 
 //GO(gst_bit_reader_get_bits_uint16, 
 //GO(gst_bit_reader_get_bits_uint32, 
@@ -248,18 +248,18 @@ GO(gst_byte_reader_peek_string_utf8, iFpp)
 //GO(gst_byte_reader_peek_uint64_be, 
 //GO(gst_byte_reader_peek_uint64_le, 
 //GO(gst_byte_reader_peek_uint8, 
-//GO(gst_byte_reader_set_pos, 
+GO(gst_byte_reader_set_pos, iFpu)
 //GO(gst_byte_reader_skip, 
 //GO(gst_byte_reader_skip_string_utf16, 
 GO(gst_byte_reader_skip_string_utf32, iFp)
 //GO(gst_byte_reader_skip_string_utf8, 
 //GO(gst_byte_writer_ensure_free_space, 
 //GO(gst_byte_writer_fill, 
-//GO(gst_byte_writer_free, 
-//GO(gst_byte_writer_free_and_get_buffer, 
+GO(gst_byte_writer_free, vFp)
+GO(gst_byte_writer_free_and_get_buffer, pFp)
 //GO(gst_byte_writer_free_and_get_data, 
 GO(gst_byte_writer_get_remaining, uFp)
-//GO(gst_byte_writer_init, 
+GO(gst_byte_writer_init, vFp)
 GO(gst_byte_writer_init_with_data, vFppui)
 GO(gst_byte_writer_init_with_size, vFpui)
 GO(gst_byte_writer_new, pFv)
@@ -294,31 +294,31 @@ GO(gst_byte_writer_put_string_utf8, iFpp)
 GO(gst_byte_writer_reset, vFp)
 GO(gst_byte_writer_reset_and_get_buffer, pFp)
 GO(gst_byte_writer_reset_and_get_data, pFp)
-//GO(gst_collect_pads_add_pad, 
+GOM(gst_collect_pads_add_pad, pFEppupi)
 GO(gst_collect_pads_available, uFp)
-//GO(gst_collect_pads_clip_running_time, 
-//GO(gst_collect_pads_event_default, 
+GO(gst_collect_pads_clip_running_time, iFppppp)
+GO(gst_collect_pads_event_default, iFpppi)
 //GO(gst_collect_pads_flush, 
 //GO(gst_collect_pads_get_type, 
 GO(gst_collect_pads_new, pFv)
-//GO(gst_collect_pads_peek, 
-//GO(gst_collect_pads_pop, 
-//GO(gst_collect_pads_query_default, 
+GO(gst_collect_pads_peek, pFpp)
+GO(gst_collect_pads_pop, pFpp)
+GO(gst_collect_pads_query_default, iFpppi)
 //GO(gst_collect_pads_read_buffer, 
-//GO(gst_collect_pads_remove_pad, 
-//GO(gst_collect_pads_set_buffer_function, 
-//GO(gst_collect_pads_set_clip_function, 
+GO(gst_collect_pads_remove_pad, iFpp)
+GOM(gst_collect_pads_set_buffer_function, vFEppp)
+GOM(gst_collect_pads_set_clip_function, vFEppp)
 //GO(gst_collect_pads_set_compare_function, 
-//GO(gst_collect_pads_set_event_function, 
+GOM(gst_collect_pads_set_event_function, vFEppp)
 //GO(gst_collect_pads_set_flush_function, 
 GO(gst_collect_pads_set_flushing, vFpi)
-//GO(gst_collect_pads_set_function, 
-//GO(gst_collect_pads_set_query_function, 
-//GO(gst_collect_pads_set_waiting, 
+GOM(gst_collect_pads_set_function, vFEppp)
+GOM(gst_collect_pads_set_query_function, vFEppp)
+GO(gst_collect_pads_set_waiting, vFppi)
 //GO(gst_collect_pads_src_event_default, 
-//GO(gst_collect_pads_start, 
-//GO(gst_collect_pads_stop, 
-//GO(gst_collect_pads_take_buffer, 
+GO(gst_collect_pads_start, vFp)
+GO(gst_collect_pads_stop, vFp)
+GO(gst_collect_pads_take_buffer, pFppu)
 GO(gst_data_queue_drop_head, iFpL)
 //GO(gst_data_queue_flush, 
 GO(gst_data_queue_get_level, vFpp)
@@ -332,17 +332,17 @@ GO(gst_data_queue_peek, iFpp)
 //GO(gst_data_queue_push, 
 //GO(gst_data_queue_push_force, 
 GO(gst_data_queue_set_flushing, vFpi)
-//GO(gst_flow_combiner_add_pad, 
-//GO(gst_flow_combiner_clear, 
-//GO(gst_flow_combiner_free, 
-//GO(gst_flow_combiner_get_type, 
+GO(gst_flow_combiner_add_pad, vFpp)
+GO(gst_flow_combiner_clear, vFp)
+GO(gst_flow_combiner_free, vFp)
+GO(gst_flow_combiner_get_type, LFv)
 GO(gst_flow_combiner_new, pFv)
 GO(gst_flow_combiner_ref, pFp)
-//GO(gst_flow_combiner_remove_pad, 
-//GO(gst_flow_combiner_reset, 
+GO(gst_flow_combiner_remove_pad, vFpp)
+GO(gst_flow_combiner_reset, vFp)
 //GO(gst_flow_combiner_unref, 
 GO(gst_flow_combiner_update_flow, iFpi)
-//GO(gst_flow_combiner_update_pad_flow, 
+GO(gst_flow_combiner_update_pad_flow, iFppi)
 GO(gst_push_src_get_type, LFv)
 GO(gst_queue_array_clear, vFp)
 //GO(gst_queue_array_drop_element, 
@@ -367,7 +367,7 @@ GO(gst_queue_array_peek_tail_struct, pFp)
 GO(gst_queue_array_push_tail_struct, vFpp)
 //GO(gst_queue_array_set_clear_func, 
 //GO(gst_type_find_helper, 
-//GO(gst_type_find_helper_for_buffer, 
+GO(gst_type_find_helper_for_buffer, pFppp)
 //GO(gst_type_find_helper_for_buffer_with_extension, 
 //GO(gst_type_find_helper_for_data, 
 GO(gst_type_find_helper_for_data_with_extension, pFppLpp)
diff --git a/src/wrapped/wrappedgstcheck.c b/src/wrapped/wrappedgstcheck.c
new file mode 100644
index 00000000..e7fe36b8
--- /dev/null
+++ b/src/wrapped/wrappedgstcheck.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstcheckName = "libgstcheck-1.0.so.0";
+#define LIBNAME gstcheck
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstcheck_private.h b/src/wrapped/wrappedgstcheck_private.h
new file mode 100644
index 00000000..b2f2bfc0
--- /dev/null
+++ b/src/wrapped/wrappedgstcheck_private.h
@@ -0,0 +1,203 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+//DATAB(buffers, 
+//DATAB(check_cond, 
+//DATAB(check_debug, 
+//GO(check_fork, 
+//DATAB(check_major_version, 
+//DATA(check_micro_version, 
+//DATA(check_minor_version, 
+//DATAB(check_mutex, 
+//GO(check_waitpid_and_exit, 
+//GO(_ck_assert_failed, 
+//GO(_fail_unless, 
+//GO(gst_buffer_straw_get_buffer, 
+//GO(gst_buffer_straw_start_pipeline, 
+//GO(gst_buffer_straw_stop_pipeline, 
+//GO(gst_check_abi_list, 
+//GO(gst_check_add_log_filter, 
+//GO(gst_check_buffer_data, 
+//GO(gst_check_caps_equal, 
+//GO(gst_check_chain_func, 
+//GO(gst_check_clear_log_filter, 
+//GO(gst_check_drop_buffers, 
+//GO(gst_check_element_push_buffer, 
+//GO(gst_check_element_push_buffer_list, 
+//DATAB(_gst_check_expecting_log, 
+//GO(gst_check_init, 
+//DATAB(_gst_check_list_tests, 
+//GO(gst_check_message_error, 
+//GO(gst_check_object_destroyed_on_unref, 
+//GO(gst_check_objects_destroyed_on_unref, 
+//DATAB(_gst_check_raised_critical, 
+//DATAB(_gst_check_raised_warning, 
+//GO(gst_check_remove_log_filter, 
+//GO(gst_check_run_suite, 
+//GO(_gst_check_run_test_func, 
+//GO(gst_check_setup_element, 
+//GO(gst_check_setup_events, 
+//GO(gst_check_setup_events_with_stream_id, 
+//GO(gst_check_setup_sink_pad, 
+//GO(gst_check_setup_sink_pad_by_name, 
+//GO(gst_check_setup_sink_pad_by_name_from_template, 
+//GO(gst_check_setup_sink_pad_from_template, 
+//GO(gst_check_setup_src_pad, 
+//GO(gst_check_setup_src_pad_by_name, 
+//GO(gst_check_setup_src_pad_by_name_from_template, 
+//GO(gst_check_setup_src_pad_from_template, 
+//GO(gst_check_teardown_element, 
+//GO(gst_check_teardown_pad_by_name, 
+//GO(gst_check_teardown_sink_pad, 
+//GO(gst_check_teardown_src_pad, 
+//DATAB(_gst_check_threads_running, 
+//GO(gst_consistency_checker_add_pad, 
+//GO(gst_consistency_checker_free, 
+//GO(gst_consistency_checker_new, 
+//GO(gst_consistency_checker_reset, 
+//GO(gst_harness_add_element_full, 
+//GO(gst_harness_add_element_sink_pad, 
+//GO(gst_harness_add_element_src_pad, 
+//GO(gst_harness_add_parse, 
+//GO(gst_harness_add_probe, 
+//GO(gst_harness_add_propose_allocation_meta, 
+//GO(gst_harness_add_sink, 
+//GO(gst_harness_add_sink_harness, 
+//GO(gst_harness_add_sink_parse, 
+//GO(gst_harness_add_src, 
+//GO(gst_harness_add_src_harness, 
+//GO(gst_harness_add_src_parse, 
+//GO(gst_harness_buffers_in_queue, 
+//GO(gst_harness_buffers_received, 
+//GO(gst_harness_crank_multiple_clock_waits, 
+//GO(gst_harness_crank_single_clock_wait, 
+//GO(gst_harness_create_buffer, 
+//GO(gst_harness_dump_to_file, 
+//GO(gst_harness_events_in_queue, 
+//GO(gst_harness_events_received, 
+//GO(gst_harness_find_element, 
+//GO(gst_harness_get, 
+//GO(gst_harness_get_allocator, 
+//GO(gst_harness_get_last_pushed_timestamp, 
+//GO(gst_harness_get_testclock, 
+//GO(gst_harness_new, 
+//GO(gst_harness_new_empty, 
+//GO(gst_harness_new_full, 
+//GO(gst_harness_new_parse, 
+//GO(gst_harness_new_with_element, 
+//GO(gst_harness_new_with_padnames, 
+//GO(gst_harness_new_with_templates, 
+//GO(gst_harness_play, 
+//GO(gst_harness_pull, 
+//GO(gst_harness_pull_event, 
+//GO(gst_harness_pull_until_eos, 
+//GO(gst_harness_pull_upstream_event, 
+//GO(gst_harness_push, 
+//GO(gst_harness_push_and_pull, 
+//GO(gst_harness_push_event, 
+//GO(gst_harness_push_from_src, 
+//GO(gst_harness_push_to_sink, 
+//GO(gst_harness_push_upstream_event, 
+//GO(gst_harness_query_latency, 
+//GO(gst_harness_set, 
+//GO(gst_harness_set_blocking_push_mode, 
+//GO(gst_harness_set_caps, 
+//GO(gst_harness_set_caps_str, 
+//GO(gst_harness_set_drop_buffers, 
+//GO(gst_harness_set_forwarding, 
+//GO(gst_harness_set_live, 
+//GO(gst_harness_set_propose_allocator, 
+//GO(gst_harness_set_sink_caps, 
+//GO(gst_harness_set_sink_caps_str, 
+//GO(gst_harness_set_src_caps, 
+//GO(gst_harness_set_src_caps_str, 
+//GO(gst_harness_set_time, 
+//GO(gst_harness_set_upstream_latency, 
+//GO(gst_harness_sink_push_many, 
+//GO(gst_harness_src_crank_and_push_many, 
+//GO(gst_harness_src_push_event, 
+//GO(gst_harness_stress_custom_start, 
+//GO(gst_harness_stress_property_start_full, 
+//GO(gst_harness_stress_push_buffer_start_full, 
+//GO(gst_harness_stress_push_buffer_with_cb_start_full, 
+//GO(gst_harness_stress_push_event_start_full, 
+//GO(gst_harness_stress_push_event_with_cb_start_full, 
+//GO(gst_harness_stress_push_upstream_event_start_full, 
+//GO(gst_harness_stress_push_upstream_event_with_cb_start_full, 
+//GO(gst_harness_stress_requestpad_start_full, 
+//GO(gst_harness_stress_statechange_start_full, 
+//GO(gst_harness_stress_thread_stop, 
+//GO(gst_harness_take_all_data, 
+//GO(gst_harness_take_all_data_as_buffer, 
+//GO(gst_harness_take_all_data_as_bytes, 
+//GO(gst_harness_teardown, 
+//GO(gst_harness_try_pull, 
+//GO(gst_harness_try_pull_event, 
+//GO(gst_harness_try_pull_upstream_event, 
+//GO(gst_harness_upstream_events_in_queue, 
+//GO(gst_harness_upstream_events_received, 
+//GO(gst_harness_use_systemclock, 
+//GO(gst_harness_use_testclock, 
+//GO(gst_harness_wait_for_clock_id_waits, 
+//GO(gst_test_clock_advance_time, 
+//GO(gst_test_clock_crank, 
+//GO(gst_test_clock_get_next_entry_time, 
+GO(gst_test_clock_get_type, LFv)
+//GO(gst_test_clock_has_id, 
+//GO(gst_test_clock_id_list_get_latest_time, 
+//GO(gst_test_clock_new, 
+//GO(gst_test_clock_new_with_start_time, 
+//GO(gst_test_clock_peek_id_count, 
+//GO(gst_test_clock_peek_next_pending_id, 
+//GO(gst_test_clock_process_id, 
+//GO(gst_test_clock_process_id_list, 
+//GO(gst_test_clock_process_next_clock_id, 
+//GO(gst_test_clock_set_time, 
+//GO(gst_test_clock_timed_wait_for_multiple_pending_ids, 
+//GO(gst_test_clock_wait_for_multiple_pending_ids, 
+//GO(gst_test_clock_wait_for_next_pending_id, 
+//GO(gst_test_clock_wait_for_pending_id_count, 
+//GO(_mark_point, 
+//DATAB(mutex, 
+//GO(srunner_add_suite, 
+//GO(srunner_create, 
+//GO(srunner_failures, 
+//GO(srunner_fork_status, 
+//GO(srunner_free, 
+//GO(srunner_has_log, 
+//GO(srunner_has_tap, 
+//GO(srunner_has_xml, 
+//GO(srunner_log_fname, 
+//GO(srunner_ntests_failed, 
+//GO(srunner_ntests_run, 
+//GO(srunner_print, 
+//GO(srunner_results, 
+//GO(srunner_run, 
+//GO(srunner_run_all, 
+//GO(srunner_run_tagged, 
+//GO(srunner_set_fork_status, 
+//GO(srunner_set_log, 
+//GO(srunner_set_tap, 
+//GO(srunner_set_xml, 
+//GO(srunner_tap_fname, 
+//GO(srunner_xml_fname, 
+//DATAB(start_cond, 
+//GO(suite_add_tcase, 
+//GO(suite_create, 
+//GO(suite_tcase, 
+//DATAB(sync_cond, 
+//GO(tcase_add_checked_fixture, 
+//GO(_tcase_add_test, 
+//GO(tcase_add_unchecked_fixture, 
+//GO(tcase_create, 
+//GO(tcase_fn_start, 
+//GO(tcase_set_tags, 
+//GO(tcase_set_timeout, 
+//DATAB(thread_list, 
+//GO(tr_ctx, 
+//GO(tr_lfile, 
+//GO(tr_lno, 
+//GO(tr_msg, 
+//GO(tr_rtype, 
+//GO(tr_tcname, 
diff --git a/src/wrapped/wrappedgstcontroller.c b/src/wrapped/wrappedgstcontroller.c
new file mode 100644
index 00000000..a6da1b3d
--- /dev/null
+++ b/src/wrapped/wrappedgstcontroller.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstcontrollerName = "libgstcontroller-1.0.so.0";
+#define LIBNAME gstcontroller
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstcontroller_private.h b/src/wrapped/wrappedgstcontroller_private.h
new file mode 100644
index 00000000..0cbde97f
--- /dev/null
+++ b/src/wrapped/wrappedgstcontroller_private.h
@@ -0,0 +1,31 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(gst_argb_control_binding_get_type, LFv)
+//GO(gst_argb_control_binding_new, 
+//GO(gst_control_point_copy, 
+//GO(gst_control_point_free, 
+GO(gst_control_point_get_type, LFv)
+GO(gst_direct_control_binding_get_type, LFv)
+//GO(gst_direct_control_binding_new, 
+//GO(gst_direct_control_binding_new_absolute, 
+GO(gst_interpolation_control_source_get_type, LFv)
+//GO(gst_interpolation_control_source_new, 
+GO(gst_interpolation_mode_get_type, LFv)
+GO(gst_lfo_control_source_get_type, LFv)
+//GO(gst_lfo_control_source_new, 
+GO(gst_lfo_waveform_get_type, LFv)
+GO(gst_proxy_control_binding_get_type, LFv)
+GO(gst_proxy_control_binding_new, pFpppp)
+//GO(gst_timed_value_control_invalidate_cache, 
+//GO(gst_timed_value_control_source_find_control_point_iter, 
+//GO(gst_timed_value_control_source_get_all, 
+//GO(gst_timed_value_control_source_get_count, 
+GO(gst_timed_value_control_source_get_type, LFv)
+//GO(gst_timed_value_control_source_set, 
+//GO(gst_timed_value_control_source_set_from_list, 
+//GO(gst_timed_value_control_source_unset, 
+//GO(gst_timed_value_control_source_unset_all, 
+GO(gst_trigger_control_source_get_type, LFv)
+//GO(gst_trigger_control_source_new, 
diff --git a/src/wrapped/wrappedgstfft.c b/src/wrapped/wrappedgstfft.c
new file mode 100644
index 00000000..27e07517
--- /dev/null
+++ b/src/wrapped/wrappedgstfft.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstfftName = "libgstfft-1.0.so.0";
+#define LIBNAME gstfft
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstfft_private.h b/src/wrapped/wrappedgstfft_private.h
new file mode 100644
index 00000000..64934231
--- /dev/null
+++ b/src/wrapped/wrappedgstfft_private.h
@@ -0,0 +1,25 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+//GO(gst_fft_f32_fft, 
+//GO(gst_fft_f32_free, 
+//GO(gst_fft_f32_inverse_fft, 
+//GO(gst_fft_f32_new, 
+//GO(gst_fft_f32_window, 
+//GO(gst_fft_f64_fft, 
+//GO(gst_fft_f64_free, 
+//GO(gst_fft_f64_inverse_fft, 
+//GO(gst_fft_f64_new, 
+//GO(gst_fft_f64_window, 
+//GO(gst_fft_next_fast_length, 
+//GO(gst_fft_s16_fft, 
+//GO(gst_fft_s16_free, 
+//GO(gst_fft_s16_inverse_fft, 
+//GO(gst_fft_s16_new, 
+//GO(gst_fft_s16_window, 
+//GO(gst_fft_s32_fft, 
+//GO(gst_fft_s32_free, 
+//GO(gst_fft_s32_inverse_fft, 
+//GO(gst_fft_s32_new, 
+//GO(gst_fft_s32_window, 
diff --git a/src/wrapped/wrappedgstgl.c b/src/wrapped/wrappedgstgl.c
index bc23c293..9e05326b 100644
--- a/src/wrapped/wrappedgstgl.c
+++ b/src/wrapped/wrappedgstgl.c
@@ -1,7 +1,7 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#define _GNU_SOURCE         /* See feature_test_macros(7) */
 #include <dlfcn.h>
 
 #include "wrappedlibs.h"
@@ -11,12 +11,269 @@
 #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"
+#include "gtkclass.h"
+#include "fileutils.h"
+#include "gltools.h"
 
 const char* gstglName = "libgstgl-1.0.so.0";
 #define LIBNAME gstgl
 
+typedef size_t  (*LFv_t)();
+
+#define ADDED_FUNCTIONS()                   \
+    GO(gst_gl_base_filter_get_type, LFv_t)  \
+    GO(gst_gl_filter_get_type, LFv_t)       \
+    GO(gst_gl_base_src_get_type, LFv_t)     \
+
+#include "generated/wrappedgstgltypes.h"
+
+#include "wrappercallback.h"
+
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)   \
+
+// getprocaddress_with_platform ...
+#define GO(A)   \
+static uint64_t my_getprocaddress_platform_##A = 0;                                                 \
+static void* my_getprocaddress_with_platform_##A(const char* name)                                  \
+{                                                                                                   \
+    int type = my_getprocaddress_platform_##A >> 32;                                                \
+    int api = my_getprocaddress_platform_##A & 0xffffffff;                                          \
+    return my->gst_gl_context_get_proc_address_with_platform(type, api, (void*)name);               \
+}
+SUPER()
+#undef GO
+static glprocaddress_t findGetProcAddressPlatformFct(int type, int gl_api)
+{
+    uint64_t key = (((uint64_t)type)<<32) | (gl_api);
+    #define GO(A) if(my_getprocaddress_platform_##A == key) return my_getprocaddress_with_platform_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_getprocaddress_platform_##A == 0) {my_getprocaddress_platform_##A = key; return my_getprocaddress_with_platform_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstgl gst_gl_context_get_proc_address_with_platform callback\n");
+    return NULL;
+}
+
+// getprocaddress_with_api ...
+#define GO(A)   \
+static int my_getprocaddress_api_##A = 0;                                                           \
+static void* my_getprocaddress_with_api_##A(const char* name)                                       \
+{                                                                                                   \
+    return my->gst_gl_context_default_get_proc_address(my_getprocaddress_api_##A, (void*)name);     \
+}
+SUPER()
+#undef GO
+static glprocaddress_t findGetProcAddressAPIFct(int api)
+{
+    #define GO(A) if(my_getprocaddress_api_##A == api) return my_getprocaddress_with_api_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_getprocaddress_api_##A == 0) {my_getprocaddress_api_##A = api; return my_getprocaddress_with_api_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstgl gst_gl_context_default_get_proc_address callback\n");
+    return NULL;
+}
+// GDestroyFunc ...
+#define GO(A)   \
+static uintptr_t my_destroyfunc_fct_##A = 0;                               \
+static int my_destroyfunc_##A(void* a, void* b)                            \
+{                                                                          \
+    return RunFunctionFmt(my_destroyfunc_fct_##A, "pp", a, b); \
+}
+SUPER()
+#undef GO
+static void* findDestroyFct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_destroyfunc_fct_##A == (uintptr_t)fct) return my_destroyfunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_destroyfunc_fct_##A == 0) {my_destroyfunc_fct_##A = (uintptr_t)fct; return my_destroyfunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstgl GDestroyNotify callback\n");
+    return NULL;
+}
+//GstGLContextThreadFunc
+#define GO(A)   \
+static uintptr_t my_GstGLContextThreadFunc_fct_##A = 0;             \
+static void my_GstGLContextThreadFunc_##A(void* a, void* b)         \
+{                                                                   \
+    RunFunctionFmt(my_GstGLContextThreadFunc_fct_##A, "pp", a, b);  \
+}
+SUPER()
+#undef GO
+static void* findGstGLContextThreadFuncFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstGLContextThreadFunc_fct_##A == (uintptr_t)fct) return my_GstGLContextThreadFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstGLContextThreadFunc_fct_##A == 0) {my_GstGLContextThreadFunc_fct_##A = (uintptr_t)fct; return my_GstGLContextThreadFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstgl GstGLContextThreadFunc callback\n");
+    return NULL;
+}
+//GstGLFilterRenderFunc
+#define GO(A)   \
+static uintptr_t my_GstGLFilterRenderFunc_fct_##A = 0;                              \
+static int my_GstGLFilterRenderFunc_##A(void* a, void* b, void* c)                  \
+{                                                                                   \
+    return (int)RunFunctionFmt(my_GstGLFilterRenderFunc_fct_##A, "ppp", a, b, c);   \
+}
+SUPER()
+#undef GO
+static void* findGstGLFilterRenderFuncFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstGLFilterRenderFunc_fct_##A == (uintptr_t)fct) return my_GstGLFilterRenderFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstGLFilterRenderFunc_fct_##A == 0) {my_GstGLFilterRenderFunc_fct_##A = (uintptr_t)fct; return my_GstGLFilterRenderFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstgl GstGLFilterRenderFunc callback\n");
+    return NULL;
+}
+//GstGLFramebufferFunc
+#define GO(A)   \
+static uintptr_t my_GstGLFramebufferFunc_fct_##A = 0;                       \
+static int my_GstGLFramebufferFunc_##A(void* a)                             \
+{                                                                           \
+    return (int)RunFunctionFmt(my_GstGLFramebufferFunc_fct_##A, "p", a);    \
+}
+SUPER()
+#undef GO
+static void* findGstGLFramebufferFuncFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstGLFramebufferFunc_fct_##A == (uintptr_t)fct) return my_GstGLFramebufferFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstGLFramebufferFunc_fct_##A == 0) {my_GstGLFramebufferFunc_fct_##A = (uintptr_t)fct; return my_GstGLFramebufferFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstgl GstGLFramebufferFunc callback\n");
+    return NULL;
+}
+//GstGLWindowCB
+#define GO(A)   \
+static uintptr_t my_GstGLWindowCB_fct_##A = 0;          \
+static void my_GstGLWindowCB_##A(void* a)               \
+{                                                       \
+    RunFunctionFmt(my_GstGLWindowCB_fct_##A, "p", a);   \
+}
+SUPER()
+#undef GO
+static void* findGstGLWindowCBFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstGLWindowCB_fct_##A == (uintptr_t)fct) return my_GstGLWindowCB_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstGLWindowCB_fct_##A == 0) {my_GstGLWindowCB_fct_##A = (uintptr_t)fct; return my_GstGLWindowCB_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstgl GstGLWindowCB callback\n");
+    return NULL;
+}
+#undef SUPER
+
+EXPORT void* my_gst_gl_context_get_proc_address_with_platform(x64emu_t* emu, int type, int gl_api, const char* name)
+{
+    return getGLProcAddress(emu, findGetProcAddressPlatformFct(type, gl_api), name);
+}
+
+EXPORT void* my_gst_gl_context_default_get_proc_address(x64emu_t* emu, int gl_api, const char* name)
+{
+    return getGLProcAddress(emu, findGetProcAddressAPIFct(gl_api), name);
+}
+
+EXPORT void my_gst_gl_context_thread_add(x64emu_t* emu, void* context, void* f, void* data)
+{
+    my->gst_gl_context_thread_add(context, findGstGLContextThreadFuncFct(f), data);
+}
+
+EXPORT int my_gst_gl_filter_render_to_target(x64emu_t* emu, void* filter, void* input, void* output, void* f, void* data)
+{
+    return my->gst_gl_filter_render_to_target(filter, input, output, findGstGLFilterRenderFuncFct(f), data);
+}
+
+EXPORT int my_gst_gl_framebuffer_draw_to_texture(x64emu_t* emu, void* fb, void* mem, void* f, void* data)
+{
+    return my->gst_gl_framebuffer_draw_to_texture(fb, mem, findGstGLFramebufferFuncFct(f), data);
+}
+
+EXPORT void my_gst_gl_insert_debug_marker(x64emu_t* emu, void* context, void* fmt, uintptr_t* b)
+{
+    #ifdef PREFER_CONVERT_VAARG
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 2);
+    #else
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 2);
+    PREPARE_VALIST;
+    #endif
+    char* buff = NULL;
+    if(vasprintf(&buff, (const char*)fmt, VARARGS)<0)
+        return; // meh
+    my->gst_gl_insert_debug_marker(context, buff);
+    free(buff);
+}
+
+EXPORT void my_gst_gl_window_send_message(x64emu_t* emu, void* window, void* f, void* data)
+{
+    my->gst_gl_window_send_message(window, findGstGLWindowCBFct(f), data);
+}
+
+EXPORT void my_gst_gl_window_set_close_callback(x64emu_t* emu, void* window, void* f, void* data, void* d)
+{
+    my->gst_gl_window_set_close_callback(window, findGstGLWindowCBFct(f), data, findDestroyFct(d));
+}
+
+EXPORT void my_gst_gl_window_set_draw_callback(x64emu_t* emu, void* window, void* f, void* data, void* d)
+{
+    my->gst_gl_window_set_draw_callback(window, findGstGLWindowCBFct(f), data, findDestroyFct(d));
+}
+
+EXPORT void my_gst_gl_window_set_resize_callback(x64emu_t* emu, void* window, void* f, void* data, void* d)
+{
+    my->gst_gl_window_set_resize_callback(window, findGstGLWindowCBFct(f), data, findDestroyFct(d));
+}
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
 
+#define CUSTOM_INIT \
+    getMy(lib);     \
+    SetGstGLBaseFilterID(my->gst_gl_base_filter_get_type());        \
+    SetGstGLFilterID(my->gst_gl_filter_get_type());                 \
+    SetGstGLBaseSrcID(my->gst_gl_base_src_get_type());              \
+    setNeededLibs(lib, 2, "libGL.so.1", "libgstreamer-1.0.so.0");
+
+#define CUSTOM_FINI \
+    freeMy();
+
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstgl_private.h b/src/wrapped/wrappedgstgl_private.h
index 6ca18ccb..92e247cf 100644
--- a/src/wrapped/wrappedgstgl_private.h
+++ b/src/wrapped/wrappedgstgl_private.h
@@ -2,29 +2,29 @@
 #error meh!
 #endif
 
-//GO(gst_buffer_add_gl_sync_meta, 
+GO(gst_buffer_add_gl_sync_meta, pFpp)
 //GO(gst_buffer_add_gl_sync_meta_full, 
 //GO(gst_buffer_pool_config_get_gl_allocation_params, 
 //GO(gst_buffer_pool_config_set_gl_allocation_params, 
 GO(gst_context_get_gl_display, iFpp)
 GO(gst_context_set_gl_display, vFpp)
 //GO(gst_egl_get_error_string, 
-//GO(gst_egl_image_export_dmabuf, 
+GO(gst_egl_image_export_dmabuf, iFpppp)
 //GO(gst_egl_image_from_dmabuf, 
 //GO(gst_egl_image_from_dmabuf_direct, 
 //GO(gst_egl_image_from_dmabuf_direct_target, 
-//GO(gst_egl_image_from_texture, 
+GO(gst_egl_image_from_texture, pFppp)
 //GO(gst_egl_image_get_image, 
-//GO(gst_egl_image_get_type, 
+GO(gst_egl_image_get_type, LFv)
 //GO(gst_egl_image_new_wrapped, 
 //GO(gst_gl_allocation_params_copy, 
 //GO(gst_gl_allocation_params_copy_data, 
-//GO(gst_gl_allocation_params_free, 
+GO(gst_gl_allocation_params_free, vFp)
 //GO(gst_gl_allocation_params_free_data, 
-//GO(gst_gl_allocation_params_get_type, 
+GO(gst_gl_allocation_params_get_type, LFv)
 //GO(gst_gl_allocation_params_init, 
 GO(gst_gl_api_from_string, uFp)
-//GO(gst_gl_api_get_type, 
+GO(gst_gl_api_get_type, LFv)
 GO(gst_gl_api_to_string, pFu)
 //GO(gst_gl_async_debug_free, 
 //GO(gst_gl_async_debug_freeze, 
@@ -35,36 +35,36 @@ GO(gst_gl_api_to_string, pFu)
 //GO(gst_gl_async_debug_store_log_msg_valist, 
 //GO(gst_gl_async_debug_thaw, 
 //GO(gst_gl_async_debug_unset, 
-//GO(gst_gl_base_filter_find_gl_context, 
-//GO(gst_gl_base_filter_get_gl_context, 
-//GO(gst_gl_base_filter_get_type, 
-//GO(gst_gl_base_memory_alloc, 
-//GO(gst_gl_base_memory_allocator_get_type, 
+GO(gst_gl_base_filter_find_gl_context, iFp)
+GO(gst_gl_base_filter_get_gl_context, pFp)
+GO(gst_gl_base_filter_get_type, LFv)
+GO(gst_gl_base_memory_alloc, pFpp)
+GO(gst_gl_base_memory_allocator_get_type, LFv)
 //GO(gst_gl_base_memory_alloc_data, 
-//GO(gst_gl_base_memory_error_get_type, 
+GO(gst_gl_base_memory_error_get_type, LFv)
 GO(gst_gl_base_memory_error_quark, uFv)
-//GO(gst_gl_base_memory_get_type, 
+GO(gst_gl_base_memory_get_type, LFv)
 //GO(gst_gl_base_memory_init, 
 //GO(gst_gl_base_memory_init_once, 
 //GO(gst_gl_base_memory_memcpy, 
-//GO(gst_gl_base_memory_transfer_get_type, 
-//GO(gst_gl_base_src_get_type, 
-//GO(gst_gl_buffer_allocation_params_get_type, 
+GO(gst_gl_base_memory_transfer_get_type, LFv)
+GO(gst_gl_base_src_get_type, LFv)
+GO(gst_gl_buffer_allocation_params_get_type, LFv)
 //GO(gst_gl_buffer_allocation_params_new, 
-//GO(gst_gl_buffer_allocator_get_type, 
-//GO(gst_gl_buffer_get_type, 
+GO(gst_gl_buffer_allocator_get_type, LFv)
+GO(gst_gl_buffer_get_type, LFv)
 //GO(gst_gl_buffer_init_once, 
 //GO(gst_gl_buffer_pool_get_gl_allocation_params, 
-//GO(gst_gl_buffer_pool_get_type, 
-//GO(gst_gl_buffer_pool_new, 
+GO(gst_gl_buffer_pool_get_type, LFv)
+GO(gst_gl_buffer_pool_new, pFp)
 GO(gst_gl_check_extension, iFpp)
-//GO(gst_gl_color_convert_decide_allocation, 
-//GO(gst_gl_color_convert_fixate_caps, 
-//GO(gst_gl_color_convert_get_type, 
-//GO(gst_gl_color_convert_new, 
-//GO(gst_gl_color_convert_perform, 
-//GO(gst_gl_color_convert_set_caps, 
-//GO(gst_gl_color_convert_transform_caps, 
+GO(gst_gl_color_convert_decide_allocation, iFpp)
+GO(gst_gl_color_convert_fixate_caps, pFpipp)
+GO(gst_gl_color_convert_get_type, LFv)
+GO(gst_gl_color_convert_new, pFp)
+GO(gst_gl_color_convert_perform, pFpp)
+GO(gst_gl_color_convert_set_caps, iFppp)
+GO(gst_gl_color_convert_transform_caps, pFpipp)
 //DATA(GST_GL_CONFIG_ATTRIB_ALPHA_SIZE_NAME, 
 //DATA(GST_GL_CONFIG_ATTRIB_BLUE_SIZE_NAME, 
 //DATA(GST_GL_CONFIG_ATTRIB_CAVEAT_NAME, 
@@ -88,38 +88,38 @@ GO(gst_gl_check_extension, iFpp)
 //DATA(GST_GL_CONFIG_ATTRIB_SAMPLES_NAME, 
 //DATA(GST_GL_CONFIG_ATTRIB_STENCIL_SIZE_NAME, 
 //DATA(GST_GL_CONFIG_ATTRIB_SURFACE_TYPE_NAME, 
-//GO(gst_gl_config_caveat_get_type, 
+GO(gst_gl_config_caveat_get_type, LFv)
 GO(gst_gl_config_caveat_to_string, pFu)
-//GO(gst_gl_config_surface_type_get_type, 
+GO(gst_gl_config_surface_type_get_type, LFv)
 GO(gst_gl_config_surface_type_to_string, pFu)
 //GO(gst_gl_context_activate, 
 //GO(gst_gl_context_can_share, 
 //GO(gst_gl_context_check_feature, 
 //GO(gst_gl_context_check_framebuffer_status, 
-//GO(gst_gl_context_check_gl_version, 
+GO(gst_gl_context_check_gl_version, iFpiii)
 //GO(gst_gl_context_clear_framebuffer, 
-//GO(gst_gl_context_clear_shader, 
+GO(gst_gl_context_clear_shader, vFp)
 //GO(gst_gl_context_create, 
-GO(gst_gl_context_default_get_proc_address, pFup)
+GOM(gst_gl_context_default_get_proc_address, pFEup)
 //GO(gst_gl_context_destroy, 
-//GO(gst_gl_context_error_get_type, 
+GO(gst_gl_context_error_get_type, LFv)
 //GO(gst_gl_context_error_quark, 
 //GO(gst_gl_context_fill_info, 
 //GO(gst_gl_context_get_config, 
-//GO(gst_gl_context_get_current, 
+GO(gst_gl_context_get_current, pFv)
 GO(gst_gl_context_get_current_gl_api, uFupp)
 GO(gst_gl_context_get_current_gl_context, LFu)
 //GO(gst_gl_context_get_display, 
-//GO(gst_gl_context_get_gl_api, 
+GO(gst_gl_context_get_gl_api, iFp)
 //GO(gst_gl_context_get_gl_context, 
-//GO(gst_gl_context_get_gl_platform, 
+GO(gst_gl_context_get_gl_platform, iFp)
 //GO(gst_gl_context_get_gl_platform_version, 
 //GO(gst_gl_context_get_gl_version, 
 //GO(gst_gl_context_get_proc_address, 
-GO(gst_gl_context_get_proc_address_with_platform, pFuup)
+GOM(gst_gl_context_get_proc_address_with_platform, pFEuup)
 //GO(gst_gl_context_get_thread, 
-//GO(gst_gl_context_get_type, 
-//GO(gst_gl_context_get_window, 
+GO(gst_gl_context_get_type, LFv)
+GO(gst_gl_context_get_window, pFp)
 //GO(gst_gl_context_is_shared, 
 //GO(gst_gl_context_new, 
 //GO(gst_gl_context_new_wrapped, 
@@ -130,100 +130,100 @@ GO(gst_gl_context_get_proc_address_with_platform, pFuup)
 //GO(gst_gl_context_supports_precision, 
 //GO(gst_gl_context_supports_precision_highp, 
 //GO(gst_gl_context_swap_buffers, 
-//GO(gst_gl_context_thread_add, 
+GOM(gst_gl_context_thread_add, vFEppp)
 GO(gst_gl_display_add_context, iFpp)
 GO(gst_gl_display_create_context, iFpppp)
 //GO(gst_gl_display_create_window, 
-//GO(gst_gl_display_egl_device_get_type, 
+GO(gst_gl_display_egl_device_get_type, LFv)
 //GO(gst_gl_display_egl_device_new, 
 //GO(gst_gl_display_egl_device_new_with_egl_device, 
 //GO(gst_gl_display_egl_from_gl_display, 
 //GO(gst_gl_display_egl_get_from_native, 
-//GO(gst_gl_display_egl_get_type, 
+GO(gst_gl_display_egl_get_type, LFv)
 //GO(gst_gl_display_egl_new, 
 //GO(gst_gl_display_egl_new_with_egl_display, 
-//GO(gst_gl_display_filter_gl_api, 
+GO(gst_gl_display_filter_gl_api, vFpi)
 //GO(gst_gl_display_find_window, 
 //GO(gst_gl_display_get_gl_api, 
 //GO(gst_gl_display_get_gl_api_unlocked, 
-//GO(gst_gl_display_get_gl_context_for_thread, 
+GO(gst_gl_display_get_gl_context_for_thread, pFpp)
 //GO(gst_gl_display_get_handle, 
 //GO(gst_gl_display_get_handle_type, 
-//GO(gst_gl_display_get_type, 
+GO(gst_gl_display_get_type, LFv)
 GO(gst_gl_display_new, pFv)
 GO(gst_gl_display_new_with_type, pFi)
 //GO(gst_gl_display_remove_context, 
 //GO(gst_gl_display_remove_window, 
 //GO(gst_gl_display_retrieve_window, 
-//GO(gst_gl_display_type_get_type, 
-//GO(gst_gl_display_wayland_get_type, 
+GO(gst_gl_display_type_get_type, LFv)
+GO(gst_gl_display_wayland_get_type, LFv)
 //GO(gst_gl_display_wayland_new, 
 //GO(gst_gl_display_wayland_new_with_display, 
-//GO(gst_gl_display_x11_get_type, 
+GO(gst_gl_display_x11_get_type, LFv)
 //GO(gst_gl_display_x11_new, 
 //GO(gst_gl_display_x11_new_with_display, 
 //GO(gst_gl_element_propagate_display_context, 
 GO(gst_gl_ensure_element_data, iFppp)
-//GO(gst_gl_filter_add_rgba_pad_templates, 
-//GO(gst_gl_filter_draw_fullscreen_quad, 
-//GO(gst_gl_filter_filter_texture, 
-//GO(gst_gl_filter_get_type, 
-//GO(gst_gl_filter_render_to_target, 
-//GO(gst_gl_filter_render_to_target_with_shader, 
+GO(gst_gl_filter_add_rgba_pad_templates, vFp)
+GO(gst_gl_filter_draw_fullscreen_quad, vFp)
+GO(gst_gl_filter_filter_texture, iFppp)
+GO(gst_gl_filter_get_type, LFv)
+GOM(gst_gl_filter_render_to_target, iFEppppp)
+GO(gst_gl_filter_render_to_target_with_shader, vFpppp)
 //GO(gst_gl_format_from_video_info, 
-//GO(gst_gl_format_get_type, 
+GO(gst_gl_format_get_type, LFv)
 //GO(gst_gl_format_is_supported, 
 GO(gst_gl_format_type_from_sized_gl_format, vFupp)
 GO(gst_gl_format_type_n_bytes, uFuu)
 //GO(gst_gl_framebuffer_attach, 
 //GO(gst_gl_framebuffer_bind, 
-//GO(gst_gl_framebuffer_draw_to_texture, 
+GOM(gst_gl_framebuffer_draw_to_texture, iFEpppp)
 GO(gst_gl_framebuffer_get_effective_dimensions, vFppp)
 GO(gst_gl_framebuffer_get_id, uFp)
-//GO(gst_gl_framebuffer_get_type, 
+GO(gst_gl_framebuffer_get_type, LFv)
 //GO(gst_gl_framebuffer_new, 
-//GO(gst_gl_framebuffer_new_with_default_depth, 
-//GO(gst_gl_get_affine_transformation_meta_as_ndc, 
+GO(gst_gl_framebuffer_new_with_default_depth, pFpuu)
+GO(gst_gl_get_affine_transformation_meta_as_ndc, vFpp)
 //GO(gst_gl_get_plane_data_size, 
 //GO(gst_gl_get_plane_start, 
-//GO(gst_gl_handle_context_query, 
+GO(gst_gl_handle_context_query, iFppppp)
 GO(gst_gl_handle_set_context, iFpppp)
-//GO(gst_gl_insert_debug_marker, 
+GOM(gst_gl_insert_debug_marker, vFppV)
 //GO(gst_gl_memory_allocator_get_default, 
-//GO(gst_gl_memory_allocator_get_type, 
+GO(gst_gl_memory_allocator_get_type, LFv)
 //GO(gst_gl_memory_copy_into, 
 //GO(gst_gl_memory_copy_teximage, 
-//GO(gst_gl_memory_egl_allocator_get_type, 
+GO(gst_gl_memory_egl_allocator_get_type, LFv)
 //GO(gst_gl_memory_egl_get_display, 
 //GO(gst_gl_memory_egl_get_image, 
-//GO(gst_gl_memory_egl_get_type, 
+GO(gst_gl_memory_egl_get_type, LFv)
 //GO(gst_gl_memory_egl_init_once, 
 //GO(gst_gl_memory_get_texture_format, 
-//GO(gst_gl_memory_get_texture_height, 
-//GO(gst_gl_memory_get_texture_id, 
-//GO(gst_gl_memory_get_texture_target, 
-//GO(gst_gl_memory_get_texture_width, 
-//GO(gst_gl_memory_get_type, 
+GO(gst_gl_memory_get_texture_height, iFp)
+GO(gst_gl_memory_get_texture_id, uFp)
+GO(gst_gl_memory_get_texture_target, iFp)
+GO(gst_gl_memory_get_texture_width, iFp)
+GO(gst_gl_memory_get_type, LFv)
 //GO(gst_gl_memory_init, 
 //GO(gst_gl_memory_init_once, 
-//GO(gst_gl_memory_pbo_allocator_get_type, 
+GO(gst_gl_memory_pbo_allocator_get_type, LFv)
 //GO(gst_gl_memory_pbo_copy_into_texture, 
-//GO(gst_gl_memory_pbo_download_transfer, 
-//GO(gst_gl_memory_pbo_get_type, 
+GO(gst_gl_memory_pbo_download_transfer, vFp)
+GO(gst_gl_memory_pbo_get_type, LFv)
 //GO(gst_gl_memory_pbo_init_once, 
 //GO(gst_gl_memory_pbo_upload_transfer, 
 //GO(gst_gl_memory_read_pixels, 
 //GO(gst_gl_memory_setup_buffer, 
 //GO(gst_gl_memory_texsubimage, 
 GO(gst_gl_multiply_matrix4, vFppp)
-//GO(gst_gl_overlay_compositor_add_caps, 
-//GO(gst_gl_overlay_compositor_draw_overlays, 
-//GO(gst_gl_overlay_compositor_free_overlays, 
+GO(gst_gl_overlay_compositor_add_caps, pFp)
+GO(gst_gl_overlay_compositor_draw_overlays, vFp)
+GO(gst_gl_overlay_compositor_free_overlays, vFp)
 GO(gst_gl_overlay_compositor_get_type, LFv)
-//GO(gst_gl_overlay_compositor_new, 
-//GO(gst_gl_overlay_compositor_upload_overlays, 
+GO(gst_gl_overlay_compositor_new, pFp)
+GO(gst_gl_overlay_compositor_upload_overlays, vFpp)
 GO(gst_gl_platform_from_string, uFp)
-//GO(gst_gl_platform_get_type, 
+GO(gst_gl_platform_get_type, LFv)
 GO(gst_gl_platform_to_string, pFu)
 //GO(gst_gl_query_counter, 
 //GO(gst_gl_query_end, 
@@ -233,39 +233,39 @@ GO(gst_gl_query_local_gl_context, iFpup)
 //GO(gst_gl_query_new, 
 //GO(gst_gl_query_result, 
 //GO(gst_gl_query_start, 
-//GO(gst_gl_query_type_get_type, 
+GO(gst_gl_query_type_get_type, LFv)
 //GO(gst_gl_query_unset, 
-//GO(gst_gl_renderbuffer_allocation_params_get_type, 
+GO(gst_gl_renderbuffer_allocation_params_get_type, LFv)
 //GO(gst_gl_renderbuffer_allocation_params_new, 
 //GO(gst_gl_renderbuffer_allocation_params_new_wrapped, 
-//GO(gst_gl_renderbuffer_allocator_get_type, 
+GO(gst_gl_renderbuffer_allocator_get_type, LFv)
 //GO(gst_gl_renderbuffer_get_format, 
 //GO(gst_gl_renderbuffer_get_height, 
 //GO(gst_gl_renderbuffer_get_id, 
-//GO(gst_gl_renderbuffer_get_type, 
+GO(gst_gl_renderbuffer_get_type, LFv)
 //GO(gst_gl_renderbuffer_get_width, 
 GO(gst_gl_renderbuffer_init_once, vFv)
-//GO(gst_gl_set_affine_transformation_meta_from_ndc, 
-//GO(gst_gl_shader_attach, 
-//GO(gst_gl_shader_attach_unlocked, 
-//GO(gst_gl_shader_bind_attribute_location, 
+GO(gst_gl_set_affine_transformation_meta_from_ndc, vFpp)
+GO(gst_gl_shader_attach, iFpp)
+GO(gst_gl_shader_attach_unlocked, iFpp)
+GO(gst_gl_shader_bind_attribute_location, vFpup)
 GO(gst_gl_shader_bind_frag_data_location, vFpup)
-//GO(gst_gl_shader_compile_attach_stage, 
-//GO(gst_gl_shader_detach, 
-//GO(gst_gl_shader_detach_unlocked, 
+GO(gst_gl_shader_compile_attach_stage, iFppp)
+GO(gst_gl_shader_detach, vFpp)
+GO(gst_gl_shader_detach_unlocked, vFpp)
 GO(gst_gl_shader_get_attribute_location, iFpp)
 GO(gst_gl_shader_get_program_handle, iFp)
-//GO(gst_gl_shader_get_type, 
+GO(gst_gl_shader_get_type, LFv)
 GO(gst_gl_shader_is_linked, iFp)
 GO(gst_gl_shader_link, iFpp)
-//GO(gst_gl_shader_new, 
-//GO(gst_gl_shader_new_default, 
-//GO(gst_gl_shader_new_link_with_stages, 
-//GO(gst_gl_shader_new_with_stages, 
+GO(gst_gl_shader_new, pFp)
+GO(gst_gl_shader_new_default, pFpp)
+GO(gst_gl_shader_new_link_with_stages, pFpppppppppppp)  //vaargs
+GO(gst_gl_shader_new_with_stages, pFpppppppppppp)   //vaarg
 //GO(gst_gl_shader_release, 
 //GO(gst_gl_shader_release_unlocked, 
 GO(gst_gl_shader_set_uniform_1f, vFppf)
-//GO(gst_gl_shader_set_uniform_1fv, 
+GO(gst_gl_shader_set_uniform_1fv, vFppup)
 GO(gst_gl_shader_set_uniform_1i, vFppi)
 //GO(gst_gl_shader_set_uniform_1iv, 
 GO(gst_gl_shader_set_uniform_2f, vFppff)
@@ -286,121 +286,121 @@ GO(gst_gl_shader_set_uniform_4iv, vFppup)
 //GO(gst_gl_shader_set_uniform_matrix_3fv, 
 //GO(gst_gl_shader_set_uniform_matrix_3x2fv, 
 //GO(gst_gl_shader_set_uniform_matrix_3x4fv, 
-//GO(gst_gl_shader_set_uniform_matrix_4fv, 
+GO(gst_gl_shader_set_uniform_matrix_4fv, vFppiip)
 //GO(gst_gl_shader_set_uniform_matrix_4x2fv, 
 GO(gst_gl_shader_set_uniform_matrix_4x3fv, vFppiip)
 //DATA(gst_gl_shader_string_fragment_default, 
 //DATA(gst_gl_shader_string_fragment_external_oes_default, 
-//GO(gst_gl_shader_string_fragment_external_oes_get_default, 
-//GO(gst_gl_shader_string_fragment_get_default, 
-//DATA(gst_gl_shader_string_fragment_highp_precision, 
-//DATA(gst_gl_shader_string_fragment_mediump_precision, 
-//GO(gst_gl_shader_string_get_highest_precision, 
-//DATA(gst_gl_shader_string_vertex_default, 
-//DATA(gst_gl_shader_string_vertex_mat4_texture_transform, 
-//DATA(gst_gl_shader_string_vertex_mat4_vertex_transform, 
+GO(gst_gl_shader_string_fragment_external_oes_get_default, pFpii)
+GO(gst_gl_shader_string_fragment_get_default, pFpii)
+DATA(gst_gl_shader_string_fragment_highp_precision, sizeof(void*))
+DATA(gst_gl_shader_string_fragment_mediump_precision, sizeof(void*))
+GO(gst_gl_shader_string_get_highest_precision, pFpii)
+DATA(gst_gl_shader_string_vertex_default, sizeof(void*))
+DATA(gst_gl_shader_string_vertex_mat4_texture_transform, sizeof(void*))
+DATA(gst_gl_shader_string_vertex_mat4_vertex_transform, sizeof(void*))
 GO(gst_gl_shader_use, vFp)
 //GO(gst_gl_sized_gl_format_from_gl_format_type, 
-//GO(gst_glsl_error_get_type, 
-//GO(gst_glsl_error_quark, 
+GO(gst_glsl_error_get_type, LFv)
+GO(gst_glsl_error_quark, pFv)
 GO(gst_glsl_profile_from_string, iFp)
-//GO(gst_glsl_profile_get_type, 
+GO(gst_glsl_profile_get_type, LFv)
 GO(gst_glsl_profile_to_string, pFi)
-//GO(gst_glsl_stage_compile, 
+GO(gst_glsl_stage_compile, iFpp)
 //GO(gst_glsl_stage_get_handle, 
 //GO(gst_glsl_stage_get_profile, 
 //GO(gst_glsl_stage_get_shader_type, 
-//GO(gst_glsl_stage_get_type, 
+GO(gst_glsl_stage_get_type, LFv)
 //GO(gst_glsl_stage_get_version, 
 //GO(gst_glsl_stage_new, 
-//GO(gst_glsl_stage_new_default_fragment, 
-//GO(gst_glsl_stage_new_default_vertex, 
-//GO(gst_glsl_stage_new_with_string, 
-//GO(gst_glsl_stage_new_with_strings, 
+GO(gst_glsl_stage_new_default_fragment, pFp)
+GO(gst_glsl_stage_new_default_vertex, pFp)
+GO(gst_glsl_stage_new_with_string, pFpuiip)
+GO(gst_glsl_stage_new_with_strings, pFpuiiip)
 //GO(gst_glsl_stage_set_strings, 
 GO(gst_glsl_string_get_version_profile, iFppp)
 GO(gst_glsl_version_from_string, uFp)
-//GO(gst_glsl_version_get_type, 
+GO(gst_glsl_version_get_type, LFv)
 //GO(gst_glsl_version_profile_from_string, 
 GO(gst_glsl_version_profile_to_string, pFui)
 GO(gst_glsl_version_to_string, pFu)
-//GO(gst_gl_stereo_downmix_get_type, 
-//GO(gst_gl_stereo_downmix_mode_get_type, 
-//GO(gst_gl_sync_meta_api_get_type, 
+GO(gst_gl_stereo_downmix_get_type, LFv)
+GO(gst_gl_stereo_downmix_mode_get_type, LFv)
+GO(gst_gl_sync_meta_api_get_type, LFv)
 //GO(gst_gl_sync_meta_get_info, 
-//GO(gst_gl_sync_meta_set_sync_point, 
-//GO(gst_gl_sync_meta_wait, 
-//GO(gst_gl_sync_meta_wait_cpu, 
+GO(gst_gl_sync_meta_set_sync_point, vFpp)
+GO(gst_gl_sync_meta_wait, vFpp)
+GO(gst_gl_sync_meta_wait_cpu, vFpp)
 GO(gst_gl_texture_target_from_gl, uFu)
 GO(gst_gl_texture_target_from_string, uFp)
-//GO(gst_gl_texture_target_get_type, 
+GO(gst_gl_texture_target_get_type, LFv)
 GO(gst_gl_texture_target_to_buffer_pool_option, pFu)
 GO(gst_gl_texture_target_to_gl, uFu)
-//GO(gst_gl_texture_target_to_string, 
-//GO(gst_gl_upload_get_caps, 
-//GO(gst_gl_upload_get_input_template_caps, 
-//GO(gst_gl_upload_get_type, 
-//GO(gst_gl_upload_new, 
-//GO(gst_gl_upload_perform_with_buffer, 
-//GO(gst_gl_upload_propose_allocation, 
-//GO(gst_gl_upload_return_get_type, 
-//GO(gst_gl_upload_set_caps, 
-//GO(gst_gl_upload_set_context, 
-//GO(gst_gl_upload_transform_caps, 
+GO(gst_gl_texture_target_to_string, pFi)
+GO(gst_gl_upload_get_caps, vFppp)
+GO(gst_gl_upload_get_input_template_caps, pFv)
+GO(gst_gl_upload_get_type, LFv)
+GO(gst_gl_upload_new, pFp)
+GO(gst_gl_upload_perform_with_buffer, iFppp)
+GO(gst_gl_upload_propose_allocation, vFppp)
+GO(gst_gl_upload_return_get_type, LFv)
+GO(gst_gl_upload_set_caps, iFppp)
+GO(gst_gl_upload_set_context, vFpp)
+GO(gst_gl_upload_transform_caps, pFppipp)
 GO(gst_gl_value_get_texture_target_mask, uFp)
 GO(gst_gl_value_set_texture_target, iFpu)
 //GO(gst_gl_value_set_texture_target_from_mask, 
 GO(gst_gl_version_to_glsl_version, uFuii)
 //GO(gst_gl_video_allocation_params_copy_data, 
 //GO(gst_gl_video_allocation_params_free_data, 
-//GO(gst_gl_video_allocation_params_get_type, 
+GO(gst_gl_video_allocation_params_get_type, LFv)
 //GO(gst_gl_video_allocation_params_init_full, 
-//GO(gst_gl_video_allocation_params_new, 
+GO(gst_gl_video_allocation_params_new, pFpppupii)
 //GO(gst_gl_video_allocation_params_new_wrapped_data, 
 //GO(gst_gl_video_allocation_params_new_wrapped_gl_handle, 
 //GO(gst_gl_video_allocation_params_new_wrapped_texture, 
-//GO(gst_gl_view_convert_fixate_caps, 
-//GO(gst_gl_view_convert_get_output, 
-//GO(gst_gl_view_convert_get_type, 
-//GO(gst_gl_view_convert_new, 
-//GO(gst_gl_view_convert_perform, 
-//GO(gst_gl_view_convert_reset, 
-//GO(gst_gl_view_convert_set_caps, 
-//GO(gst_gl_view_convert_set_context, 
-//GO(gst_gl_view_convert_submit_input_buffer, 
-//GO(gst_gl_view_convert_transform_caps, 
-//GO(gst_gl_window_controls_viewport, 
-//GO(gst_gl_window_draw, 
-//GO(gst_gl_window_error_get_type, 
-//GO(gst_gl_window_error_quark, 
+GO(gst_gl_view_convert_fixate_caps, pFpipp)
+GO(gst_gl_view_convert_get_output, iFpp)
+GO(gst_gl_view_convert_get_type, LFv)
+GO(gst_gl_view_convert_new, pFv)
+GO(gst_gl_view_convert_perform, pFpp)
+GO(gst_gl_view_convert_reset, vFp)
+GO(gst_gl_view_convert_set_caps, iFppp)
+GO(gst_gl_view_convert_set_context, vFpp)
+GO(gst_gl_view_convert_submit_input_buffer, iFpip)
+GO(gst_gl_view_convert_transform_caps, pFpipp)
+GO(gst_gl_window_controls_viewport, iFp)
+GO(gst_gl_window_draw, iFp)
+GO(gst_gl_window_error_get_type, LFv)
+GO(gst_gl_window_error_quark, pFv)
 //GO(gst_gl_window_get_context, 
 //GO(gst_gl_window_get_display, 
-//GO(gst_gl_window_get_surface_dimensions, 
-//GO(gst_gl_window_get_type, 
+GO(gst_gl_window_get_surface_dimensions, vFppp)
+GO(gst_gl_window_get_type, LFv)
 //GO(gst_gl_window_get_window_handle, 
-//GO(gst_gl_window_handle_events, 
+GO(gst_gl_window_handle_events, vFpi)
 //GO(gst_gl_window_has_output_surface, 
 //GO(gst_gl_window_new, 
-//GO(gst_gl_window_queue_resize, 
+GO(gst_gl_window_queue_resize, vFp)
 //GO(gst_gl_window_quit, 
 //GO(gst_gl_window_resize, 
 //GO(gst_gl_window_run, 
 //GO(gst_gl_window_send_key_event, 
-//GO(gst_gl_window_send_message, 
+GOM(gst_gl_window_send_message, vFEppp)
 //GO(gst_gl_window_send_message_async, 
 //GO(gst_gl_window_send_mouse_event, 
 //GO(gst_gl_window_send_scroll_event, 
-//GO(gst_gl_window_set_close_callback, 
-//GO(gst_gl_window_set_draw_callback, 
-//GO(gst_gl_window_set_preferred_size, 
-//GO(gst_gl_window_set_render_rectangle, 
-//GO(gst_gl_window_set_resize_callback, 
-//GO(gst_gl_window_set_window_handle, 
-//GO(gst_gl_window_show, 
+GOM(gst_gl_window_set_close_callback, vFEpppp)
+GOM(gst_gl_window_set_draw_callback, vFEpppp)
+GO(gst_gl_window_set_preferred_size, vFpii)
+GO(gst_gl_window_set_render_rectangle, iFpiiii)
+GOM(gst_gl_window_set_resize_callback, vFEpppp)
+GO(gst_gl_window_set_window_handle, vFpL)
+GO(gst_gl_window_show, vFp)
 //GO(gst_is_gl_base_memory, 
 //GO(gst_is_gl_buffer, 
 //GO(gst_is_gl_memory, 
 //GO(gst_is_gl_memory_egl, 
-//GO(gst_is_gl_memory_pbo, 
+GO(gst_is_gl_memory_pbo, iFp)
 //GO(gst_is_gl_renderbuffer, 
 
diff --git a/src/wrapped/wrappedgstnet.c b/src/wrapped/wrappedgstnet.c
new file mode 100644
index 00000000..68737bde
--- /dev/null
+++ b/src/wrapped/wrappedgstnet.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstnetName = "libgstnet-1.0.so.0";
+#define LIBNAME gstnet
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstnet_private.h b/src/wrapped/wrappedgstnet_private.h
new file mode 100644
index 00000000..03a500cc
--- /dev/null
+++ b/src/wrapped/wrappedgstnet_private.h
@@ -0,0 +1,33 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+//GO(gst_buffer_add_net_address_meta, 
+//GO(gst_buffer_add_net_control_message_meta, 
+//GO(gst_buffer_get_net_address_meta, 
+GO(gst_net_address_meta_api_get_type, LFv)
+//GO(gst_net_address_meta_get_info, 
+GO(gst_net_client_clock_get_type, LFv)
+//GO(gst_net_client_clock_new, 
+GO(gst_net_control_message_meta_api_get_type, LFv)
+//GO(gst_net_control_message_meta_get_info, 
+//GO(gst_net_time_packet_copy, 
+//GO(gst_net_time_packet_free, 
+GO(gst_net_time_packet_get_type, LFv)
+//GO(gst_net_time_packet_new, 
+//GO(gst_net_time_packet_receive, 
+//GO(gst_net_time_packet_send, 
+//GO(gst_net_time_packet_serialize, 
+GO(gst_net_time_provider_get_type, LFv)
+//GO(gst_net_time_provider_new, 
+//GO(gst_net_utils_set_socket_tos, 
+GO(gst_ntp_clock_get_type, LFv)
+//GO(gst_ntp_clock_new, 
+GO(gst_ptp_clock_get_type, LFv)
+//GO(gst_ptp_clock_new, 
+//GO(gst_ptp_deinit, 
+//GO(gst_ptp_init, 
+//GO(gst_ptp_is_initialized, 
+//GO(gst_ptp_is_supported, 
+//GO(gst_ptp_statistics_callback_add, 
+//GO(gst_ptp_statistics_callback_remove, 
diff --git a/src/wrapped/wrappedgstpbutils.c b/src/wrapped/wrappedgstpbutils.c
new file mode 100644
index 00000000..d3694646
--- /dev/null
+++ b/src/wrapped/wrappedgstpbutils.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstpbutilsName = "libgstpbutils-1.0.so.0";
+#define LIBNAME gstpbutils
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstpbutils_private.h b/src/wrapped/wrappedgstpbutils_private.h
new file mode 100644
index 00000000..3957627d
--- /dev/null
+++ b/src/wrapped/wrappedgstpbutils_private.h
@@ -0,0 +1,195 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(gst_audio_visualizer_get_type, LFv)
+GO(gst_audio_visualizer_shader_get_type, LFv)
+GO(gst_codec_utils_aac_caps_set_level_and_profile, iFppu)
+//GO(gst_codec_utils_aac_get_channels, 
+//GO(gst_codec_utils_aac_get_index_from_sample_rate, 
+//GO(gst_codec_utils_aac_get_level, 
+//GO(gst_codec_utils_aac_get_profile, 
+//GO(gst_codec_utils_aac_get_sample_rate, 
+//GO(gst_codec_utils_aac_get_sample_rate_from_index, 
+//GO(gst_codec_utils_caps_from_mime_codec, 
+//GO(gst_codec_utils_caps_get_mime_codec, 
+GO(gst_codec_utils_h264_caps_set_level_and_profile, iFppu)
+//GO(gst_codec_utils_h264_get_level, 
+//GO(gst_codec_utils_h264_get_level_idc, 
+//GO(gst_codec_utils_h264_get_profile, 
+//GO(gst_codec_utils_h264_get_profile_flags_level, 
+GO(gst_codec_utils_h265_caps_set_level_tier_and_profile, iFppu)
+//GO(gst_codec_utils_h265_get_level, 
+//GO(gst_codec_utils_h265_get_level_idc, 
+//GO(gst_codec_utils_h265_get_profile, 
+//GO(gst_codec_utils_h265_get_tier, 
+GO(gst_codec_utils_mpeg4video_caps_set_level_and_profile, iFppu)
+//GO(gst_codec_utils_mpeg4video_get_level, 
+//GO(gst_codec_utils_mpeg4video_get_profile, 
+GO(gst_codec_utils_opus_create_caps, pFuCCCCp)
+GO(gst_codec_utils_opus_create_caps_from_header, pFpp)
+GO(gst_codec_utils_opus_create_header, pFuCCCCpWw)
+GO(gst_codec_utils_opus_parse_caps, iFppppppp)
+//GO(gst_codec_utils_opus_parse_header, 
+//GO(gst_discoverer_audio_info_get_bitrate, 
+//GO(gst_discoverer_audio_info_get_channel_mask, 
+//GO(gst_discoverer_audio_info_get_channels, 
+//GO(gst_discoverer_audio_info_get_depth, 
+//GO(gst_discoverer_audio_info_get_language, 
+//GO(gst_discoverer_audio_info_get_max_bitrate, 
+//GO(gst_discoverer_audio_info_get_sample_rate, 
+GO(gst_discoverer_audio_info_get_type, LFv)
+//GO(gst_discoverer_container_info_get_streams, 
+//GO(gst_discoverer_container_info_get_tags, 
+GO(gst_discoverer_container_info_get_type, LFv)
+//GO(gst_discoverer_discover_uri, 
+//GO(gst_discoverer_discover_uri_async, 
+GO(gst_discoverer_get_type, LFv)
+//GO(gst_discoverer_info_copy, 
+//GO(gst_discoverer_info_from_variant, 
+//GO(gst_discoverer_info_get_audio_streams, 
+//GO(gst_discoverer_info_get_container_streams, 
+//GO(gst_discoverer_info_get_duration, 
+//GO(gst_discoverer_info_get_live, 
+//GO(gst_discoverer_info_get_misc, 
+//GO(gst_discoverer_info_get_missing_elements_installer_details, 
+//GO(gst_discoverer_info_get_result, 
+//GO(gst_discoverer_info_get_seekable, 
+//GO(gst_discoverer_info_get_stream_info, 
+//GO(gst_discoverer_info_get_stream_list, 
+//GO(gst_discoverer_info_get_streams, 
+//GO(gst_discoverer_info_get_subtitle_streams, 
+//GO(gst_discoverer_info_get_tags, 
+//GO(gst_discoverer_info_get_toc, 
+GO(gst_discoverer_info_get_type, LFv)
+//GO(gst_discoverer_info_get_uri, 
+//GO(gst_discoverer_info_get_video_streams, 
+//GO(gst_discoverer_info_to_variant, 
+//GO(gst_discoverer_new, 
+GO(gst_discoverer_result_get_type, LFv)
+GO(gst_discoverer_serialize_flags_get_type, LFv)
+//GO(gst_discoverer_start, 
+//GO(gst_discoverer_stop, 
+//GO(gst_discoverer_stream_info_get_caps, 
+//GO(gst_discoverer_stream_info_get_misc, 
+//GO(gst_discoverer_stream_info_get_next, 
+//GO(gst_discoverer_stream_info_get_previous, 
+//GO(gst_discoverer_stream_info_get_stream_id, 
+//GO(gst_discoverer_stream_info_get_stream_number, 
+//GO(gst_discoverer_stream_info_get_stream_type_nick, 
+//GO(gst_discoverer_stream_info_get_tags, 
+//GO(gst_discoverer_stream_info_get_toc, 
+GO(gst_discoverer_stream_info_get_type, LFv)
+//GO(gst_discoverer_stream_info_list_free, 
+//GO(gst_discoverer_subtitle_info_get_language, 
+GO(gst_discoverer_subtitle_info_get_type, LFv)
+//GO(gst_discoverer_video_info_get_bitrate, 
+//GO(gst_discoverer_video_info_get_depth, 
+//GO(gst_discoverer_video_info_get_framerate_denom, 
+//GO(gst_discoverer_video_info_get_framerate_num, 
+//GO(gst_discoverer_video_info_get_height, 
+//GO(gst_discoverer_video_info_get_max_bitrate, 
+//GO(gst_discoverer_video_info_get_par_denom, 
+//GO(gst_discoverer_video_info_get_par_num, 
+GO(gst_discoverer_video_info_get_type, LFv)
+//GO(gst_discoverer_video_info_get_width, 
+//GO(gst_discoverer_video_info_is_image, 
+//GO(gst_discoverer_video_info_is_interlaced, 
+GO(gst_encoding_audio_profile_get_type, LFv)
+//GO(gst_encoding_audio_profile_new, 
+//GO(gst_encoding_container_profile_add_profile, 
+//GO(gst_encoding_container_profile_contains_profile, 
+//GO(gst_encoding_container_profile_get_profiles, 
+GO(gst_encoding_container_profile_get_type, LFv)
+//GO(gst_encoding_container_profile_new, 
+//GO(gst_encoding_list_all_targets, 
+//GO(gst_encoding_list_available_categories, 
+//GO(gst_encoding_profile_copy, 
+//GO(gst_encoding_profile_find, 
+//GO(gst_encoding_profile_from_discoverer, 
+//GO(gst_encoding_profile_get_allow_dynamic_output, 
+//GO(gst_encoding_profile_get_description, 
+//GO(gst_encoding_profile_get_element_properties, 
+//GO(gst_encoding_profile_get_file_extension, 
+//GO(gst_encoding_profile_get_format, 
+//GO(gst_encoding_profile_get_input_caps, 
+//GO(gst_encoding_profile_get_name, 
+//GO(gst_encoding_profile_get_presence, 
+//GO(gst_encoding_profile_get_preset, 
+//GO(gst_encoding_profile_get_preset_name, 
+//GO(gst_encoding_profile_get_restriction, 
+//GO(gst_encoding_profile_get_single_segment, 
+GO(gst_encoding_profile_get_type, LFv)
+//GO(gst_encoding_profile_get_type_nick, 
+//GO(gst_encoding_profile_is_enabled, 
+//GO(gst_encoding_profile_is_equal, 
+//GO(gst_encoding_profile_set_allow_dynamic_output, 
+//GO(gst_encoding_profile_set_description, 
+//GO(gst_encoding_profile_set_element_properties, 
+//GO(gst_encoding_profile_set_enabled, 
+//GO(gst_encoding_profile_set_format, 
+//GO(gst_encoding_profile_set_name, 
+//GO(gst_encoding_profile_set_presence, 
+//GO(gst_encoding_profile_set_preset, 
+//GO(gst_encoding_profile_set_preset_name, 
+//GO(gst_encoding_profile_set_restriction, 
+//GO(gst_encoding_profile_set_single_segment, 
+//GO(gst_encoding_target_add_profile, 
+//GO(gst_encoding_target_get_category, 
+//GO(gst_encoding_target_get_description, 
+//GO(gst_encoding_target_get_name, 
+//GO(gst_encoding_target_get_path, 
+//GO(gst_encoding_target_get_profile, 
+//GO(gst_encoding_target_get_profiles, 
+GO(gst_encoding_target_get_type, LFv)
+//GO(gst_encoding_target_load, 
+//GO(gst_encoding_target_load_from_file, 
+//GO(gst_encoding_target_new, 
+//GO(gst_encoding_target_save, 
+//GO(gst_encoding_target_save_to_file, 
+//GO(gst_encoding_video_profile_get_pass, 
+GO(gst_encoding_video_profile_get_type, LFv)
+//GO(gst_encoding_video_profile_get_variableframerate, 
+//GO(gst_encoding_video_profile_new, 
+//GO(gst_encoding_video_profile_set_pass, 
+//GO(gst_encoding_video_profile_set_variableframerate, 
+//GO(gst_install_plugins_async, 
+//GO(gst_install_plugins_context_copy, 
+//GO(gst_install_plugins_context_free, 
+GO(gst_install_plugins_context_get_type, LFv)
+//GO(gst_install_plugins_context_new, 
+//GO(gst_install_plugins_context_set_confirm_search, 
+//GO(gst_install_plugins_context_set_desktop_id, 
+//GO(gst_install_plugins_context_set_startup_notification_id, 
+//GO(gst_install_plugins_context_set_xid, 
+//GO(gst_install_plugins_installation_in_progress, 
+//GO(gst_install_plugins_return_get_name, 
+GO(gst_install_plugins_return_get_type, LFv)
+//GO(gst_install_plugins_supported, 
+//GO(gst_install_plugins_sync, 
+//GO(gst_is_missing_plugin_message, 
+//GO(gst_missing_decoder_installer_detail_new, 
+//GO(gst_missing_decoder_message_new, 
+//GO(gst_missing_element_installer_detail_new, 
+//GO(gst_missing_element_message_new, 
+//GO(gst_missing_encoder_installer_detail_new, 
+//GO(gst_missing_encoder_message_new, 
+//GO(gst_missing_plugin_message_get_description, 
+//GO(gst_missing_plugin_message_get_installer_detail, 
+//GO(gst_missing_uri_sink_installer_detail_new, 
+//GO(gst_missing_uri_sink_message_new, 
+//GO(gst_missing_uri_source_installer_detail_new, 
+//GO(gst_missing_uri_source_message_new, 
+GO(gst_pb_utils_add_codec_description_to_tag_list, iFppp)
+GO(gst_pb_utils_caps_description_flags_get_type, LFv)
+//GO(gst_pb_utils_get_caps_description_flags, 
+GO(gst_pb_utils_get_codec_description, pFp)
+//GO(gst_pb_utils_get_decoder_description, 
+//GO(gst_pb_utils_get_element_description, 
+//GO(gst_pb_utils_get_encoder_description, 
+//GO(gst_pb_utils_get_file_extension_from_caps, 
+//GO(gst_pb_utils_get_sink_description, 
+//GO(gst_pb_utils_get_source_description, 
+GO(gst_pb_utils_init, vFv)
+//GO(gst_plugins_base_version, 
+//GO(gst_plugins_base_version_string, 
diff --git a/src/wrapped/wrappedgstreamer.c b/src/wrapped/wrappedgstreamer.c
index 2f682b34..cb51b192 100644
--- a/src/wrapped/wrappedgstreamer.c
+++ b/src/wrapped/wrappedgstreamer.c
@@ -1,8 +1,9 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#define _GNU_SOURCE         /* See feature_test_macros(7) */
 #include <dlfcn.h>
+#include <dirent.h> 
 
 #include "wrappedlibs.h"
 
@@ -23,6 +24,7 @@
 const char* gstreamerName = "libgstreamer-1.0.so.0";
 #define LIBNAME gstreamer
 
+typedef void    (*vFv_t)();
 typedef void*   (*pFppA_t)(void*, void*, va_list);
 typedef void*   (*pFv_t)();
 typedef size_t  (*LFv_t)();
@@ -30,11 +32,22 @@ typedef void*   (*pFp_t)(void*);
 typedef void    (*vFpp_t)(void*, void*);
 typedef int     (*iFpp_t)(void*, void*);
 
+void* my_dlopen(x64emu_t* emu, void *filename, int flag);
+int my_dlclose(x64emu_t* emu, void *handle);
+void* my_dlsym(x64emu_t* emu, void *handle, void *symbol);
+
+#ifndef MAX_PATH
+#define MAX_PATH 4096
+#endif
+
 #define ADDED_FUNCTIONS()                   \
     GO(gst_object_get_type, LFv_t)          \
     GO(gst_allocator_get_type, LFv_t)       \
     GO(gst_task_pool_get_type, LFv_t)       \
-    GO(gst_structure_new_valist, pFppA_t)   \
+    GO(gst_element_get_type, LFv_t)         \
+    GO(gst_bin_get_type, LFv_t)             \
+    GO(gst_pad_get_type, LFv_t)             \
+    GO(gst_uri_handler_get_type, LFv_t)     \
     GO(gst_structure_new_empty, pFp_t)      \
     GO(gst_caps_new_empty, pFv_t)           \
     GO(gst_caps_replace, iFpp_t)            \
@@ -42,6 +55,26 @@ typedef int     (*iFpp_t)(void*, void*);
     GO(gst_bin_add, iFpp_t)                 \
     GO(gst_element_link, iFpp_t)            \
 
+typedef struct my_gst_plugin_s {
+    void* handle;
+    int   is_native;
+} my_gst_plugin_t;
+
+#define ADDED_STRUCT()  \
+    int plugin_cnt;     \
+    int plugin_cap;     \
+    my_gst_plugin_t* plugins;     \
+
+#define ADDED_FINI()                                    \
+    for(int i=0; i<my->plugin_cnt; ++i) {               \
+        if(my->plugins[i].is_native)                    \
+            dlclose(my->plugins[i].handle);             \
+        else                                            \
+            my_dlclose(thread_get_emu(), my->plugins[i].handle);   \
+    }                                                   \
+    if(my->plugins) box_free(my->plugins);              \
+
+
 #include "generated/wrappedgstreamertypes.h"
 
 #include "wrappercallback.h"
@@ -51,6 +84,15 @@ GO(0)   \
 GO(1)   \
 GO(2)   \
 GO(3)   \
+GO(4)   \
+GO(5)   \
+GO(6)   \
+GO(7)   \
+GO(8)   \
+GO(9)   \
+GO(10)  \
+GO(11)  \
+GO(12)  \
 
 // GDestroyFunc ...
 #define GO(A)   \
@@ -275,6 +317,272 @@ static void* findGstCapsFilterMapFuncFct(void* fct)
     printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstCapsFilterMapFunc callback\n");
     return NULL;
 }
+//GstPluginInit
+#define GO(A)   \
+static uintptr_t my_GstPluginInit_fct_##A = 0;                      \
+static int my_GstPluginInit_##A(void* a)                            \
+{                                                                   \
+    return (int)RunFunctionFmt(my_GstPluginInit_fct_##A, "p", a);   \
+}
+SUPER()
+#undef GO
+static void* findGstPluginInitFct(void* fct)
+{
+    if(!fct) return fct;
+    #define GO(A) if(my_GstPluginInit_fct_##A == (uintptr_t)fct) return my_GstPluginInit_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstPluginInit_fct_##A == 0) {my_GstPluginInit_fct_##A = (uintptr_t)fct; return my_GstPluginInit_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstPluginInit callback\n");
+    return NULL;
+}
+//GstIteratorFoldFunction
+#define GO(A)   \
+static uintptr_t my_GstIteratorFoldFunction_fct_##A = 0;                            \
+static int my_GstIteratorFoldFunction_##A(void* a, void* b, void* c)                \
+{                                                                                   \
+    return (int)RunFunctionFmt(my_GstIteratorFoldFunction_fct_##A, "ppp", a, b, c); \
+}
+SUPER()
+#undef GO
+static void* findGstIteratorFoldFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    #define GO(A) if(my_GstIteratorFoldFunction_fct_##A == (uintptr_t)fct) return my_GstIteratorFoldFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstIteratorFoldFunction_fct_##A == 0) {my_GstIteratorFoldFunction_fct_##A = (uintptr_t)fct; return my_GstIteratorFoldFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstIteratorFoldFunction callback\n");
+    return NULL;
+}
+//GCompareDataFunc
+#define GO(A)   \
+static uintptr_t my_GCompareDataFunc_fct_##A = 0;                            \
+static int my_GCompareDataFunc_##A(void* a, void* b, void* c)                \
+{                                                                            \
+    return (int)RunFunctionFmt(my_GCompareDataFunc_fct_##A, "ppp", a, b, c); \
+}
+SUPER()
+#undef GO
+static void* findGCompareDataFuncFct(void* fct)
+{
+    if(!fct) return fct;
+    #define GO(A) if(my_GCompareDataFunc_fct_##A == (uintptr_t)fct) return my_GCompareDataFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GCompareDataFunc_fct_##A == 0) {my_GCompareDataFunc_fct_##A = (uintptr_t)fct; return my_GCompareDataFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GCompareDataFunc callback\n");
+    return NULL;
+}
+//GstTaskFunction
+#define GO(A)   \
+static uintptr_t my_GstTaskFunction_fct_##A = 0;        \
+static void my_GstTaskFunction_##A(void* a)             \
+{                                                       \
+    RunFunctionFmt(my_GstTaskFunction_fct_##A, "p", a); \
+}
+SUPER()
+#undef GO
+static void* findGstTaskFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    #define GO(A) if(my_GstTaskFunction_fct_##A == (uintptr_t)fct) return my_GstTaskFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstTaskFunction_fct_##A == 0) {my_GstTaskFunction_fct_##A = (uintptr_t)fct; return my_GstTaskFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstTaskFunction callback\n");
+    return NULL;
+}
+//GstTagForeachFunc
+#define GO(A)   \
+static uintptr_t my_GstTagForeachFunc_fct_##A = 0;                  \
+static void my_GstTagForeachFunc_##A(void* a, void* b, void* c)     \
+{                                                                   \
+    RunFunctionFmt(my_GstTagForeachFunc_fct_##A, "ppp", a, b, c);   \
+}
+SUPER()
+#undef GO
+static void* findGstTagForeachFuncFct(void* fct)
+{
+    if(!fct) return fct;
+    #define GO(A) if(my_GstTagForeachFunc_fct_##A == (uintptr_t)fct) return my_GstTagForeachFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstTagForeachFunc_fct_##A == 0) {my_GstTagForeachFunc_fct_##A = (uintptr_t)fct; return my_GstTagForeachFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstTagForeachFunc callback\n");
+    return NULL;
+}
+//GstPadActivateFunction
+#define GO(A)   \
+static uintptr_t my_GstPadActivateFunction_fct_##A = 0;                         \
+static int my_GstPadActivateFunction_##A(void* a, void* b)                      \
+{                                                                               \
+    return (int)RunFunctionFmt(my_GstPadActivateFunction_fct_##A, "pp", a, b);  \
+}
+SUPER()
+#undef GO
+static void* findGstPadActivateFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstPadActivateFunction_fct_##A == (uintptr_t)fct) return my_GstPadActivateFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstPadActivateFunction_fct_##A == 0) {my_GstPadActivateFunction_fct_##A = (uintptr_t)fct; return my_GstPadActivateFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstPadActivateFunction callback\n");
+    return NULL;
+}
+//GstPadProbeCallback
+#define GO(A)   \
+static uintptr_t my_GstPadProbeCallback_fct_##A = 0;                            \
+static int my_GstPadProbeCallback_##A(void* a, void* b, void* c)                \
+{                                                                               \
+    return (int)RunFunctionFmt(my_GstPadProbeCallback_fct_##A, "ppp", a, b, c); \
+}
+SUPER()
+#undef GO
+static void* findGstPadProbeCallbackFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstPadProbeCallback_fct_##A == (uintptr_t)fct) return my_GstPadProbeCallback_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstPadProbeCallback_fct_##A == 0) {my_GstPadProbeCallback_fct_##A = (uintptr_t)fct; return my_GstPadProbeCallback_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstPadProbeCallback callback\n");
+    return NULL;
+}
+//GstStructureForeachFunc
+#define GO(A)   \
+static uintptr_t my_GstStructureForeachFunc_fct_##A = 0;                            \
+static int my_GstStructureForeachFunc_##A(void* a, void* b, void* c)                \
+{                                                                                   \
+    return (int)RunFunctionFmt(my_GstStructureForeachFunc_fct_##A, "ppp", a, b, c); \
+}
+SUPER()
+#undef GO
+static void* findGstStructureForeachFuncFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstStructureForeachFunc_fct_##A == (uintptr_t)fct) return my_GstStructureForeachFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstStructureForeachFunc_fct_##A == 0) {my_GstStructureForeachFunc_fct_##A = (uintptr_t)fct; return my_GstStructureForeachFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstStructureForeachFunc callback\n");
+    return NULL;
+}
+//GstPadLinkFunction
+#define GO(A)   \
+static uintptr_t my_GstPadLinkFunction_fct_##A = 0;                             \
+static int my_GstPadLinkFunction_##A(void* a, void* b, void* c)                 \
+{                                                                               \
+    return (int)RunFunctionFmt(my_GstPadLinkFunction_fct_##A, "ppp", a, b, c);  \
+}
+SUPER()
+#undef GO
+static void* findGstPadLinkFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstPadLinkFunction_fct_##A == (uintptr_t)fct) return my_GstPadLinkFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstPadLinkFunction_fct_##A == 0) {my_GstPadLinkFunction_fct_##A = (uintptr_t)fct; return my_GstPadLinkFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstPadLinkFunction callback\n");
+    return NULL;
+}
+//GstStructureFilterMapFunc
+#define GO(A)   \
+static uintptr_t my_GstStructureFilterMapFunc_fct_##A = 0;                              \
+static int my_GstStructureFilterMapFunc_##A(void* a, void* b, void* c)                  \
+{                                                                                       \
+    return (int)RunFunctionFmt(my_GstStructureFilterMapFunc_fct_##A, "ppp", a, b, c);   \
+}
+SUPER()
+#undef GO
+static void* findGstStructureFilterMapFuncFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstStructureFilterMapFunc_fct_##A == (uintptr_t)fct) return my_GstStructureFilterMapFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstStructureFilterMapFunc_fct_##A == 0) {my_GstStructureFilterMapFunc_fct_##A = (uintptr_t)fct; return my_GstStructureFilterMapFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstStructureFilterMapFunc callback\n");
+    return NULL;
+}
+//GstElementForeachPadFunc
+#define GO(A)   \
+static uintptr_t my_GstElementForeachPadFunc_fct_##A = 0;                               \
+static int my_GstElementForeachPadFunc_##A(void* a, void* b, void* c)                   \
+{                                                                                       \
+    return (int)RunFunctionFmt(my_GstElementForeachPadFunc_fct_##A, "ppp", a, b, c);    \
+}
+SUPER()
+#undef GO
+static void* findGstElementForeachPadFuncFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstElementForeachPadFunc_fct_##A == (uintptr_t)fct) return my_GstElementForeachPadFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstElementForeachPadFunc_fct_##A == 0) {my_GstElementForeachPadFunc_fct_##A = (uintptr_t)fct; return my_GstElementForeachPadFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstElementForeachPadFunc callback\n");
+    return NULL;
+}
+//GstTypeFindFunction
+#define GO(A)   \
+static uintptr_t my_GstTypeFindFunction_fct_##A = 0;                \
+static void my_GstTypeFindFunction_##A(void* a, void* b)            \
+{                                                                   \
+    RunFunctionFmt(my_GstTypeFindFunction_fct_##A, "pp", a, b);     \
+}
+SUPER()
+#undef GO
+static void* findGstTypeFindFunctionFct(void* fct)
+{
+    if(!fct) return fct;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_GstTypeFindFunction_fct_##A == (uintptr_t)fct) return my_GstTypeFindFunction_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GstTypeFindFunction_fct_##A == 0) {my_GstTypeFindFunction_fct_##A = (uintptr_t)fct; return my_GstTypeFindFunction_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstTypeFindFunction callback\n");
+    return NULL;
+}
 
 #undef SUPER
 
@@ -445,30 +753,303 @@ EXPORT int my_gst_element_link_many(x64emu_t* emu, void* e1, void* e2, void** b)
     }
     return ret;
 }
-/*
+
 EXPORT void* my_gst_plugin_load_file(x64emu_t* emu, const char* filename, void** error)
 {
-printf_log(LOG_INFO, "using gst_plugin_load_file, file %s (is x86_64=%d)\n", filename, FileIsX64ELF(filename));
+    printf_log(LOG_INFO, "using gst_plugin_load_file, file %s (is x86_64=%d)\n", filename, FileIsX64ELF(filename));
     return my->gst_plugin_load_file((void*)filename, error);
 }
 
-EXPORT int my_gst_init_check(x64emu_t* emu, int* argc, char*** argv, void** error)
+static void register_plugins_from_folder(x64emu_t* emu, const char* folder)
 {
-printf_log(LOG_INFO, "will call gst_init_check(%o, %p, %p)\n", argc, argv, error);
-if(argc && argv) {
-    printf_log(LOG_INFO, " argc=%d, argv=[", *argc);
-    for(int i=0; i<*argc; ++i)
-        printf_log(LOG_INFO, "%s\"%s\"", i?", ":"", (*argv)[i]);
-    printf_log(LOG_INFO, "]");
+    if(!folder) {
+        printf_log(/*LOG_DEBUG*/LOG_INFO, "BOX64 didn't detect any custom gstreamer-1.0 folder");
+        return;
+    }
+    DIR *d;
+    struct dirent *dir;
+    // get folder where gstreamer came from
+    char native_folder[MAX_PATH+1] = {0};
+    Dl_info dli;
+    if(dladdr(my->gst_init_check, &dli)) {
+        strcpy(native_folder, dli.dli_fname);
+        char* p = strrchr(native_folder, '/');
+        *p = '\0';
+        strcat(native_folder, "/gstreamer-1.0/");
+        printf_log(/*LOG_DEBUG*/LOG_INFO, "BOX64 Will look for native gstreamer plugin in %s", native_folder);
+    }
+    d = opendir(folder);
+    if(!d)
+        return;
+    while((dir = readdir(d)) != NULL) {
+        if(strstr(dir->d_name, "libgst")==dir->d_name && strstr(dir->d_name, ".so")) {
+            // handling this one, stripping to get the plugin name
+            char name[500];
+            int is_native = 0;
+            void* handle = NULL;
+            char filename[MAX_PATH];
+            char regfunc_name[500];
+            // get the name of the function
+            strcpy(name, dir->d_name + strlen("libgst"));
+            *strrchr(name, '.') = '\0';
+            snprintf(regfunc_name, sizeof(regfunc_name), "gst_plugin_%s_register", name);
+            // check if native version exist
+            if(native_folder[0]) {
+                strcpy(filename, native_folder);
+                strcat(filename, dir->d_name);
+                handle = dlopen(filename, 2);
+            }
+            if(handle) 
+                is_native = 1;
+            else {
+                strcpy(filename, folder);
+                strcat(filename, "/");
+                strcat(filename, dir->d_name);
+                handle = my_dlopen(emu, filename, 2);
+            }
+            void* f_init = handle?(is_native?dlsym(handle, regfunc_name):my_dlsym(emu, handle, regfunc_name)):NULL;
+            if(f_init) {
+                printf_log(LOG_DEBUG, "BOX64: Will registering %sgstplugin %s\n", is_native?"native ":"", filename);
+                if(is_native)
+                    ((vFv_t)(f_init))();
+                else
+                    RunFunctionFmt((uintptr_t)f_init, "");
+                if(my->plugin_cnt==my->plugin_cap) {
+                    my->plugin_cap += 8;
+                    my->plugins = (my_gst_plugin_t*)box_realloc(my->plugins, my->plugin_cap*sizeof(my_gst_plugin_t));
+                }
+                my->plugins[my->plugin_cnt].is_native = is_native;
+                my->plugins[my->plugin_cnt++].handle = handle;
+            } else {
+                printf_log(LOG_DEBUG, "BOX64: Failled to register %sgstplugin %s, name=%s, handle=%p\n", is_native?"native ":"", filename, name, handle);
+            }
+            if(handle && !f_init) {
+                is_native?dlclose(handle):my_dlclose(emu, handle);
+                handle = NULL;
+            }
+        }
+    }
+    closedir(d);
 }
-if(getenv("GST_PLUGIN_LOADING_WHITELIST"))
-    printf_log(LOG_INFO, "\nGST_PLUGIN_LOADING_WHITELIST=%s", getenv("GST_PLUGIN_LOADING_WHITELIST"));
-printf_log(LOG_INFO, "\n");
+
+extern const char* box64_custom_gstreamer;
+EXPORT int my_gst_init_check(x64emu_t* emu, int* argc, char*** argv, void** error)
+{
     int ret = my->gst_init_check(argc, argv, error);
-printf_log(LOG_INFO, "gst_init_check(...) return = %d\n", ret);
+    register_plugins_from_folder(emu, box64_custom_gstreamer);
     return ret;
 }
-*/
+
+EXPORT void my_gst_init(x64emu_t* emu, int* argc, char*** argv)
+{
+    my->gst_init(argc, argv);
+    register_plugins_from_folder(emu, box64_custom_gstreamer);
+}
+
+EXPORT int my_gst_plugin_register_static(x64emu_t* emu, int maj_v, int min_v, void* name, void* desc, void* init_f, void* ver, void* lic, void* source, void* pack, void* orig)
+{
+    return my->gst_plugin_register_static(maj_v, min_v, name, desc, findGstPluginInitFct(init_f), ver, lic, source, pack, orig);
+}
+
+EXPORT int my_gst_info_vasprintf(x64emu_t* emu, void* res, void* fmt, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    return my->gst_info_vasprintf(res, fmt, VARARGS);
+}
+
+EXPORT void* my__gst_element_error_printf(x64emu_t* emu, void* fmt, uintptr_t* b)
+{
+    char* buffer;
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 1);
+    int len = my->gst_info_vasprintf(&buffer, fmt, VARARGS);
+    if(len<0)
+        buffer = NULL;
+    return buffer;
+}
+
+EXPORT void my_gst_structure_set_valist(x64emu_t* emu, void* st, void* fieldname, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    my->gst_structure_set_valist(st, fieldname, VARARGS);
+}
+
+EXPORT void my_gst_structure_set(x64emu_t* emu, void* st, void* fieldname, uintptr_t* b)
+{
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 2);
+    my->gst_structure_set_valist(st, fieldname, VARARGS);
+}
+
+EXPORT int my_gst_iterator_fold(x64emu_t* emu, void* it, void* f, void* ret, void* data)
+{
+    return my->gst_iterator_fold(it, findGstIteratorFoldFunctionFct(f), ret, data);
+}
+
+EXPORT void* my_gst_util_array_binary_search(x64emu_t* emu, void* array, uint32_t num, size_t size, void* f, int mode, void* search, void* data)
+{
+    return my->gst_util_array_binary_search(array, num, size, findGCompareDataFuncFct(f), mode, search, data);
+}
+
+EXPORT void* my_gst_structure_new_valist(x64emu_t* emu, void* name, void* first, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    my->gst_structure_new_valist(name, first, VARARGS);
+}
+
+EXPORT void* my_gst_make_element_message_details(x64emu_t* emu, void* name, uintptr_t* b)
+{
+    if(!name)
+        return NULL;
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 1);
+    my->gst_structure_new_valist("detail", name, VARARGS);
+}
+
+EXPORT int my_gst_pad_start_task(x64emu_t* emu, void* pad, void* f, void* data, void* d)
+{
+    return my->gst_pad_start_task(pad, findGstTaskFunctionFct(f), data, findDestroyFct(d));
+}
+
+EXPORT void my_gst_tag_list_foreach(x64emu_t* emu, void* list, void* f, void* data)
+{
+    my->gst_tag_list_foreach(list, findGstTagForeachFuncFct(f), data);
+}
+
+EXPORT void* my_gst_memory_new_wrapped(x64emu_t* emu, int flags, void* data, size_t maxsz, size_t offset, size_t size, void* user_data, void* d)
+{
+    return my->gst_memory_new_wrapped(flags, data, maxsz, offset, size, user_data, findDestroyFct(d));
+}
+
+EXPORT void* my_gst_pad_create_stream_id_printf_valist(x64emu_t* emu, void* pad, void* parent, void* id, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    return my->gst_pad_create_stream_id_printf_valist(pad, parent, id, VARARGS);
+}
+
+EXPORT void* my_gst_pad_create_stream_id_printf(x64emu_t* emu, void* pad, void* parent, void* id, uintptr_t* b)
+{
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 3);
+    return my->gst_pad_create_stream_id_printf_valist(pad, parent, id, VARARGS);
+}
+
+EXPORT void my_gst_pad_set_activate_function_full(x64emu_t* emu, void* pad, void* f, void* data, void* d)
+{
+    my->gst_pad_set_activate_function_full(pad, findGstPadActivateFunctionFct(f), data, findDestroyFct(d));
+}
+
+EXPORT void my_gst_tag_list_add_valist(x64emu_t* emu, void* list, int mode, void* tag, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    my->gst_tag_list_add_valist(list, mode, tag, VARARGS);
+}
+EXPORT void my_gst_tag_list_add(x64emu_t* emu, void* list, int mode, void* tag, uintptr_t* b)
+{
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 3);
+    my->gst_tag_list_add_valist(list, mode, tag, VARARGS);
+}
+
+EXPORT void* my_gst_tag_list_new_valist(x64emu_t* emu, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    return my->gst_tag_list_new_valist(VARARGS);
+}
+
+EXPORT void* my_gst_tag_list_new(x64emu_t* emu, void* arg, uintptr_t* b)
+{
+    // construct VARARGS with arg[0] too, because gst_tag_list_new_valist have just the va_list
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 0);
+    return my->gst_tag_list_new_valist(VARARGS);
+}
+
+EXPORT void* my_gst_caps_features_new_valist(x64emu_t* emu, void* feat1, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    return my->gst_caps_features_new_valist(feat1, VARARGS);
+}
+
+EXPORT void* my_gst_caps_features_new(x64emu_t* emu, void* feat1, uintptr_t* b)
+{
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 1);
+    return my->gst_caps_features_new_valist(feat1, VARARGS);
+}
+
+EXPORT unsigned long my_gst_pad_add_probe(x64emu_t* emu, void* pad, int mask, void* f, void* data, void* d)
+{
+    return my->gst_pad_add_probe(pad, mask, findGstPadProbeCallbackFct(f), data, findDestroyFct(d));
+}
+
+EXPORT int my_gst_structure_foreach(x64emu_t* emu, void* st, void* f, void* data)
+{
+    return my->gst_structure_foreach(st, findGstStructureForeachFuncFct(f), data);
+}
+
+EXPORT void my_gst_pad_set_link_function_full(x64emu_t* emu, void* pad, void* f, void* data, void *d)
+{
+    my->gst_pad_set_link_function_full(pad, findGstPadLinkFunctionFct(f), data, findDestroyFct(d));
+}
+
+EXPORT void my_gst_tag_list_add_valist_values(x64emu_t* emu, void* list, int mode, void* tag, x64_va_list_t V)
+{
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(V);
+    #else
+    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+    #endif
+    my->gst_tag_list_add_valist_values(list, mode, tag, VARARGS);
+}
+
+EXPORT void my_gst_tag_list_add_values(x64emu_t* emu, void* list, int mode, void* tag, uintptr_t* b)
+{
+    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 3);
+    my->gst_tag_list_add_valist_values(list, mode, tag, VARARGS);
+}
+
+EXPORT void my_gst_structure_filter_and_map_in_place(x64emu_t* emu, void* s, void* f, void* data)
+{
+    my->gst_structure_filter_and_map_in_place(s, findGstStructureFilterMapFuncFct(f), data);
+}
+
+EXPORT int my_gst_element_foreach_sink_pad(x64emu_t* emu, void* element, void* f, void* data)
+{
+    return my->gst_element_foreach_sink_pad(element, findGstElementForeachPadFuncFct(f),data);
+}
+
+EXPORT void* my_gst_task_new(x64emu_t* emu, void* f, void* data, void* d)
+{
+    return my->gst_task_new(findGstTaskFunctionFct(f), data, findDestroyFct(d));
+}
+
+EXPORT int my_gst_type_find_register(x64emu_t* emu, void* plugin, void* name, uint32_t rank, void* f, void* ext, void* caps, void* data, void* d)
+{
+    return my->gst_type_find_register(plugin, name, rank, findGstTypeFindFunctionFct(f), ext, caps, data, findDestroyFct(f));
+}
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
@@ -478,6 +1059,10 @@ printf_log(LOG_INFO, "gst_init_check(...) return = %d\n", ret);
     SetGstObjectID(my->gst_object_get_type());                 \
     SetGstAllocatorID(my->gst_allocator_get_type());           \
     SetGstTaskPoolID(my->gst_task_pool_get_type());            \
+    SetGstElementID(my->gst_element_get_type());               \
+    SetGstBinID(my->gst_bin_get_type());                       \
+    SetGstPadID(my->gst_pad_get_type());                       \
+    SetGstURIHandlerID(my->gst_uri_handler_get_type());        \
     setNeededLibs(lib, 1, "libgtk-3.so.0");
 
 #define CUSTOM_FINI \
diff --git a/src/wrapped/wrappedgstreamer_private.h b/src/wrapped/wrappedgstreamer_private.h
index e5fcfc9a..8b6a5e2e 100644
--- a/src/wrapped/wrappedgstreamer_private.h
+++ b/src/wrapped/wrappedgstreamer_private.h
@@ -5,9 +5,9 @@
 GO(gst_allocation_params_copy, pFp)
 //GO(gst_allocation_params_free, 
 //GO(gst_allocation_params_get_type, 
-//GO(gst_allocation_params_init, 
+GO(gst_allocation_params_init, vFp)
 GO(gst_allocator_alloc, pFpLp)
-//GO(gst_allocator_find, 
+GO(gst_allocator_find, pFp)
 //GO(gst_allocator_flags_get_type, 
 //GO(gst_allocator_free, 
 GO(gst_allocator_get_type, pFv)
@@ -86,10 +86,10 @@ GO(gst_buffer_list_calculate_size, LFp)
 //GO(gst_buffer_list_copy, 
 GO(gst_buffer_list_copy_deep, pFp)
 //GO(gst_buffer_list_foreach, 
-//GO(gst_buffer_list_get, 
+GO(gst_buffer_list_get, pFpu)
 //GO(gst_buffer_list_get_type, 
 //GO(gst_buffer_list_get_writable, 
-//GO(gst_buffer_list_insert, 
+GO(gst_buffer_list_insert, vFpip)
 GO(gst_buffer_list_length, uFp)
 GO(gst_buffer_list_new, pFv)
 GO(gst_buffer_list_new_sized, pFu)
@@ -105,6 +105,7 @@ GO(gst_buffer_memcmp, iFpLpL)
 GO(gst_buffer_memset, LFpLCL)
 GO(gst_buffer_new, pFv)
 GO(gst_buffer_new_allocate, pFplp)
+GO(gst_buffer_new_memdup, pFpL)
 GO(gst_buffer_new_wrapped, pFpl)
 GO(gst_buffer_new_wrapped_bytes, pFp)
 GOM(gst_buffer_new_wrapped_full, pFEiplllpp)
@@ -120,10 +121,10 @@ GO(gst_buffer_pool_config_has_option, iFpp)
 GO(gst_buffer_pool_config_n_options, uFp)
 GO(gst_buffer_pool_config_set_allocator, vFppp)
 GO(gst_buffer_pool_config_set_params, vFppuuu)
-//GO(gst_buffer_pool_config_validate_params, 
+GO(gst_buffer_pool_config_validate_params, iFppuuu)
 GO(gst_buffer_pool_get_config, pFp)
 GO(gst_buffer_pool_get_options, pFp)
-//GO(gst_buffer_pool_get_type, 
+GO(gst_buffer_pool_get_type, LFv)
 GO(gst_buffer_pool_has_option, iFpp)
 GO(gst_buffer_pool_is_active, iFp)
 GO(gst_buffer_pool_new, pFv)
@@ -176,20 +177,20 @@ GO(gst_bus_sync_signal_handler, iFppp)
 GO(gst_bus_timed_pop, pFpU)
 GO(gst_bus_timed_pop_filtered, pFpUi)
 GO(gst_calculate_linear_regression, iFppuppppp)
-//DATAB(_gst_caps_any, 
+DATAB(_gst_caps_any, sizeof(void*))
 GO(gst_caps_append, vFpp)
 GO(gst_caps_append_structure, vFpp)
 GO(gst_caps_append_structure_full, vFppp)
 GO(gst_caps_can_intersect, iFpp)
 GO(gst_caps_copy, pFp)
 GO(gst_caps_copy_nth, pFpu)
-//GOM(gst_caps_features_add, vFEpBp)
+GO(gst_caps_features_add, vFpp)
 //GO(gst_caps_features_add_id, 
 //DATAB(_gst_caps_features_any, 
 GO(gst_caps_features_contains, iFpp)
 GO(gst_caps_features_contains_id, iFpu)
 GO(gst_caps_features_copy, pFp)
-//GO(gst_caps_features_free, 
+GO(gst_caps_features_free, vFp)
 GO(gst_caps_features_from_string, pFp)
 GO(gst_caps_features_get_nth, pFpu)
 GO(gst_caps_features_get_nth_id, uFpu)
@@ -197,13 +198,13 @@ GO(gst_caps_features_get_size, uFp)
 //GO(gst_caps_features_get_type, 
 GO(gst_caps_features_is_any, iFp)
 GO(gst_caps_features_is_equal, iFpp)
-//DATAB(_gst_caps_features_memory_system_memory, 
-//GO(gst_caps_features_new, 
+DATAB(_gst_caps_features_memory_system_memory, sizeof(void*))
+GOM(gst_caps_features_new, pFEpV)
 GO(gst_caps_features_new_any, pFv)
 //GO(gst_caps_features_new_empty, 
 //GO(gst_caps_features_new_id, 
 GO(gst_caps_features_new_id_valist, pFup)
-GO(gst_caps_features_new_valist, pFpp)
+GOM(gst_caps_features_new_valist, pFEpA)
 GO(gst_caps_features_remove, vFpp)
 GO(gst_caps_features_remove_id, vFpu)
 GO(gst_caps_features_set_parent_refcount, iFpp)
@@ -241,7 +242,7 @@ GO(gst_caps_new_empty_simple, pFp)
 //GOM(gst_caps_new_full, pFEpV)
 //GOM(gst_caps_new_full_valist, pFEpA)
 GOM(gst_caps_new_simple, pFEppV)
-//DATAB(_gst_caps_none, 
+DATAB(_gst_caps_none, sizeof(void*))
 GO(gst_caps_normalize, pFp)
 GO(gst_caps_ref, pFp)
 GO(gst_caps_remove_structure, vFpp)
@@ -291,14 +292,14 @@ DATAB(GST_CAT_DEFAULT, sizeof(void*))
 //DATAB(GST_CAT_SCHEDULING, 
 //DATAB(GST_CAT_SIGNAL, 
 //DATAB(GST_CAT_STATES, 
-//GO(gst_child_proxy_child_added, 
+GO(gst_child_proxy_child_added, vFppp)
 GO(gst_child_proxy_child_removed, vFppp)
 //GO(gst_child_proxy_get, 
 GO(gst_child_proxy_get_child_by_index, pFpu)
 //GO(gst_child_proxy_get_child_by_name, 
 GO(gst_child_proxy_get_children_count, uFp)
 GO(gst_child_proxy_get_property, vFppp)
-//GO(gst_child_proxy_get_type, 
+GO(gst_child_proxy_get_type, LFv)
 //GO(gst_child_proxy_get_valist, 
 GO(gst_child_proxy_lookup, iFpppp)
 //GO(gst_child_proxy_set, 
@@ -375,7 +376,7 @@ GO(gst_control_binding_sync_values, iFppLL)
 //GO(gst_control_source_get_value, 
 //GO(gst_control_source_get_value_array, 
 //GO(gst_core_error_get_type, 
-//GO(gst_core_error_quark, 
+GO(gst_core_error_quark, pFv)
 //GO(gst_date_time_get_day, 
 //GO(gst_date_time_get_hour, 
 GO(gst_date_time_get_microsecond, iFp)
@@ -407,7 +408,7 @@ GO(gst_date_time_ref, pFp)
 GO(gst_date_time_to_g_date_time, pFp)
 GO(gst_date_time_to_iso8601_string, pFp)
 DATAB(_gst_date_time_type, sizeof(void*))
-//GO(gst_date_time_unref, 
+GO(gst_date_time_unref, vFp)
 //GO(gst_debug_add_log_function, 
 GO(gst_debug_add_ring_buffer_logger, vFuu)
 GO(gst_debug_bin_to_dot_data, pFpi)
@@ -445,7 +446,7 @@ GOM(gst_debug_log_valist, vFEpippippA)
 DATAB(_gst_debug_min, sizeof(int))
 //GO(_gst_debug_nameof_funcptr, 
 //GO(gst_debug_print_stack_trace, 
-//GO(_gst_debug_register_funcptr, 
+GO(_gst_debug_register_funcptr, vFpp)
 //GO(gst_debug_remove_log_function, 
 GO(gst_debug_remove_log_function_by_data, uFp)
 //GO(gst_debug_remove_ring_buffer_logger, 
@@ -533,7 +534,7 @@ GO(gst_element_class_set_metadata, vFppppp)
 GO(gst_element_class_set_static_metadata, vFppppp)
 GO(gst_element_continue_state, uFpu)
 //GOM(gst_element_create_all_pads, iFEpBp)
-//GO(_gst_element_error_printf, 
+GOM(_gst_element_error_printf, pFEpV)
 GO(gst_element_factory_can_sink_all_caps, iFpp)
 GO(gst_element_factory_can_sink_any_caps, iFpp)
 GO(gst_element_factory_can_src_all_caps, iFpp)
@@ -555,7 +556,7 @@ GO(gst_element_factory_list_is_type, iFpL)
 GO(gst_element_factory_make, pFpp)
 GO(gst_element_flags_get_type, pFv)
 //GOM(gst_element_foreach_pad, iFEpBp)
-//GOM(gst_element_foreach_sink_pad, iFEpBp)
+GOM(gst_element_foreach_sink_pad, iFEppp)
 //GOM(gst_element_foreach_src_pad, iFEpBp)
 GO(gst_element_get_base_time, UFp)
 GO(gst_element_get_bus, pFp)
@@ -575,7 +576,7 @@ GO(gst_element_get_pad_template_list, pFp)
 GO(gst_element_get_start_time, UFp)
 GO(gst_element_get_state, uFpppL)
 GO(gst_element_get_static_pad, pFpp)
-GO(gst_element_get_type, pFv)
+GO(gst_element_get_type, LFv)
 GO(gst_element_is_locked_state, iFp)
 GO(gst_element_iterate_pads, pFp)
 GO(gst_element_iterate_sink_pads, pFp)
@@ -720,30 +721,30 @@ GO(gst_get_main_executable_path, pFv)
 //GO(gst_ghost_pad_activate_mode_default, 
 //GO(gst_ghost_pad_construct, 
 //GO(gst_ghost_pad_get_target, 
-//GO(gst_ghost_pad_get_type, 
+GO(gst_ghost_pad_get_type, LFv)
 //GO(gst_ghost_pad_internal_activate_mode_default, 
 GO(gst_ghost_pad_new, pFpp)
 //GO(gst_ghost_pad_new_from_template, 
 //GO(gst_ghost_pad_new_no_target, 
 //GO(gst_ghost_pad_new_no_target_from_template, 
-//GO(gst_ghost_pad_set_target, 
+GO(gst_ghost_pad_set_target, iFpp)
 //GO(gst_g_thread_get_type, 
 //GO(gst_info_strdup_printf, 
 //GO(gst_info_strdup_vprintf, 
-//GO(gst_info_vasprintf, 
-GO(gst_init, vFpp)
-GO(gst_init_check, iFppp)
+GOM(gst_info_vasprintf, iFEppA)
+GOM(gst_init, vFEpp)
+GOM(gst_init_check, iFEppp)
 GO(gst_init_get_option_group, pFv)
 //GO(gst_int64_range_get_type, 
 //DATAB(_gst_int64_range_type, 
-//GO(gst_int_range_get_type, 
+GO(gst_int_range_get_type, LFv)
 DATAB(_gst_int_range_type, sizeof(void*))
 GO(gst_is_caps_features, iFp)
 GO(gst_is_initialized, iFv)
 //GO(gst_iterator_copy, 
 //GO(gst_iterator_filter, 
 //GO(gst_iterator_find_custom, 
-//GO(gst_iterator_fold, 
+GOM(gst_iterator_fold, iFEpppp)
 //GO(gst_iterator_foreach, 
 GO(gst_iterator_free, vFp)
 //GO(gst_iterator_get_type, 
@@ -756,21 +757,21 @@ GO(gst_iterator_next, iFpp)
 //GO(gst_iterator_result_get_type, 
 GO(gst_iterator_resync, vFp)
 //GO(gst_library_error_get_type, 
-//GO(gst_library_error_quark, 
+GO(gst_library_error_quark, pFv)
 //GO(gst_lock_flags_get_type, 
-//GO(gst_make_element_message_details, 
+GOM(gst_make_element_message_details, pFEpV)
 //GO(gst_map_flags_get_type, 
 //DATA(gst_memory_alignment, 
 //GO(gst_memory_copy, 
 //GO(gst_memory_flags_get_type, 
-//GO(gst_memory_get_sizes, 
+GO(gst_memory_get_sizes, iFppp)
 //GO(gst_memory_get_type, 
 GO(gst_memory_init, vFpuppLLLL)
 //GO(gst_memory_is_span, 
 //GO(gst_memory_is_type, 
 //GO(gst_memory_make_mapped, 
 GO(gst_memory_map, iFppu)
-//GO(gst_memory_new_wrapped, 
+GOM(gst_memory_new_wrapped, pFEipLLLpp)
 //GO(gst_memory_ref, 
 //GO(gst_memory_resize, 
 //GO(gst_memory_share, 
@@ -904,7 +905,7 @@ GO(gst_mini_object_is_writable, iFp)
 GO(gst_mini_object_make_writable, pFp)
 GO(gst_mini_object_ref, pFp)
 //GO(gst_mini_object_remove_parent, 
-//GO(gst_mini_object_replace, 
+GO(gst_mini_object_replace, iFpp)
 GOM(gst_mini_object_set_qdata, vFEpppp)
 //GO(gst_mini_object_steal, 
 //GO(gst_mini_object_steal_qdata, 
@@ -945,14 +946,14 @@ GO(gst_object_sync_values, iFpL)
 GO(gst_object_unparent, vFp)
 GO(gst_object_unref, vFp)
 GO(gst_pad_activate_mode, iFpii)
-//GO(gst_pad_add_probe, iFEpiBpB)
+GOM(gst_pad_add_probe, LFEpippp)
 GO(gst_pad_can_link, iFpp)
 GO(gst_pad_chain, iFpp)
 GO(gst_pad_chain_list, iFpp)
 GO(gst_pad_check_reconfigure, iFp)
 GO(gst_pad_create_stream_id, pFppp)
-//GOM(gst_pad_create_stream_id_printf, pFEpppV)
-//GOM(gst_pad_create_stream_id_printf_valist, pFEpppA)
+GOM(gst_pad_create_stream_id_printf, pFEpppV)
+GOM(gst_pad_create_stream_id_printf_valist, pFEpppA)
 GO(gst_pad_direction_get_type, pFv)
 GO(gst_pad_event_default, iFppp)
 GO(gst_pad_flags_get_type, pFv)
@@ -973,7 +974,7 @@ GO(gst_pad_get_sticky_event, pFppu)
 GO(gst_pad_get_stream, pFp)
 GO(gst_pad_get_stream_id, pFp)
 GO(gst_pad_get_task_state, iFp)
-GO(gst_pad_get_type, pFv)
+GO(gst_pad_get_type, LFv)
 GO(gst_pad_has_current_caps, iFp)
 GO(gst_pad_is_active, iFp)
 GO(gst_pad_is_blocked, iFp)
@@ -1024,7 +1025,7 @@ GO(gst_pad_query_duration, iFppp)
 GO(gst_pad_query_position, iFppp)
 GO(gst_pad_remove_probe, vFpL)
 GO(gst_pad_send_event, iFpp)
-//GOM(gst_pad_set_activate_function_full, vFEpBpB)
+GOM(gst_pad_set_activate_function_full, vFEpppp)
 GOM(gst_pad_set_activatemode_function_full, vFEpppp)
 GO(gst_pad_set_active, iFpi)
 GOM(gst_pad_set_chain_function_full, vFEpppp)
@@ -1034,21 +1035,21 @@ GO(gst_pad_set_element_private, vFpp)
 GOM(gst_pad_set_event_function_full, vFEpppp)
 GOM(gst_pad_set_getrange_function_full, vFEpppp)
 //GOM(gst_pad_set_iterate_internal_links_function_full, vFEpBpB)
-//GOM(gst_pad_set_link_function_full, vFEpBpB)
+GOM(gst_pad_set_link_function_full, vFEpppp)
 GO(gst_pad_set_offset, vFpI)
 GOM(gst_pad_set_query_function_full, vFEpppp)
 //GOM(gst_pad_set_unlink_function_full, vFEpBpB)
-//GOM(gst_pad_start_task, vFEpBpB)
+GOM(gst_pad_start_task, iFEpppp)
 //GOM(gst_pad_sticky_events_foreach, vFEpBp)
 GO(gst_pad_stop_task, iFp)
 GO(gst_pad_store_sticky_event, iFpp)
 GO(gst_pad_template_flags_get_type, pFv)
-//GO(gst_pad_template_get_caps, 
+GO(gst_pad_template_get_caps, pFp)
 //GO(gst_pad_template_get_documentation_caps, 
 //GO(gst_pad_template_get_type, 
 GO(gst_pad_template_new, pFpiip)
 //GO(gst_pad_template_new_from_static_pad_template_with_gtype, 
-//GO(gst_pad_template_new_with_gtype, 
+GO(gst_pad_template_new_with_gtype, pFpiipL)
 //GO(gst_pad_template_pad_created, 
 //GO(gst_pad_template_set_documentation_caps, 
 GO(gst_pad_unlink, iFpp)
@@ -1122,8 +1123,8 @@ GO(gst_plugin_is_loaded, iFp)
 GO(gst_plugin_load, pFp)
 GO(gst_plugin_load_by_name, pFp)
 //GO(_gst_plugin_loader_client_run, 
-GO(gst_plugin_load_file, pFpp)
-//GO(gst_plugin_register_static, 
+GOM(gst_plugin_load_file, pFEpp)
+GOM(gst_plugin_register_static, iFEiipppppppp)
 //GO(gst_plugin_register_static_full, 
 GO(gst_plugin_set_cache_data, vFpp)
 //GO(gst_poll_add_fd, 
@@ -1153,7 +1154,7 @@ GO(gst_preset_delete_preset, iFpp)
 GO(gst_preset_get_meta, iFpppp)
 //GO(gst_preset_get_preset_names, 
 GO(gst_preset_get_property_names, pFp)
-//GO(gst_preset_get_type, 
+GO(gst_preset_get_type, LFv)
 GO(gst_preset_is_editable, iFp)
 //GO(gst_preset_load_preset, 
 GO(gst_preset_rename_preset, iFppp)
@@ -1307,7 +1308,7 @@ GO(gst_registry_remove_feature, vFpp)
 GO(gst_registry_remove_plugin, vFpp)
 GO(gst_registry_scan_path, iFpp)
 //GO(gst_resource_error_get_type, 
-//GO(gst_resource_error_quark, 
+GO(gst_resource_error_quark, pFv)
 GO(gst_sample_copy, pFp)
 GO(gst_sample_get_buffer, pFp)
 GO(gst_sample_get_buffer_list, pFp)
@@ -1359,9 +1360,9 @@ GO(gst_state_get_type, pFv)
 GO(gst_static_caps_cleanup, vFp)
 GO(gst_static_caps_get, pFp)
 GO(gst_static_caps_get_type, pFv)
-//GO(gst_static_pad_template_get, 
-//GO(gst_static_pad_template_get_caps, 
-//GO(gst_static_pad_template_get_type, 
+GO(gst_static_pad_template_get, pFp)
+GO(gst_static_pad_template_get_caps, pFp)
+GO(gst_static_pad_template_get_type, LFv)
 GO(gst_stream_collection_add_stream, iFpp)
 GO(gst_stream_collection_get_size, uFp)
 GO(gst_stream_collection_get_stream, pFpu)
@@ -1369,7 +1370,7 @@ GO(gst_stream_collection_get_stream, pFpu)
 GO(gst_stream_collection_get_upstream_id, pFp)
 GO(gst_stream_collection_new, pFp)
 //GO(gst_stream_error_get_type, 
-//GO(gst_stream_error_quark, 
+GO(gst_stream_error_quark, pFv)
 //GO(gst_stream_flags_get_type, 
 GO(gst_stream_get_caps, pFp)
 GO(gst_stream_get_stream_flags, uFp)
@@ -1388,7 +1389,7 @@ GO(gst_stream_type_get_name, pFu)
 GO(gst_structure_can_intersect, iFpp)
 //GO(gst_structure_change_type_get_type, 
 GO(gst_structure_copy, pFp)
-//GOM(gst_structure_filter_and_map_in_place, vFEpBp)
+GOM(gst_structure_filter_and_map_in_place, vFEppp)
 GO(gst_structure_fixate, vFp)
 GO(gst_structure_fixate_field, iFpp)
 GO(gst_structure_fixate_field_boolean, iFppi)
@@ -1396,7 +1397,7 @@ GO(gst_structure_fixate_field_nearest_double, iFppd)
 GO(gst_structure_fixate_field_nearest_fraction, iFppii)
 GO(gst_structure_fixate_field_nearest_int, iFppi)
 GO(gst_structure_fixate_field_string, iFppp)
-//GOM(gst_structure_foreach, iFEpBp)
+GOM(gst_structure_foreach, iFEppp)
 GO(gst_structure_free, vFp)
 GO(gst_structure_from_string, pFpp)
 GOM(gst_structure_get, iFEppV)
@@ -1442,19 +1443,19 @@ GO(gst_structure_new_empty, pFp)
 GO(gst_structure_new_from_string, pFp)
 //GOM(gst_structure_new_id, pFEppV)
 GO(gst_structure_new_id_empty, pFu)
-//GOM(gst_structure_new_valist, pFppA)
+GOM(gst_structure_new_valist, pFppA)
 GO(gst_structure_n_fields, iFp)
 GO(gst_structure_nth_field_name, pFpu)
 GO(gst_structure_remove_all_fields, vFp)
 GO(gst_structure_remove_field, vFpp)
 GOM(gst_structure_remove_fields, vFEppV)
 GOM(gst_structure_remove_fields_valist, vFEppA)
-//GOM(gst_structure_set, vFEppV)
+GOM(gst_structure_set, vFEppV)
 GO(gst_structure_set_array, vFppp)
 GO(gst_structure_set_list, vFppp)
 GO(gst_structure_set_name, vFpp)
 GO(gst_structure_set_parent_refcount, iFpp)
-//GOM(gst_structure_set_valist, vFEppA)
+GOM(gst_structure_set_valist, vFEppA)
 GO(gst_structure_set_value, vFppp)
 GO(gst_structure_take, iFpp)
 GO(gst_structure_take_value, vFppp)
@@ -1468,16 +1469,16 @@ GO(gst_system_clock_set_default, vFp)
 GO(gst_tag_get_description, pFp)
 GO(gst_tag_get_flag, uFp)
 //GO(gst_tag_get_nick, 
-//GO(gst_tag_get_type, 
+GO(gst_tag_get_type, LFp)
 //GO(gst_tag_is_fixed, 
-//GOM(gst_tag_list_add, vFEpipV)
-//GOM(gst_tag_list_add_valist, vFEpipA)
-//GOM(gst_tag_list_add_valist_values, vFEpipA)
+GOM(gst_tag_list_add, vFEpipV)
+GOM(gst_tag_list_add_valist, vFEpipA)
+GOM(gst_tag_list_add_valist_values, vFEpipA)
 GO(gst_tag_list_add_value, vFpipp)
-//GOM(gst_tag_list_add_values, vFEpipV)
+GOM(gst_tag_list_add_values, vFEpipV)
 GO(gst_tag_list_copy, pFp)
 GO(gst_tag_list_copy_value, iFppp)
-//GOM(gst_tag_list_foreach, vFEpBp)
+GOM(gst_tag_list_foreach, vFEppp)
 GO(gst_tag_list_get_boolean, iFppp)
 GO(gst_tag_list_get_boolean_index, iFppup)
 GO(gst_tag_list_get_date, iFppp)
@@ -1510,10 +1511,10 @@ GO(gst_tag_list_insert, vFppi)
 GO(gst_tag_list_is_empty, iFp)
 GO(gst_tag_list_is_equal, iFpp)
 GO(gst_tag_list_merge, pFppi)
-//GOM(gst_tag_list_new, pFEpV)
+GOM(gst_tag_list_new, pFEpV)
 GO(gst_tag_list_new_empty, pFv)
 GO(gst_tag_list_new_from_string, pFp)
-//GOM(gst_tag_list_new_valist, pFA)
+GOM(gst_tag_list_new_valist, pFA)
 GO(gst_tag_list_n_tags, iFp)
 GO(gst_tag_list_nth_tag_name, pFpu)
 GO(gst_tag_list_peek_string_index, iFppup)
@@ -1536,19 +1537,19 @@ GO(gst_tag_merge_mode_get_type, pFv)
 //GO(gst_tag_setter_add_tag_valist_values, 
 GO(gst_tag_setter_add_tag_value, vFpupp)
 //GO(gst_tag_setter_add_tag_values, 
-//GO(gst_tag_setter_get_tag_list, 
+GO(gst_tag_setter_get_tag_list, pFp)
 GO(gst_tag_setter_get_tag_merge_mode, uFp)
-//GO(gst_tag_setter_get_type, 
-//GO(gst_tag_setter_merge_tags, 
+GO(gst_tag_setter_get_type, LFv)
+GO(gst_tag_setter_merge_tags, vFppi)
 GO(gst_tag_setter_reset_tags, vFp)
 GO(gst_tag_setter_set_tag_merge_mode, vFpu)
 //GO(gst_task_cleanup_all, 
 //GO(gst_task_get_pool, 
 //GO(gst_task_get_state, 
 GO(gst_task_get_type, pFv)
-//GO(gst_task_join, 
-//GO(gst_task_new, 
-//GO(gst_task_pause, 
+GO(gst_task_join, iFp)
+GOM(gst_task_new, pFEppp)
+GO(gst_task_pause, iFp)
 GO(gst_task_pool_cleanup, vFp)
 GO(gst_task_pool_get_type, pFv)
 //GO(gst_task_pool_join, 
@@ -1558,12 +1559,12 @@ GO(gst_task_pool_prepare, vFp)
 //GO(gst_task_resume, 
 //GO(gst_task_set_enter_callback, 
 //GO(gst_task_set_leave_callback, 
-//GO(gst_task_set_lock, 
+GO(gst_task_set_lock, vFpp)
 GO(gst_task_set_pool, vFpp)
 //GO(gst_task_set_state, 
-//GO(gst_task_start, 
-//GO(gst_task_state_get_type, 
-//GO(gst_task_stop, 
+GO(gst_task_start, iFp)
+GO(gst_task_state_get_type, LFv)
+GO(gst_task_stop, iFp)
 GO(gst_toc_append_entry, vFpp)
 //GO(gst_toc_dump, 
 GO(gst_toc_entry_append_sub_entry, vFpp)
@@ -1572,24 +1573,24 @@ GO(gst_toc_entry_get_loop, iFppp)
 GO(gst_toc_entry_get_parent, pFp)
 GO(gst_toc_entry_get_start_stop_times, iFppp)
 GO(gst_toc_entry_get_sub_entries, pFp)
-//GO(gst_toc_entry_get_tags, 
+GO(gst_toc_entry_get_tags, pFp)
 GO(gst_toc_entry_get_toc, pFp)
 //GO(gst_toc_entry_get_type, 
 GO(gst_toc_entry_get_uid, pFp)
 //GO(gst_toc_entry_is_alternative, 
 GO(gst_toc_entry_is_sequence, iFp)
-//GO(gst_toc_entry_merge_tags, 
+GO(gst_toc_entry_merge_tags, vFppi)
 GO(gst_toc_entry_new, pFip)
 GO(gst_toc_entry_set_loop, vFpui)
 GO(gst_toc_entry_set_start_stop_times, vFpll)
-//GO(gst_toc_entry_set_tags, 
+GO(gst_toc_entry_set_tags, vFpp)
 //DATAB(_gst_toc_entry_type, 
 GO(gst_toc_entry_type_get_nick, pFi)
 //GO(gst_toc_entry_type_get_type, 
 GO(gst_toc_find_entry, pFpp)
 GO(gst_toc_get_entries, pFp)
 GO(gst_toc_get_scope, uFp)
-//GO(gst_toc_get_tags, 
+GO(gst_toc_get_tags, pFp)
 //GO(gst_toc_get_type, 
 //GO(gst_toc_loop_type_get_type, 
 //GO(gst_toc_merge_tags, 
@@ -1597,7 +1598,7 @@ GO(gst_toc_new, pFu)
 //GO(gst_toc_scope_get_type, 
 //GO(gst_toc_set_tags, 
 GO(gst_toc_setter_get_toc, pFp)
-//GO(gst_toc_setter_get_type, 
+GO(gst_toc_setter_get_type, LFv)
 GO(gst_toc_setter_reset, vFp)
 GO(gst_toc_setter_set_toc, vFpp)
 DATAB(_gst_toc_type, sizeof(void*))
@@ -1619,12 +1620,12 @@ GO(gst_type_find_factory_get_extensions, pFp)
 GO(gst_type_find_factory_get_list, pFv)
 //GO(gst_type_find_factory_get_type, 
 GO(gst_type_find_factory_has_function, iFp)
-//GO(gst_type_find_get_length, 
+GO(gst_type_find_get_length, UFp)
 //GO(gst_type_find_get_type, 
-//GO(gst_type_find_peek, 
+GO(gst_type_find_peek, pFpUu)
 //GO(gst_type_find_probability_get_type, 
-//GO(gst_type_find_register, 
-//GO(gst_type_find_suggest, 
+GOM(gst_type_find_register, iFEppuppppp)
+GO(gst_type_find_suggest, vFpup)
 //GO(gst_type_find_suggest_simple, 
 GO(gst_type_is_plugin_api, iFLp)
 GO(gst_type_mark_as_plugin_api, vFLu)
@@ -1635,7 +1636,7 @@ GO(gst_update_registry, iFv)
 GO(gst_uri_copy, pFp)
 GO(gst_uri_equal, iFpp)
 //GO(gst_uri_error_get_type, 
-//GO(gst_uri_error_quark, 
+GO(gst_uri_error_quark, pFv)
 //GO(gst_uri_from_string, 
 GO(gst_uri_from_string_escaped, pFp)
 GO(gst_uri_from_string_with_base, pFpp)
@@ -1656,13 +1657,13 @@ GO(gst_uri_get_query_value, pFpp)
 //GO(gst_uri_get_type, 
 //GO(gst_uri_get_userinfo, 
 GO(gst_uri_handler_get_protocols, pFp)
-//GO(gst_uri_handler_get_type, 
+GO(gst_uri_handler_get_type, LFv)
 GO(gst_uri_handler_get_uri, pFp)
 GO(gst_uri_handler_get_uri_type, uFp)
 GO(gst_uri_handler_set_uri, iFppp)
 GO(gst_uri_has_protocol, iFpp)
 GO(gst_uri_is_normalized, iFp)
-//GO(gst_uri_is_valid, 
+GO(gst_uri_is_valid, iFp)
 //GO(gst_uri_is_writable, 
 GO(gst_uri_join, pFpp)
 GO(gst_uri_join_strings, pFpp)
@@ -1689,13 +1690,13 @@ GO(gst_uri_set_query_value, iFppp)
 //GO(gst_uri_to_string, 
 //GO(gst_uri_type_get_type, 
 //GO(gst_uri_unref, 
-//GO(gst_util_array_binary_search, 
+GOM(gst_util_array_binary_search, pFpuLpipp)
 GO(gst_util_double_to_fraction, vFdpp)
 //GO(gst_util_dump_buffer, 
 GO(gst_util_dump_mem, vFpu)
 GO(gst_util_fraction_add, iFiiiipp)
 GO(gst_util_fraction_compare, iFiiii)
-//GO(gst_util_fraction_multiply, 
+GO(gst_util_fraction_multiply, iFiiiipp)
 GO(gst_util_fraction_to_double, vFiip)
 GO(gst_util_gdouble_to_guint64, LFd)
 GO(gst_util_get_object_array, iFppp)
@@ -1711,13 +1712,13 @@ GO(gst_util_set_object_array, iFppp)
 GO(gst_util_set_value_from_string, vFpp)
 GO(gst_util_uint64_scale, UFUUU)
 GO(gst_util_uint64_scale_ceil, LFLLL)
-//GO(gst_util_uint64_scale_int, 
+GO(gst_util_uint64_scale_int, UFUii)
 GO(gst_util_uint64_scale_int_ceil, LFLii)
-//GO(gst_util_uint64_scale_int_round, 
-//GO(gst_util_uint64_scale_round, 
+GO(gst_util_uint64_scale_int_round, UFUii)
+GO(gst_util_uint64_scale_round, UFUUU)
 GO(gst_value_array_append_and_take_value, vFpp)
-//GO(gst_value_array_append_value, 
-//GO(gst_value_array_get_size, 
+GO(gst_value_array_append_value, vFpp)
+GO(gst_value_array_get_size, iFp)
 //GO(gst_value_array_get_type, 
 GO(gst_value_array_get_value, pFpu)
 GO(gst_value_array_init, pFpu)
@@ -1733,41 +1734,41 @@ GO(gst_value_fixate, iFpp)
 //GO(gst_value_fraction_multiply, 
 //GO(gst_value_fraction_subtract, 
 GO(gst_value_get_bitmask, LFp)
-//GO(gst_value_get_caps, 
+GO(gst_value_get_caps, pFp)
 GO(gst_value_get_caps_features, pFp)
 GO(gst_value_get_double_range_max, dFp)
 //GO(gst_value_get_double_range_min, 
-//GO(gst_value_get_flagset_flags, 
+GO(gst_value_get_flagset_flags, uFp)
 GO(gst_value_get_flagset_mask, uFp)
 GO(gst_value_get_fraction_denominator, iFp)
-//GO(gst_value_get_fraction_numerator, 
+GO(gst_value_get_fraction_numerator, iFp)
 GO(gst_value_get_fraction_range_max, pFp)
-//GO(gst_value_get_fraction_range_min, 
+GO(gst_value_get_fraction_range_min, pFp)
 //GO(gst_value_get_int64_range_max, 
 //GO(gst_value_get_int64_range_min, 
 GO(gst_value_get_int64_range_step, lFp)
-//GO(gst_value_get_int_range_max, 
-//GO(gst_value_get_int_range_min, 
+GO(gst_value_get_int_range_max, iFp)
+GO(gst_value_get_int_range_min, iFp)
 //GO(gst_value_get_int_range_step, 
 GO(gst_value_get_structure, pFp)
-//GO(gst_value_init_and_copy, 
+GO(gst_value_init_and_copy, vFpp)
 //GO(gst_value_intersect, 
 GO(gst_value_is_fixed, iFp)
 //GO(gst_value_is_subset, 
-//GO(gst_value_list_append_and_take_value, 
-//GO(gst_value_list_append_value, 
+GO(gst_value_list_append_and_take_value, vFpp)
+GO(gst_value_list_append_value, vFpp)
 //GO(gst_value_list_concat, 
-//GO(gst_value_list_get_size, 
-//GO(gst_value_list_get_type, 
-//GO(gst_value_list_get_value, 
+GO(gst_value_list_get_size, uFp)
+GO(gst_value_list_get_type, LFv)
+GO(gst_value_list_get_value, pFpu)
 //GO(gst_value_list_init, 
-//GO(gst_value_list_merge, 
+GO(gst_value_list_merge, vFppp)
 //GO(gst_value_list_prepend_value, 
 DATAB(_gst_value_list_type, sizeof(void*))
 //GO(gst_value_register, 
 GO(gst_value_serialize, pFp)
 GO(gst_value_set_bitmask, vFpL)
-//GO(gst_value_set_caps, 
+GO(gst_value_set_caps, vFpp)
 GO(gst_value_set_caps_features, vFpp)
 GO(gst_value_set_double_range, vFpdd)
 GO(gst_value_set_flagset, vFpuu)
@@ -1776,10 +1777,12 @@ GO(gst_value_set_fraction_range, vFppp)
 GO(gst_value_set_fraction_range_full, vFpiiii)
 GO(gst_value_set_int64_range, vFpll)
 GO(gst_value_set_int64_range_step, vFplll)
-//GO(gst_value_set_int_range, 
+GO(gst_value_set_int_range, vFpii)
 GO(gst_value_set_int_range_step, vFpiii)
 GO(gst_value_set_structure, vFpp)
 GO(gst_value_subtract, iFppp)
 //GO(gst_value_union, 
 GO(gst_version, vFpppp)
 GO(gst_version_string, pFv)
+
+GO(dummy_iFpipLpp, iFpipLpp)    // for gtkclass
\ No newline at end of file
diff --git a/src/wrapped/wrappedgstriff.c b/src/wrapped/wrappedgstriff.c
new file mode 100644
index 00000000..35a300f1
--- /dev/null
+++ b/src/wrapped/wrappedgstriff.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstriffName = "libgstriff-1.0.so.0";
+#define LIBNAME gstriff
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstriff_private.h b/src/wrapped/wrappedgstriff_private.h
new file mode 100644
index 00000000..1952be96
--- /dev/null
+++ b/src/wrapped/wrappedgstriff_private.h
@@ -0,0 +1,19 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(gst_riff_create_audio_caps, pFWpppppp)
+GO(gst_riff_create_audio_template_caps, pFv)
+//GO(gst_riff_create_iavs_caps, 
+//GO(gst_riff_create_iavs_template_caps, 
+GO(gst_riff_create_video_caps, pFuppppp)
+GO(gst_riff_create_video_template_caps, pFv)
+GO(gst_riff_init, vFv)
+//GO(gst_riff_parse_chunk, 
+//GO(gst_riff_parse_file_header, 
+//GO(gst_riff_parse_info, 
+//GO(gst_riff_parse_strf_auds, 
+//GO(gst_riff_parse_strf_iavs, 
+//GO(gst_riff_parse_strf_vids, 
+//GO(gst_riff_parse_strh, 
+//GO(gst_riff_read_chunk, 
diff --git a/src/wrapped/wrappedgstrtp.c b/src/wrapped/wrappedgstrtp.c
new file mode 100644
index 00000000..8a32f535
--- /dev/null
+++ b/src/wrapped/wrappedgstrtp.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstrtpName = "libgstrtp-1.0.so.0";
+#define LIBNAME gstrtp
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstrtp_private.h b/src/wrapped/wrappedgstrtp_private.h
new file mode 100644
index 00000000..91c55cb5
--- /dev/null
+++ b/src/wrapped/wrappedgstrtp_private.h
@@ -0,0 +1,215 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+//GO(gst_buffer_add_rtp_source_meta, 
+//GO(gst_buffer_get_rtp_source_meta, 
+//GO(gst_rtcp_buffer_add_packet, 
+//GO(gst_rtcp_buffer_get_first_packet, 
+//GO(gst_rtcp_buffer_get_packet_count, 
+//GO(gst_rtcp_buffer_map, 
+//GO(gst_rtcp_buffer_new, 
+//GO(gst_rtcp_buffer_new_copy_data, 
+//GO(gst_rtcp_buffer_new_take_data, 
+//GO(gst_rtcp_buffer_unmap, 
+//GO(gst_rtcp_buffer_validate, 
+//GO(gst_rtcp_buffer_validate_data, 
+//GO(gst_rtcp_buffer_validate_data_reduced, 
+//GO(gst_rtcp_buffer_validate_reduced, 
+GO(gst_rtcpfb_type_get_type, LFv)
+//GO(gst_rtcp_ntp_to_unix, 
+//GO(gst_rtcp_packet_add_profile_specific_ext, 
+//GO(gst_rtcp_packet_add_rb, 
+//GO(gst_rtcp_packet_app_get_data, 
+//GO(gst_rtcp_packet_app_get_data_length, 
+//GO(gst_rtcp_packet_app_get_name, 
+//GO(gst_rtcp_packet_app_get_ssrc, 
+//GO(gst_rtcp_packet_app_get_subtype, 
+//GO(gst_rtcp_packet_app_set_data_length, 
+//GO(gst_rtcp_packet_app_set_name, 
+//GO(gst_rtcp_packet_app_set_ssrc, 
+//GO(gst_rtcp_packet_app_set_subtype, 
+//GO(gst_rtcp_packet_bye_add_ssrc, 
+//GO(gst_rtcp_packet_bye_add_ssrcs, 
+//GO(gst_rtcp_packet_bye_get_nth_ssrc, 
+//GO(gst_rtcp_packet_bye_get_reason, 
+//GO(gst_rtcp_packet_bye_get_reason_len, 
+//GO(gst_rtcp_packet_bye_get_ssrc_count, 
+//GO(gst_rtcp_packet_bye_set_reason, 
+//GO(gst_rtcp_packet_copy_profile_specific_ext, 
+//GO(gst_rtcp_packet_fb_get_fci, 
+//GO(gst_rtcp_packet_fb_get_fci_length, 
+//GO(gst_rtcp_packet_fb_get_media_ssrc, 
+//GO(gst_rtcp_packet_fb_get_sender_ssrc, 
+GO(gst_rtcp_packet_fb_get_type, LFv)
+//GO(gst_rtcp_packet_fb_set_fci_length, 
+//GO(gst_rtcp_packet_fb_set_media_ssrc, 
+//GO(gst_rtcp_packet_fb_set_sender_ssrc, 
+//GO(gst_rtcp_packet_fb_set_type, 
+//GO(gst_rtcp_packet_get_count, 
+//GO(gst_rtcp_packet_get_length, 
+//GO(gst_rtcp_packet_get_padding, 
+//GO(gst_rtcp_packet_get_profile_specific_ext, 
+//GO(gst_rtcp_packet_get_profile_specific_ext_length, 
+//GO(gst_rtcp_packet_get_rb, 
+//GO(gst_rtcp_packet_get_rb_count, 
+GO(gst_rtcp_packet_get_type, LFv)
+//GO(gst_rtcp_packet_move_to_next, 
+//GO(gst_rtcp_packet_remove, 
+//GO(gst_rtcp_packet_rr_get_ssrc, 
+//GO(gst_rtcp_packet_rr_set_ssrc, 
+//GO(gst_rtcp_packet_sdes_add_entry, 
+//GO(gst_rtcp_packet_sdes_add_item, 
+//GO(gst_rtcp_packet_sdes_copy_entry, 
+//GO(gst_rtcp_packet_sdes_first_entry, 
+//GO(gst_rtcp_packet_sdes_first_item, 
+//GO(gst_rtcp_packet_sdes_get_entry, 
+//GO(gst_rtcp_packet_sdes_get_item_count, 
+//GO(gst_rtcp_packet_sdes_get_ssrc, 
+//GO(gst_rtcp_packet_sdes_next_entry, 
+//GO(gst_rtcp_packet_sdes_next_item, 
+//GO(gst_rtcp_packet_set_rb, 
+//GO(gst_rtcp_packet_sr_get_sender_info, 
+//GO(gst_rtcp_packet_sr_set_sender_info, 
+//GO(gst_rtcp_packet_xr_first_rb, 
+//GO(gst_rtcp_packet_xr_get_block_length, 
+//GO(gst_rtcp_packet_xr_get_block_type, 
+//GO(gst_rtcp_packet_xr_get_dlrr_block, 
+//GO(gst_rtcp_packet_xr_get_prt_by_seq, 
+//GO(gst_rtcp_packet_xr_get_prt_info, 
+//GO(gst_rtcp_packet_xr_get_rle_info, 
+//GO(gst_rtcp_packet_xr_get_rle_nth_chunk, 
+//GO(gst_rtcp_packet_xr_get_rrt, 
+//GO(gst_rtcp_packet_xr_get_ssrc, 
+//GO(gst_rtcp_packet_xr_get_summary_info, 
+//GO(gst_rtcp_packet_xr_get_summary_jitter, 
+//GO(gst_rtcp_packet_xr_get_summary_pkt, 
+//GO(gst_rtcp_packet_xr_get_summary_ttl, 
+//GO(gst_rtcp_packet_xr_get_voip_burst_metrics, 
+//GO(gst_rtcp_packet_xr_get_voip_configuration_params, 
+//GO(gst_rtcp_packet_xr_get_voip_delay_metrics, 
+//GO(gst_rtcp_packet_xr_get_voip_jitter_buffer_params, 
+//GO(gst_rtcp_packet_xr_get_voip_metrics_ssrc, 
+//GO(gst_rtcp_packet_xr_get_voip_packet_metrics, 
+//GO(gst_rtcp_packet_xr_get_voip_quality_metrics, 
+//GO(gst_rtcp_packet_xr_get_voip_signal_metrics, 
+//GO(gst_rtcp_packet_xr_next_rb, 
+//GO(gst_rtcp_sdes_name_to_type, 
+GO(gst_rtcpsdes_type_get_type, LFv)
+//GO(gst_rtcp_sdes_type_to_name, 
+GO(gst_rtcp_type_get_type, LFv)
+//GO(gst_rtcp_unix_to_ntp, 
+GO(gst_rtcpxr_type_get_type, LFv)
+//GO(gst_rtp_base_audio_payload_flush, 
+//GO(gst_rtp_base_audio_payload_get_adapter, 
+GO(gst_rtp_base_audio_payload_get_type, LFv)
+//GO(gst_rtp_base_audio_payload_push, 
+//GO(gst_rtp_base_audio_payload_set_frame_based, 
+//GO(gst_rtp_base_audio_payload_set_frame_options, 
+//GO(gst_rtp_base_audio_payload_set_sample_based, 
+//GO(gst_rtp_base_audio_payload_set_samplebits_options, 
+//GO(gst_rtp_base_audio_payload_set_sample_options, 
+GO(gst_rtp_base_depayload_get_type, LFv)
+//GO(gst_rtp_base_depayload_is_source_info_enabled, 
+//GO(gst_rtp_base_depayload_push, 
+//GO(gst_rtp_base_depayload_push_list, 
+//GO(gst_rtp_base_depayload_set_source_info_enabled, 
+//GO(gst_rtp_base_payload_allocate_output_buffer, 
+//GO(gst_rtp_base_payload_get_source_count, 
+GO(gst_rtp_base_payload_get_type, LFv)
+//GO(gst_rtp_base_payload_is_filled, 
+//GO(gst_rtp_base_payload_is_source_info_enabled, 
+//GO(gst_rtp_base_payload_push, 
+//GO(gst_rtp_base_payload_push_list, 
+//GO(gst_rtp_base_payload_set_options, 
+//GO(gst_rtp_base_payload_set_outcaps, 
+//GO(gst_rtp_base_payload_set_outcaps_structure, 
+//GO(gst_rtp_base_payload_set_source_info_enabled, 
+//GO(gst_rtp_buffer_add_extension_onebyte_header, 
+//GO(gst_rtp_buffer_add_extension_twobytes_header, 
+//GO(gst_rtp_buffer_allocate_data, 
+//GO(gst_rtp_buffer_calc_header_len, 
+//GO(gst_rtp_buffer_calc_packet_len, 
+//GO(gst_rtp_buffer_calc_payload_len, 
+//GO(gst_rtp_buffer_compare_seqnum, 
+//GO(gst_rtp_buffer_default_clock_rate, 
+//GO(gst_rtp_buffer_ext_timestamp, 
+GO(gst_rtp_buffer_flags_get_type, LFv)
+//GO(gst_rtp_buffer_get_csrc, 
+//GO(gst_rtp_buffer_get_csrc_count, 
+//GO(gst_rtp_buffer_get_extension, 
+//GO(gst_rtp_buffer_get_extension_bytes, 
+//GO(gst_rtp_buffer_get_extension_data, 
+//GO(gst_rtp_buffer_get_extension_onebyte_header, 
+//GO(gst_rtp_buffer_get_extension_onebyte_header_from_bytes, 
+//GO(gst_rtp_buffer_get_extension_twobytes_header, 
+//GO(gst_rtp_buffer_get_header_len, 
+//GO(gst_rtp_buffer_get_marker, 
+//GO(gst_rtp_buffer_get_packet_len, 
+//GO(gst_rtp_buffer_get_padding, 
+//GO(gst_rtp_buffer_get_payload, 
+//GO(gst_rtp_buffer_get_payload_buffer, 
+//GO(gst_rtp_buffer_get_payload_bytes, 
+//GO(gst_rtp_buffer_get_payload_len, 
+//GO(gst_rtp_buffer_get_payload_subbuffer, 
+//GO(gst_rtp_buffer_get_payload_type, 
+//GO(gst_rtp_buffer_get_seq, 
+//GO(gst_rtp_buffer_get_ssrc, 
+//GO(gst_rtp_buffer_get_timestamp, 
+//GO(gst_rtp_buffer_get_version, 
+//GO(gst_rtp_buffer_map, 
+GO(gst_rtp_buffer_map_flags_get_type, LFv)
+//GO(gst_rtp_buffer_new_allocate, 
+//GO(gst_rtp_buffer_new_allocate_len, 
+//GO(gst_rtp_buffer_new_copy_data, 
+//GO(gst_rtp_buffer_new_take_data, 
+//GO(gst_rtp_buffer_pad_to, 
+//GO(gst_rtp_buffer_remove_extension_data, 
+//GO(gst_rtp_buffer_set_csrc, 
+//GO(gst_rtp_buffer_set_extension, 
+//GO(gst_rtp_buffer_set_extension_data, 
+//GO(gst_rtp_buffer_set_marker, 
+//GO(gst_rtp_buffer_set_packet_len, 
+//GO(gst_rtp_buffer_set_padding, 
+//GO(gst_rtp_buffer_set_payload_type, 
+//GO(gst_rtp_buffer_set_seq, 
+//GO(gst_rtp_buffer_set_ssrc, 
+//GO(gst_rtp_buffer_set_timestamp, 
+//GO(gst_rtp_buffer_set_version, 
+//GO(gst_rtp_buffer_unmap, 
+//GO(gst_rtp_get_header_extension_list, 
+//GO(gst_rtp_hdrext_get_ntp_56, 
+//GO(gst_rtp_hdrext_get_ntp_64, 
+//GO(gst_rtp_hdrext_set_ntp_56, 
+//GO(gst_rtp_hdrext_set_ntp_64, 
+//GO(gst_rtp_header_extension_class_set_uri, 
+//GO(gst_rtp_header_extension_create_from_uri, 
+GO(gst_rtp_header_extension_direction_get_type, LFv)
+GO(gst_rtp_header_extension_flags_get_type, LFv)
+//GO(gst_rtp_header_extension_get_direction, 
+//GO(gst_rtp_header_extension_get_id, 
+//GO(gst_rtp_header_extension_get_max_size, 
+//GO(gst_rtp_header_extension_get_sdp_caps_field_name, 
+//GO(gst_rtp_header_extension_get_supported_flags, 
+GO(gst_rtp_header_extension_get_type, LFv)
+//GO(gst_rtp_header_extension_get_uri, 
+//GO(gst_rtp_header_extension_read, 
+//GO(gst_rtp_header_extension_set_attributes_from_caps, 
+//GO(gst_rtp_header_extension_set_caps_from_attributes, 
+//GO(gst_rtp_header_extension_set_caps_from_attributes_helper, 
+//GO(gst_rtp_header_extension_set_direction, 
+//GO(gst_rtp_header_extension_set_id, 
+//GO(gst_rtp_header_extension_set_non_rtp_sink_caps, 
+//GO(gst_rtp_header_extension_set_wants_update_non_rtp_src_caps, 
+//GO(gst_rtp_header_extension_update_non_rtp_src_caps, 
+//GO(gst_rtp_header_extension_wants_update_non_rtp_src_caps, 
+//GO(gst_rtp_header_extension_write, 
+GO(gst_rtp_payload_get_type, LFv)
+//GO(gst_rtp_payload_info_for_name, 
+//GO(gst_rtp_payload_info_for_pt, 
+GO(gst_rtp_profile_get_type, LFv)
+GO(gst_rtp_source_meta_api_get_type, LFv)
+//GO(gst_rtp_source_meta_append_csrc, 
+//GO(gst_rtp_source_meta_get_info, 
+//GO(gst_rtp_source_meta_get_source_count, 
+//GO(gst_rtp_source_meta_set_ssrc, 
diff --git a/src/wrapped/wrappedgstrtsp.c b/src/wrapped/wrappedgstrtsp.c
new file mode 100644
index 00000000..c9afd743
--- /dev/null
+++ b/src/wrapped/wrappedgstrtsp.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstrtspName = "libgstrtsp-1.0.so.0";
+#define LIBNAME gstrtsp
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstrtsp_private.h b/src/wrapped/wrappedgstrtsp_private.h
new file mode 100644
index 00000000..f9d9ebfc
--- /dev/null
+++ b/src/wrapped/wrappedgstrtsp_private.h
@@ -0,0 +1,170 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+GO(gst_rtsp_auth_credential_get_type, LFv)
+//GO(gst_rtsp_auth_credentials_free, 
+GO(gst_rtsp_auth_method_get_type, LFv)
+//GO(gst_rtsp_auth_param_copy, 
+//GO(gst_rtsp_auth_param_free, 
+GO(gst_rtsp_auth_param_get_type, LFv)
+//GO(gst_rtsp_connection_accept, 
+//GO(gst_rtsp_connection_clear_auth_params, 
+//GO(gst_rtsp_connection_close, 
+//GO(gst_rtsp_connection_connect, 
+//GO(gst_rtsp_connection_connect_usec, 
+//GO(gst_rtsp_connection_connect_with_response, 
+//GO(gst_rtsp_connection_connect_with_response_usec, 
+//GO(gst_rtsp_connection_create, 
+//GO(gst_rtsp_connection_create_from_socket, 
+//GO(gst_rtsp_connection_do_tunnel, 
+//GO(gst_rtsp_connection_flush, 
+//GO(gst_rtsp_connection_free, 
+//GO(gst_rtsp_connection_get_ignore_x_server_reply, 
+//GO(gst_rtsp_connection_get_ip, 
+//GO(gst_rtsp_connection_get_read_socket, 
+//GO(gst_rtsp_connection_get_remember_session_id, 
+//GO(gst_rtsp_connection_get_tls, 
+//GO(gst_rtsp_connection_get_tls_database, 
+//GO(gst_rtsp_connection_get_tls_interaction, 
+//GO(gst_rtsp_connection_get_tls_validation_flags, 
+//GO(gst_rtsp_connection_get_tunnelid, 
+//GO(gst_rtsp_connection_get_url, 
+//GO(gst_rtsp_connection_get_write_socket, 
+//GO(gst_rtsp_connection_is_tunneled, 
+//GO(gst_rtsp_connection_next_timeout, 
+//GO(gst_rtsp_connection_next_timeout_usec, 
+//GO(gst_rtsp_connection_poll, 
+//GO(gst_rtsp_connection_poll_usec, 
+//GO(gst_rtsp_connection_read, 
+//GO(gst_rtsp_connection_read_usec, 
+//GO(gst_rtsp_connection_receive, 
+//GO(gst_rtsp_connection_receive_usec, 
+//GO(gst_rtsp_connection_reset_timeout, 
+//GO(gst_rtsp_connection_send, 
+//GO(gst_rtsp_connection_send_messages, 
+//GO(gst_rtsp_connection_send_messages_usec, 
+//GO(gst_rtsp_connection_send_usec, 
+//GO(gst_rtsp_connection_set_accept_certificate_func, 
+//GO(gst_rtsp_connection_set_auth, 
+//GO(gst_rtsp_connection_set_auth_param, 
+//GO(gst_rtsp_connection_set_content_length_limit, 
+//GO(gst_rtsp_connection_set_http_mode, 
+//GO(gst_rtsp_connection_set_ignore_x_server_reply, 
+//GO(gst_rtsp_connection_set_ip, 
+//GO(gst_rtsp_connection_set_proxy, 
+//GO(gst_rtsp_connection_set_qos_dscp, 
+//GO(gst_rtsp_connection_set_remember_session_id, 
+//GO(gst_rtsp_connection_set_tls_database, 
+//GO(gst_rtsp_connection_set_tls_interaction, 
+//GO(gst_rtsp_connection_set_tls_validation_flags, 
+//GO(gst_rtsp_connection_set_tunneled, 
+//GO(gst_rtsp_connection_write, 
+//GO(gst_rtsp_connection_write_usec, 
+GO(gst_rtsp_event_get_type, LFv)
+//GO(gst_rtsp_extension_after_send, 
+//GO(gst_rtsp_extension_before_send, 
+//GO(gst_rtsp_extension_configure_stream, 
+//GO(gst_rtsp_extension_detect_server, 
+//GO(gst_rtsp_extension_get_transports, 
+GO(gst_rtsp_extension_get_type, LFv)
+//GO(gst_rtsp_extension_parse_sdp, 
+//GO(gst_rtsp_extension_receive_request, 
+//GO(gst_rtsp_extension_send, 
+//GO(gst_rtsp_extension_setup_media, 
+//GO(gst_rtsp_extension_stream_select, 
+GO(gst_rtsp_family_get_type, LFv)
+//GO(gst_rtsp_find_header_field, 
+//GO(gst_rtsp_find_method, 
+//GO(gst_rtsp_generate_digest_auth_response, 
+//GO(gst_rtsp_generate_digest_auth_response_from_md5, 
+//GO(gst_rtsp_header_allow_multiple, 
+//GO(gst_rtsp_header_as_text, 
+GO(gst_rtsp_header_field_get_type, LFv)
+GO(gst_rtsp_lower_trans_get_type, LFv)
+//GO(gst_rtsp_message_add_header, 
+//GO(gst_rtsp_message_add_header_by_name, 
+//GO(gst_rtsp_message_append_headers, 
+//GO(gst_rtsp_message_copy, 
+//GO(gst_rtsp_message_dump, 
+//GO(gst_rtsp_message_free, 
+//GO(gst_rtsp_message_get_body, 
+//GO(gst_rtsp_message_get_body_buffer, 
+//GO(gst_rtsp_message_get_header, 
+//GO(gst_rtsp_message_get_header_by_name, 
+GO(gst_rtsp_message_get_type, LFv)
+//GO(gst_rtsp_message_has_body_buffer, 
+//GO(gst_rtsp_message_init, 
+//GO(gst_rtsp_message_init_data, 
+//GO(gst_rtsp_message_init_request, 
+//GO(gst_rtsp_message_init_response, 
+//GO(gst_rtsp_message_new, 
+//GO(gst_rtsp_message_new_data, 
+//GO(gst_rtsp_message_new_request, 
+//GO(gst_rtsp_message_new_response, 
+//GO(gst_rtsp_message_parse_auth_credentials, 
+//GO(gst_rtsp_message_parse_data, 
+//GO(gst_rtsp_message_parse_request, 
+//GO(gst_rtsp_message_parse_response, 
+//GO(gst_rtsp_message_remove_header, 
+//GO(gst_rtsp_message_remove_header_by_name, 
+//GO(gst_rtsp_message_set_body, 
+//GO(gst_rtsp_message_set_body_buffer, 
+//GO(gst_rtsp_message_steal_body, 
+//GO(gst_rtsp_message_steal_body_buffer, 
+//GO(gst_rtsp_message_take_body, 
+//GO(gst_rtsp_message_take_body_buffer, 
+//GO(gst_rtsp_message_take_header, 
+//GO(gst_rtsp_message_take_header_by_name, 
+//GO(gst_rtsp_message_unset, 
+//GO(gst_rtsp_method_as_text, 
+GO(gst_rtsp_method_get_type, LFv)
+GO(gst_rtsp_msg_get_type, LFv)
+GO(gst_rtsp_msg_type_get_type, LFv)
+//GO(gst_rtsp_options_as_text, 
+//GO(gst_rtsp_options_from_text, 
+GO(gst_rtsp_profile_get_type, LFv)
+//GO(gst_rtsp_range_convert_units, 
+//GO(gst_rtsp_range_free, 
+//GO(gst_rtsp_range_get_times, 
+//GO(gst_rtsp_range_parse, 
+//GO(gst_rtsp_range_to_string, 
+GO(gst_rtsp_range_unit_get_type, LFv)
+GO(gst_rtsp_result_get_type, LFv)
+GO(gst_rtsp_state_get_type, LFv)
+//GO(gst_rtsp_status_as_text, 
+GO(gst_rtsp_status_code_get_type, LFv)
+//GO(gst_rtsp_strresult, 
+GO(gst_rtsp_time_type_get_type, LFv)
+GO(gst_rtsp_trans_mode_get_type, LFv)
+//GO(gst_rtsp_transport_as_text, 
+//GO(gst_rtsp_transport_free, 
+//GO(gst_rtsp_transport_get_manager, 
+//GO(gst_rtsp_transport_get_media_type, 
+//GO(gst_rtsp_transport_get_mime, 
+//GO(gst_rtsp_transport_init, 
+//GO(gst_rtsp_transport_new, 
+//GO(gst_rtsp_transport_parse, 
+//GO(gst_rtsp_url_copy, 
+//GO(gst_rtsp_url_decode_path_components, 
+//GO(gst_rtsp_url_free, 
+//GO(gst_rtsp_url_get_port, 
+//GO(gst_rtsp_url_get_request_uri, 
+//GO(gst_rtsp_url_get_request_uri_with_control, 
+GO(gst_rtsp_url_get_type, LFv)
+//GO(gst_rtsp_url_parse, 
+//GO(gst_rtsp_url_set_port, 
+//GO(gst_rtsp_version_as_text, 
+GO(gst_rtsp_version_get_type, LFv)
+//GO(gst_rtsp_watch_attach, 
+//GO(gst_rtsp_watch_get_send_backlog, 
+//GO(gst_rtsp_watch_new, 
+//GO(gst_rtsp_watch_reset, 
+//GO(gst_rtsp_watch_send_message, 
+//GO(gst_rtsp_watch_send_messages, 
+//GO(gst_rtsp_watch_set_flushing, 
+//GO(gst_rtsp_watch_set_send_backlog, 
+//GO(gst_rtsp_watch_unref, 
+//GO(gst_rtsp_watch_wait_backlog, 
+//GO(gst_rtsp_watch_wait_backlog_usec, 
+//GO(gst_rtsp_watch_write_data, 
diff --git a/src/wrapped/wrappedgstsdp.c b/src/wrapped/wrappedgstsdp.c
new file mode 100644
index 00000000..833f4165
--- /dev/null
+++ b/src/wrapped/wrappedgstsdp.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+const char* gstsdpName = "libgstsdp-1.0.so.0";
+#define LIBNAME gstsdp
+
+#define PRE_INIT    \
+    if(box64_nogtk) \
+        return -1;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstsdp_private.h b/src/wrapped/wrappedgstsdp_private.h
new file mode 100644
index 00000000..ba88728f
--- /dev/null
+++ b/src/wrapped/wrappedgstsdp_private.h
@@ -0,0 +1,178 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error meh!
+#endif
+
+//GO(gst_mikey_message_add_cs_srtp, 
+//GO(gst_mikey_message_add_payload, 
+//GO(gst_mikey_message_add_pke, 
+//GO(gst_mikey_message_add_rand, 
+//GO(gst_mikey_message_add_rand_len, 
+//GO(gst_mikey_message_add_t, 
+//GO(gst_mikey_message_add_t_now_ntp_utc, 
+//GO(gst_mikey_message_base64_encode, 
+//GO(gst_mikey_message_find_payload, 
+//GO(gst_mikey_message_get_cs_srtp, 
+//GO(gst_mikey_message_get_n_cs, 
+//GO(gst_mikey_message_get_n_payloads, 
+//GO(gst_mikey_message_get_payload, 
+GO(gst_mikey_message_get_type, LFv)
+//GO(gst_mikey_message_insert_cs_srtp, 
+//GO(gst_mikey_message_insert_payload, 
+//GO(gst_mikey_message_new, 
+//GO(gst_mikey_message_new_from_bytes, 
+//GO(gst_mikey_message_new_from_caps, 
+//GO(gst_mikey_message_new_from_data, 
+//GO(gst_mikey_message_remove_cs_srtp, 
+//GO(gst_mikey_message_remove_payload, 
+//GO(gst_mikey_message_replace_cs_srtp, 
+//GO(gst_mikey_message_replace_payload, 
+//GO(gst_mikey_message_set_info, 
+//GO(gst_mikey_message_to_bytes, 
+//GO(gst_mikey_message_to_caps, 
+GO(gst_mikey_payload_get_type, LFv)
+//GO(gst_mikey_payload_kemac_add_sub, 
+//GO(gst_mikey_payload_kemac_get_n_sub, 
+//GO(gst_mikey_payload_kemac_get_sub, 
+//GO(gst_mikey_payload_kemac_remove_sub, 
+//GO(gst_mikey_payload_kemac_set, 
+//GO(gst_mikey_payload_key_data_set_interval, 
+//GO(gst_mikey_payload_key_data_set_key, 
+//GO(gst_mikey_payload_key_data_set_salt, 
+//GO(gst_mikey_payload_key_data_set_spi, 
+//GO(gst_mikey_payload_new, 
+//GO(gst_mikey_payload_pke_set, 
+//GO(gst_mikey_payload_rand_set, 
+//GO(gst_mikey_payload_sp_add_param, 
+//GO(gst_mikey_payload_sp_get_n_params, 
+//GO(gst_mikey_payload_sp_get_param, 
+//GO(gst_mikey_payload_sp_remove_param, 
+//GO(gst_mikey_payload_sp_set, 
+//GO(gst_mikey_payload_t_set, 
+//GO(gst_sdp_address_is_multicast, 
+//GO(gst_sdp_attribute_clear, 
+//GO(gst_sdp_attribute_set, 
+//GO(gst_sdp_bandwidth_clear, 
+//GO(gst_sdp_bandwidth_set, 
+//GO(gst_sdp_connection_clear, 
+//GO(gst_sdp_connection_set, 
+//GO(gst_sdp_make_keymgmt, 
+//GO(gst_sdp_media_add_attribute, 
+//GO(gst_sdp_media_add_bandwidth, 
+//GO(gst_sdp_media_add_connection, 
+//GO(gst_sdp_media_add_format, 
+//GO(gst_sdp_media_as_text, 
+//GO(gst_sdp_media_attributes_len, 
+//GO(gst_sdp_media_attributes_to_caps, 
+//GO(gst_sdp_media_bandwidths_len, 
+//GO(gst_sdp_media_connections_len, 
+//GO(gst_sdp_media_copy, 
+//GO(gst_sdp_media_formats_len, 
+//GO(gst_sdp_media_free, 
+//GO(gst_sdp_media_get_attribute, 
+//GO(gst_sdp_media_get_attribute_val, 
+//GO(gst_sdp_media_get_attribute_val_n, 
+//GO(gst_sdp_media_get_bandwidth, 
+//GO(gst_sdp_media_get_caps_from_media, 
+//GO(gst_sdp_media_get_connection, 
+//GO(gst_sdp_media_get_format, 
+//GO(gst_sdp_media_get_information, 
+//GO(gst_sdp_media_get_key, 
+//GO(gst_sdp_media_get_media, 
+//GO(gst_sdp_media_get_num_ports, 
+//GO(gst_sdp_media_get_port, 
+//GO(gst_sdp_media_get_proto, 
+//GO(gst_sdp_media_init, 
+//GO(gst_sdp_media_insert_attribute, 
+//GO(gst_sdp_media_insert_bandwidth, 
+//GO(gst_sdp_media_insert_connection, 
+//GO(gst_sdp_media_insert_format, 
+//GO(gst_sdp_media_new, 
+//GO(gst_sdp_media_parse_keymgmt, 
+//GO(gst_sdp_media_remove_attribute, 
+//GO(gst_sdp_media_remove_bandwidth, 
+//GO(gst_sdp_media_remove_connection, 
+//GO(gst_sdp_media_remove_format, 
+//GO(gst_sdp_media_replace_attribute, 
+//GO(gst_sdp_media_replace_bandwidth, 
+//GO(gst_sdp_media_replace_connection, 
+//GO(gst_sdp_media_replace_format, 
+//GO(gst_sdp_media_set_information, 
+//GO(gst_sdp_media_set_key, 
+//GO(gst_sdp_media_set_media, 
+//GO(gst_sdp_media_set_media_from_caps, 
+//GO(gst_sdp_media_set_port_info, 
+//GO(gst_sdp_media_set_proto, 
+//GO(gst_sdp_media_uninit, 
+//GO(gst_sdp_message_add_attribute, 
+//GO(gst_sdp_message_add_bandwidth, 
+//GO(gst_sdp_message_add_email, 
+//GO(gst_sdp_message_add_media, 
+//GO(gst_sdp_message_add_phone, 
+//GO(gst_sdp_message_add_time, 
+//GO(gst_sdp_message_add_zone, 
+//GO(gst_sdp_message_as_text, 
+//GO(gst_sdp_message_as_uri, 
+//GO(gst_sdp_message_attributes_len, 
+//GO(gst_sdp_message_attributes_to_caps, 
+//GO(gst_sdp_message_bandwidths_len, 
+//GO(gst_sdp_message_copy, 
+//GO(gst_sdp_message_dump, 
+//GO(gst_sdp_message_emails_len, 
+//GO(gst_sdp_message_free, 
+//GO(gst_sdp_message_get_attribute, 
+//GO(gst_sdp_message_get_attribute_val, 
+//GO(gst_sdp_message_get_attribute_val_n, 
+//GO(gst_sdp_message_get_bandwidth, 
+//GO(gst_sdp_message_get_connection, 
+//GO(gst_sdp_message_get_email, 
+//GO(gst_sdp_message_get_information, 
+//GO(gst_sdp_message_get_key, 
+//GO(gst_sdp_message_get_media, 
+//GO(gst_sdp_message_get_origin, 
+//GO(gst_sdp_message_get_phone, 
+//GO(gst_sdp_message_get_session_name, 
+//GO(gst_sdp_message_get_time, 
+GO(gst_sdp_message_get_type, LFv)
+//GO(gst_sdp_message_get_uri, 
+//GO(gst_sdp_message_get_version, 
+//GO(gst_sdp_message_get_zone, 
+//GO(gst_sdp_message_init, 
+//GO(gst_sdp_message_insert_attribute, 
+//GO(gst_sdp_message_insert_bandwidth, 
+//GO(gst_sdp_message_insert_email, 
+//GO(gst_sdp_message_insert_phone, 
+//GO(gst_sdp_message_insert_time, 
+//GO(gst_sdp_message_insert_zone, 
+//GO(gst_sdp_message_medias_len, 
+//GO(gst_sdp_message_new, 
+//GO(gst_sdp_message_new_from_text, 
+//GO(gst_sdp_message_parse_buffer, 
+//GO(gst_sdp_message_parse_keymgmt, 
+//GO(gst_sdp_message_parse_uri, 
+//GO(gst_sdp_message_phones_len, 
+//GO(gst_sdp_message_remove_attribute, 
+//GO(gst_sdp_message_remove_bandwidth, 
+//GO(gst_sdp_message_remove_email, 
+//GO(gst_sdp_message_remove_phone, 
+//GO(gst_sdp_message_remove_time, 
+//GO(gst_sdp_message_remove_zone, 
+//GO(gst_sdp_message_replace_attribute, 
+//GO(gst_sdp_message_replace_bandwidth, 
+//GO(gst_sdp_message_replace_email, 
+//GO(gst_sdp_message_replace_phone, 
+//GO(gst_sdp_message_replace_time, 
+//GO(gst_sdp_message_replace_zone, 
+//GO(gst_sdp_message_set_connection, 
+//GO(gst_sdp_message_set_information, 
+//GO(gst_sdp_message_set_key, 
+//GO(gst_sdp_message_set_origin, 
+//GO(gst_sdp_message_set_session_name, 
+//GO(gst_sdp_message_set_uri, 
+//GO(gst_sdp_message_set_version, 
+//GO(gst_sdp_message_times_len, 
+//GO(gst_sdp_message_uninit, 
+//GO(gst_sdp_message_zones_len, 
+//GO(gst_sdp_time_clear, 
+//GO(gst_sdp_time_set, 
+//GO(gst_sdp_zone_clear, 
+//GO(gst_sdp_zone_set, 
diff --git a/src/wrapped/wrappedgsttag_private.h b/src/wrapped/wrappedgsttag_private.h
index 26e284ae..9049c9e8 100644
--- a/src/wrapped/wrappedgsttag_private.h
+++ b/src/wrapped/wrappedgsttag_private.h
@@ -5,7 +5,7 @@
 //GO(gst_tag_check_language_code, 
 //GO(gst_tag_demux_get_type, 
 //GO(gst_tag_demux_result_get_type, 
-//GO(gst_tag_freeform_string_to_utf8, 
+GO(gst_tag_freeform_string_to_utf8, pFpip)
 //GO(gst_tag_from_id3_tag, 
 //GO(gst_tag_from_id3_user_tag, 
 //GO(gst_tag_from_vorbis_tag, 
@@ -24,15 +24,15 @@ GO(gst_tag_get_language_name, pFp)
 //GO(gst_tag_get_license_version, 
 //GO(gst_tag_id3_genre_count, 
 //GO(gst_tag_id3_genre_get, 
-//GO(gst_tag_image_data_to_image_sample, 
+GO(gst_tag_image_data_to_image_sample, pFpui)
 //GO(gst_tag_image_type_get_type, 
 //GO(gst_tag_license_flags_get_type, 
 //GO(gst_tag_list_add_id3_image, 
 //GO(gst_tag_list_from_exif_buffer, 
 //GO(gst_tag_list_from_exif_buffer_with_tiff_header, 
 //GO(gst_tag_list_from_id3v2_tag, 
-//GO(gst_tag_list_from_vorbiscomment, 
-//GO(gst_tag_list_from_vorbiscomment_buffer, 
+GO(gst_tag_list_from_vorbiscomment, pFpLpup)
+GO(gst_tag_list_from_vorbiscomment_buffer, pFppup)
 //GO(gst_tag_list_from_xmp_buffer, 
 //GO(gst_tag_list_new_from_id3v1, 
 //GO(gst_tag_list_to_exif_buffer, 
diff --git a/src/wrapped/wrappedgstvideo.c b/src/wrapped/wrappedgstvideo.c
index 7bb08d74..eb9bbd16 100644
--- a/src/wrapped/wrappedgstvideo.c
+++ b/src/wrapped/wrappedgstvideo.c
@@ -11,12 +11,47 @@
 #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"
+#include "gtkclass.h"
+#include "fileutils.h"
 
 const char* gstvideoName = "libgstvideo-1.0.so.0";
 #define LIBNAME gstvideo
 
+typedef size_t  (*LFv_t)();
+
+#define ADDED_FUNCTIONS()                           \
+    GO(gst_video_decoder_get_type, LFv_t)           \
+    GO(gst_video_encoder_get_type, LFv_t)           \
+    GO(gst_video_sink_get_type, LFv_t)              \
+    GO(gst_video_aggregator_get_type, LFv_t)        \
+    GO(gst_video_aggregator_pad_get_type, LFv_t)    \
+    GO(gst_video_filter_get_type, LFv_t)            \
+
+#include "generated/wrappedgstbasetypes.h"
+
+#include "wrappercallback.h"
+
 #define PRE_INIT    \
     if(box64_nogtk) \
         return -1;
 
+#define CUSTOM_INIT \
+    getMy(lib);     \
+    SetGstVideoDecoderID(my->gst_video_decoder_get_type());\
+    SetGstVideoEncoderID(my->gst_video_encoder_get_type());\
+    SetGstVideoSinkID(my->gst_video_sink_get_type());\
+    SetGstVideoAggregatorID(my->gst_video_aggregator_get_type());\
+    SetGstVideoAggregatorPadID(my->gst_video_aggregator_pad_get_type());\
+    SetGstVideoFilterID(my->gst_video_filter_get_type());\
+    setNeededLibs(lib, 1, "libgstreamer-1.0.so.0");
+
+#define CUSTOM_FINI \
+    freeMy();
+
 #include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedgstvideo_private.h b/src/wrapped/wrappedgstvideo_private.h
index 27eb4aec..56d66473 100644
--- a/src/wrapped/wrappedgstvideo_private.h
+++ b/src/wrapped/wrappedgstvideo_private.h
@@ -3,44 +3,53 @@
 #endif
 
 //GO(gst_buffer_add_video_afd_meta, 
-//GO(gst_buffer_add_video_affine_transformation_meta, 
+GO(gst_buffer_add_video_affine_transformation_meta, pFp)
 //GO(gst_buffer_add_video_bar_meta, 
-//GO(gst_buffer_add_video_caption_meta, 
+GO(gst_buffer_add_video_caption_meta, pFpipL)
+GO(gst_buffer_add_video_codec_alpha_meta, pFpp)
 //GO(gst_buffer_add_video_gl_texture_upload_meta, 
-//GO(gst_buffer_add_video_meta, 
-//GO(gst_buffer_add_video_meta_full, 
+GO(gst_buffer_add_video_meta, pFpiiuu)
+GO(gst_buffer_add_video_meta_full, pFpiiuuupp)
 //GO(gst_buffer_add_video_overlay_composition_meta, 
 //GO(gst_buffer_add_video_region_of_interest_meta, 
 //GO(gst_buffer_add_video_region_of_interest_meta_id, 
-//GO(gst_buffer_add_video_time_code_meta, 
+GO(gst_buffer_add_video_time_code_meta, pFpp)
 //GO(gst_buffer_add_video_time_code_meta_full, 
-//GO(gst_buffer_get_video_meta, 
+GO(gst_buffer_get_video_meta, pFp)
 //GO(gst_buffer_get_video_meta_id, 
 //GO(gst_buffer_get_video_region_of_interest_meta_id, 
 GO(gst_buffer_pool_config_get_video_alignment, iFpp)
 GO(gst_buffer_pool_config_set_video_alignment, vFpp)
-//GO(gst_color_balance_channel_get_type, 
+GO(gst_color_balance_channel_get_type, LFv)
 GO(gst_color_balance_get_balance_type, uFp)
-//GO(gst_color_balance_get_type, 
+GO(gst_color_balance_get_type, LFv)
 GO(gst_color_balance_get_value, iFpp)
 GO(gst_color_balance_list_channels, pFp)
-//GO(gst_color_balance_set_value, 
+GO(gst_color_balance_set_value, vFppi)
 //GO(gst_color_balance_type_get_type, 
 GO(gst_color_balance_value_changed, vFppi)
 //GO(gst_is_video_overlay_prepare_window_handle_message, 
 //GO(gst_navigation_command_get_type, 
-//GO(gst_navigation_event_get_type, 
+GO(gst_navigation_event_get_coordinates, iFppp)
+GO(gst_navigation_event_get_type, LFv)
+GO(gst_navigation_event_new_key_press, pFpi)
+GO(gst_navigation_event_new_key_release, pFpi)
+GO(gst_navigation_event_new_mouse_button_press, pFpddi)
+GO(gst_navigation_event_new_mouse_button_release, pFpddi)
+GO(gst_navigation_event_new_mouse_move, pFddi)
+GO(gst_navigation_event_new_mouse_scroll, pFddddi)
 //GO(gst_navigation_event_parse_command, 
-//GO(gst_navigation_event_parse_key_event, 
+GO(gst_navigation_event_parse_key_event, iFpp)
 //GO(gst_navigation_event_parse_mouse_button_event, 
 //GO(gst_navigation_event_parse_mouse_move_event, 
-//GO(gst_navigation_event_parse_mouse_scroll_event, 
+GO(gst_navigation_event_parse_mouse_scroll_event, iFppppp)
+GO(gst_navigation_event_set_coordinates, iFpdd)
 //GO(gst_navigation_event_type_get_type, 
-//GO(gst_navigation_get_type, 
+GO(gst_navigation_get_type, LFv)
 //GO(gst_navigation_message_get_type, 
 //GO(gst_navigation_message_new_angles_changed, 
 //GO(gst_navigation_message_new_commands_changed, 
-//GO(gst_navigation_message_new_event, 
+GO(gst_navigation_message_new_event, pFpp)
 //GO(gst_navigation_message_new_mouse_over, 
 //GO(gst_navigation_message_parse_angles_changed, 
 //GO(gst_navigation_message_parse_event, 
@@ -55,136 +64,140 @@ GO(gst_color_balance_value_changed, vFppi)
 //GO(gst_navigation_query_set_angles, 
 //GO(gst_navigation_query_set_commands, 
 //GO(gst_navigation_query_set_commandsv, 
-//GO(gst_navigation_query_type_get_type, 
+GO(gst_navigation_query_type_get_type, LFv)
 GO(gst_navigation_send_command, vFpu)
 GO(gst_navigation_send_event, vFpp)
+GO(gst_navigation_send_event_simple, vFpp)
 GO(gst_navigation_send_key_event, vFppp)
 GO(gst_navigation_send_mouse_event, vFppidd)
 GO(gst_navigation_send_mouse_scroll_event, vFpdddd)
-//GO(gst_video_afd_meta_api_get_type, 
+GO(gst_video_afd_meta_api_get_type, LFv)
 //GO(gst_video_afd_meta_get_info, 
-//GO(gst_video_afd_spec_get_type, 
-//GO(gst_video_afd_value_get_type, 
-//GO(gst_video_affine_transformation_meta_api_get_type, 
+GO(gst_video_afd_spec_get_type, LFv)
+GO(gst_video_afd_value_get_type, LFv)
+GO(gst_video_affine_transformation_meta_api_get_type, LFv)
 //GO(gst_video_affine_transformation_meta_apply_matrix, 
 //GO(gst_video_affine_transformation_meta_get_info, 
-//GO(gst_video_aggregator_convert_pad_get_type, 
+GO(gst_video_aggregator_convert_pad_get_type, LFv)
 //GO(gst_video_aggregator_convert_pad_update_conversion_info, 
-//GO(gst_video_aggregator_get_type, 
-//GO(gst_video_aggregator_pad_get_current_buffer, 
+GO(gst_video_aggregator_get_type, LFv)
+GO(gst_video_aggregator_pad_get_current_buffer, pFp)
 //GO(gst_video_aggregator_pad_get_prepared_frame, 
-//GO(gst_video_aggregator_pad_get_type, 
+GO(gst_video_aggregator_pad_get_type, LFv)
 //GO(gst_video_aggregator_pad_has_current_buffer, 
 //GO(gst_video_aggregator_pad_set_needs_alpha, 
 GO(gst_video_alignment_reset, vFp)
-//GO(gst_video_alpha_mode_get_type, 
-//GO(gst_video_ancillary_di_d16_get_type, 
-//GO(gst_video_ancillary_did_get_type, 
-//GO(gst_video_bar_meta_api_get_type, 
+GO(gst_video_alpha_mode_get_type, LFv)
+GO(gst_video_ancillary_di_d16_get_type, LFv)
+GO(gst_video_ancillary_did_get_type, LFv)
+GO(gst_video_bar_meta_api_get_type, LFv)
 //GO(gst_video_bar_meta_get_info, 
 //GO(gst_video_blend, 
 //GO(gst_video_blend_scale_linear_RGBA, 
-//GO(gst_video_buffer_flags_get_type, 
-//GO(gst_video_buffer_pool_get_type, 
+GO(gst_video_buffer_flags_get_type, LFv)
+GO(gst_video_buffer_pool_get_type, LFv)
 GO(gst_video_buffer_pool_new, pFv)
 GO(gst_video_calculate_display_ratio, iFppuuuuuu)
-//GO(gst_video_caption_meta_api_get_type, 
+GO(gst_video_caption_meta_api_get_type, LFv)
 //GO(gst_video_caption_meta_get_info, 
 //GO(gst_video_caption_type_from_caps, 
-//GO(gst_video_caption_type_get_type, 
+GO(gst_video_caption_type_get_type, LFv)
 //GO(gst_video_caption_type_to_caps, 
-//GO(gst_video_chroma_flags_get_type, 
+GO(gst_video_chroma_flags_get_type, LFv)
 //GO(gst_video_chroma_from_string, 
-//GO(gst_video_chroma_method_get_type, 
-//GO(gst_video_chroma_mode_get_type, 
+GO(gst_video_chroma_method_get_type, LFv)
+GO(gst_video_chroma_mode_get_type, LFv)
 GO(gst_video_chroma_resample, vFppi)
 GO(gst_video_chroma_resample_free, vFp)
 GO(gst_video_chroma_resample_get_info, vFppp)
 GO(gst_video_chroma_resample_new, pFuuuuii)
-//GO(gst_video_chroma_site_get_type, 
+GO(gst_video_chroma_site_get_type, LFv)
 GO(gst_video_chroma_to_string, pFu)
-//GO(gst_video_codec_frame_get_type, 
+GO(gst_video_codec_frame_get_type, LFv)
 //GO(gst_video_codec_frame_get_user_data, 
-//GO(gst_video_codec_frame_ref, 
+GO(gst_video_codec_frame_ref, pFp)
 //GO(gst_video_codec_frame_set_user_data, 
-//GO(gst_video_codec_frame_unref, 
-//GO(gst_video_codec_state_get_type, 
-//GO(gst_video_codec_state_ref, 
-//GO(gst_video_codec_state_unref, 
+GO(gst_video_codec_frame_unref, vFp)
+GO(gst_video_codec_state_get_type, LFv)
+GO(gst_video_codec_state_ref, pFp)
+GO(gst_video_codec_state_unref, vFp)
 GO(gst_video_colorimetry_from_string, iFpp)
 GO(gst_video_colorimetry_is_equal, iFpp)
 GO(gst_video_colorimetry_matches, iFpp)
 GO(gst_video_colorimetry_to_string, pFp)
 GO(gst_video_color_matrix_from_iso, uFu)
 GO(gst_video_color_matrix_get_Kr_Kb, iFupp)
-//GO(gst_video_color_matrix_get_type, 
+GO(gst_video_color_matrix_get_type, LFv)
 GO(gst_video_color_matrix_to_iso, uFu)
 GO(gst_video_color_primaries_from_iso, uFu)
 GO(gst_video_color_primaries_get_info, pFu)
-//GO(gst_video_color_primaries_get_type, 
+GO(gst_video_color_primaries_get_type, LFv)
 GO(gst_video_color_primaries_to_iso, uFu)
-//GO(gst_video_color_range_get_type, 
+GO(gst_video_color_range_get_type, LFv)
 //GO(gst_video_color_range_offsets, 
 //GO(gst_video_color_transfer_decode, 
 //GO(gst_video_color_transfer_encode, 
-//GO(gst_video_content_light_level_add_to_caps, 
+GO(gst_video_content_light_level_add_to_caps, iFpp)
 //GO(gst_video_content_light_level_from_caps, 
 GO(gst_video_content_light_level_from_string, iFpp)
 GO(gst_video_content_light_level_init, vFp)
 GO(gst_video_content_light_level_to_string, pFp)
-//GO(gst_video_converter_frame, 
-//GO(gst_video_converter_free, 
+GO(gst_video_converter_frame, vFppp)
+GO(gst_video_converter_free, vFp)
 GO(gst_video_converter_get_config, pFp)
-//GO(gst_video_converter_new, 
+GO(gst_video_converter_new, pFppp)
 GO(gst_video_converter_set_config, iFpp)
 //GO(gst_video_convert_sample, 
 //GO(gst_video_convert_sample_async, 
-//GO(gst_video_crop_meta_api_get_type, 
-//GO(gst_video_crop_meta_get_info, 
-//GO(gst_video_decoder_add_to_frame, 
+GO(gst_video_crop_meta_api_get_type, LFv)
+GO(gst_video_crop_meta_get_info, pFv)
+GO(gst_video_decoder_add_to_frame, vFpi)
 //GO(gst_video_decoder_allocate_output_buffer, 
-//GO(gst_video_decoder_allocate_output_frame, 
+GO(gst_video_decoder_allocate_output_frame, iFpp)
 //GO(gst_video_decoder_allocate_output_frame_with_params, 
-//GO(gst_video_decoder_drop_frame, 
-//GO(_gst_video_decoder_error, 
-//GO(gst_video_decoder_finish_frame, 
+GO(gst_video_decoder_drop_frame, iFpp)
+GO(_gst_video_decoder_error, iFpipippppi)
+GO(gst_video_decoder_finish_frame, iFpp)
 //GO(gst_video_decoder_get_allocator, 
-//GO(gst_video_decoder_get_buffer_pool, 
+GO(gst_video_decoder_get_buffer_pool, pFp)
 //GO(gst_video_decoder_get_estimate_rate, 
-//GO(gst_video_decoder_get_frame, 
-//GO(gst_video_decoder_get_frames, 
+GO(gst_video_decoder_get_frame, pFpi)
+GO(gst_video_decoder_get_frames, pFp)
 //GO(gst_video_decoder_get_latency, 
-//GO(gst_video_decoder_get_max_decode_time, 
+GO(gst_video_decoder_get_max_decode_time, IFpp)
 //GO(gst_video_decoder_get_max_errors, 
 //GO(gst_video_decoder_get_needs_format, 
 //GO(gst_video_decoder_get_oldest_frame, 
-//GO(gst_video_decoder_get_output_state, 
+GO(gst_video_decoder_get_output_state, pFp)
 //GO(gst_video_decoder_get_packetized, 
 //GO(gst_video_decoder_get_pending_frame_size, 
 //GO(gst_video_decoder_get_qos_proportion, 
-//GO(gst_video_decoder_get_type, 
-//GO(gst_video_decoder_have_frame, 
-//GO(gst_video_decoder_merge_tags, 
-//GO(gst_video_decoder_negotiate, 
-//GO(gst_video_decoder_proxy_getcaps, 
-//GO(gst_video_decoder_release_frame, 
+GO(gst_video_decoder_get_subframe_mode, iFp)
+GO(gst_video_decoder_get_type, LFv)
+GO(gst_video_decoder_have_frame, iFp)
+GO(gst_video_decoder_have_last_subframe, iFpp)
+GO(gst_video_decoder_merge_tags, vFppi)
+GO(gst_video_decoder_negotiate, iFp)
+GO(gst_video_decoder_proxy_getcaps, pFppp)
+GO(gst_video_decoder_release_frame, vFpp)
 //GO(gst_video_decoder_set_estimate_rate, 
-//GO(gst_video_decoder_set_interlaced_output_state, 
-//GO(gst_video_decoder_set_latency, 
+GO(gst_video_decoder_set_interlaced_output_state, pFpiiuup)
+GO(gst_video_decoder_set_latency, vFpUU)
 //GO(gst_video_decoder_set_max_errors, 
-//GO(gst_video_decoder_set_needs_format, 
-//GO(gst_video_decoder_set_output_state, 
-//GO(gst_video_decoder_set_packetized, 
-//GO(gst_video_decoder_set_use_default_pad_acceptcaps, 
-//GO(gst_video_direction_get_type, 
+GO(gst_video_decoder_set_needs_format, vFpi)
+GO(gst_video_decoder_set_output_state, pFpiuup)
+GO(gst_video_decoder_set_packetized, vFpi)
+GO(gst_video_decoder_set_subframe_mode, vFpi)
+GO(gst_video_decoder_set_use_default_pad_acceptcaps, vFpi)
+GO(gst_video_direction_get_type, LFv)
 //GO(gst_video_dither_flags_get_type, 
 GO(gst_video_dither_free, vFp)
 GO(gst_video_dither_line, vFppuuu)
-//GO(gst_video_dither_method_get_type, 
+GO(gst_video_dither_method_get_type, LFv)
 GO(gst_video_dither_new, pFuuupu)
-//GO(gst_video_encoder_allocate_output_buffer, 
-//GO(gst_video_encoder_allocate_output_frame, 
-//GO(gst_video_encoder_finish_frame, 
+GO(gst_video_encoder_allocate_output_buffer, pFpL)
+GO(gst_video_encoder_allocate_output_frame, iFppL)
+GO(gst_video_encoder_finish_frame, iFpp)
 //GO(gst_video_encoder_finish_subframe, 
 //GO(gst_video_encoder_get_allocator, 
 //GO(gst_video_encoder_get_frame, 
@@ -192,36 +205,36 @@ GO(gst_video_dither_new, pFuuupu)
 //GO(gst_video_encoder_get_latency, 
 //GO(gst_video_encoder_get_max_encode_time, 
 //GO(gst_video_encoder_get_min_force_key_unit_interval, 
-//GO(gst_video_encoder_get_oldest_frame, 
+GO(gst_video_encoder_get_oldest_frame, pFp)
 //GO(gst_video_encoder_get_output_state, 
-//GO(gst_video_encoder_get_type, 
+GO(gst_video_encoder_get_type, LFv)
 //GO(gst_video_encoder_is_qos_enabled, 
-//GO(gst_video_encoder_merge_tags, 
-//GO(gst_video_encoder_negotiate, 
-//GO(gst_video_encoder_proxy_getcaps, 
-//GO(gst_video_encoder_set_headers, 
+GO(gst_video_encoder_merge_tags, vFppi)
+GO(gst_video_encoder_negotiate, iFp)
+GO(gst_video_encoder_proxy_getcaps, pFppp)
+GO(gst_video_encoder_set_headers, vFpp)
 //GO(gst_video_encoder_set_latency, 
 //GO(gst_video_encoder_set_min_force_key_unit_interval, 
-//GO(gst_video_encoder_set_min_pts, 
-//GO(gst_video_encoder_set_output_state, 
+GO(gst_video_encoder_set_min_pts, vFpU)
+GO(gst_video_encoder_set_output_state, pFppp)
 //GO(gst_video_encoder_set_qos_enabled, 
 //GO(gst_video_event_is_force_key_unit, 
 //GO(gst_video_event_new_downstream_force_key_unit, 
 //GO(gst_video_event_new_still_frame, 
 //GO(gst_video_event_new_upstream_force_key_unit, 
 //GO(gst_video_event_parse_downstream_force_key_unit, 
-//GO(gst_video_event_parse_still_frame, 
+GO(gst_video_event_parse_still_frame, iFpp)
 //GO(gst_video_event_parse_upstream_force_key_unit, 
 GO(gst_video_field_order_from_string, uFp)
-GO(gst_video_field_order_get_type, pFv)
+GO(gst_video_field_order_get_type, LFv)
 GO(gst_video_field_order_to_string, pFu)
-GO(gst_video_filter_get_type, pFv)
-GO(gst_video_flags_get_type, pFv)
-GO(gst_video_format_flags_get_type, pFv)
+GO(gst_video_filter_get_type, LFv)
+GO(gst_video_flags_get_type, LFv)
+GO(gst_video_format_flags_get_type, LFv)
 GO(gst_video_format_from_fourcc, uFu)
 GO(gst_video_format_from_masks, uFiiiuuuu)
 GO(gst_video_format_from_string, uFp)
-//GO(gst_video_format_get_info, 
+GO(gst_video_format_get_info, pFi)
 GO(gst_video_format_get_palette, pFup)
 //GO(gst_video_format_get_type, 
 //GO(gst_video_format_info_component, 
@@ -229,14 +242,14 @@ GO(gst_video_formats_raw, pFp)
 GO(gst_video_format_to_fourcc, uFu)
 GO(gst_video_format_to_string, pFu)
 GO(gst_video_frame_copy, iFpp)
-//GO(gst_video_frame_copy_plane, 
+GO(gst_video_frame_copy_plane, iFppu)
 //GO(gst_video_frame_flags_get_type, 
 GO(gst_video_frame_map, iFpppu)
 //GO(gst_video_frame_map_flags_get_type, 
 //GO(gst_video_frame_map_id, 
 GO(gst_video_frame_unmap, vFp)
-//GO(gst_video_gamma_mode_get_type, 
-//GO(gst_video_gl_texture_upload_meta_api_get_type, 
+GO(gst_video_gamma_mode_get_type, LFv)
+GO(gst_video_gl_texture_upload_meta_api_get_type, LFv)
 //GO(gst_video_gl_texture_upload_meta_get_info, 
 //GO(gst_video_gl_texture_upload_meta_upload, 
 GO(gst_video_guess_framerate, iFLpp)
@@ -246,7 +259,7 @@ GO(gst_video_info_convert, iFpiIip)
 GO(gst_video_info_copy, pFp)
 GO(gst_video_info_free, vFp)
 GO(gst_video_info_from_caps, iFpp)
-GO(gst_video_info_get_type, pFv)
+GO(gst_video_info_get_type, LFv)
 GO(gst_video_info_init, vFp)
 GO(gst_video_info_is_equal, iFpp)
 GO(gst_video_info_new, pFv)
@@ -254,28 +267,29 @@ GO(gst_video_info_set_format, iFpiuu)
 GO(gst_video_info_set_interlaced_format, iFpiiuu)
 GO(gst_video_info_to_caps, pFp)
 GO(gst_video_interlace_mode_from_string, uFp)
-GO(gst_video_interlace_mode_get_type, pFv)
+GO(gst_video_interlace_mode_get_type, LFv)
 GO(gst_video_interlace_mode_to_string, pFu)
+GO(gst_video_is_common_aspect_ratio, iFiiii)
 //GO(gst_video_make_raw_caps, 
 //GO(gst_video_make_raw_caps_with_features, 
-//GO(gst_video_mastering_display_info_add_to_caps, 
+GO(gst_video_mastering_display_info_add_to_caps, iFpp)
 //GO(gst_video_mastering_display_info_from_caps, 
 GO(gst_video_mastering_display_info_from_string, iFpp)
 GO(gst_video_mastering_display_info_init, vFp)
 GO(gst_video_mastering_display_info_is_equal, iFpp)
 GO(gst_video_mastering_display_info_to_string, pFp)
-//GO(gst_video_matrix_mode_get_type, 
-GO(gst_video_meta_api_get_type, pFv)
+GO(gst_video_matrix_mode_get_type, LFv)
+GO(gst_video_meta_api_get_type, LFv)
 //GO(gst_video_meta_get_info, 
 //GO(gst_video_meta_get_plane_height, 
 //GO(gst_video_meta_get_plane_size, 
 //GO(gst_video_meta_map, 
-//GO(gst_video_meta_set_alignment, 
-GO(gst_video_meta_transform_scale_get_quark, uFv)
+GO(gst_video_meta_set_alignment, iFpi)
+GO(gst_video_meta_transform_scale_get_quark, pFv)
 //GO(gst_video_meta_unmap, 
-//GO(gst_video_multiview_flagset_get_type, 
-//GO(gst_video_multiview_flags_get_type, 
-//GO(gst_video_multiview_frame_packing_get_type, 
+GO(gst_video_multiview_flagset_get_type, LFv)
+GO(gst_video_multiview_flags_get_type, LFv)
+GO(gst_video_multiview_frame_packing_get_type, LFv)
 //GO(gst_video_multiview_get_doubled_height_modes, 
 GO(gst_video_multiview_get_doubled_size_modes, pFv)
 //GO(gst_video_multiview_get_doubled_width_modes, 
@@ -283,15 +297,16 @@ GO(gst_video_multiview_get_doubled_size_modes, pFv)
 //GO(gst_video_multiview_get_unpacked_modes, 
 GO(gst_video_multiview_guess_half_aspect, iFiuuuu)
 GO(gst_video_multiview_mode_from_caps_string, iFp)
-//GO(gst_video_multiview_mode_get_type, 
+GO(gst_video_multiview_mode_get_type, LFv)
 GO(gst_video_multiview_mode_to_caps_string, pFi)
-//GO(gst_video_multiview_video_info_change_mode, 
+GO(gst_video_multiview_video_info_change_mode, vFpii)
+GO(gst_video_orientation_from_tag, iFpp)
 //GO(gst_video_orientation_get_hcenter, 
 //GO(gst_video_orientation_get_hflip, 
-//GO(gst_video_orientation_get_type, 
+GO(gst_video_orientation_get_type, LFv)
 GO(gst_video_orientation_get_vcenter, iFpp)
 GO(gst_video_orientation_get_vflip, iFpp)
-//GO(gst_video_orientation_method_get_type, 
+GO(gst_video_orientation_method_get_type, LFv)
 //GO(gst_video_orientation_set_hcenter, 
 //GO(gst_video_orientation_set_hflip, 
 GO(gst_video_orientation_set_vcenter, iFpi)
@@ -301,18 +316,18 @@ GO(gst_video_overlay_composition_add_rectangle, vFpp)
 //GO(gst_video_overlay_composition_copy, 
 GO(gst_video_overlay_composition_get_rectangle, pFpu)
 GO(gst_video_overlay_composition_get_seqnum, uFp)
-//GO(gst_video_overlay_composition_get_type, 
+GO(gst_video_overlay_composition_get_type, LFv)
 GO(gst_video_overlay_composition_make_writable, pFp)
-//GO(gst_video_overlay_composition_meta_api_get_type, 
+GO(gst_video_overlay_composition_meta_api_get_type, LFv)
 //GO(gst_video_overlay_composition_meta_get_info, 
 GO(gst_video_overlay_composition_new, pFp)
-//GO(gst_video_overlay_composition_n_rectangles, 
-//GO(gst_video_overlay_expose, 
-//GO(gst_video_overlay_format_flags_get_type, 
-//GO(gst_video_overlay_get_type, 
+GO(gst_video_overlay_composition_n_rectangles, uFp)
+GO(gst_video_overlay_expose, vFp)
+GO(gst_video_overlay_format_flags_get_type, LFv)
+GO(gst_video_overlay_get_type, LFv)
 GO(gst_video_overlay_got_window_handle, vFpL)
 GO(gst_video_overlay_handle_events, vFpi)
-//GO(gst_video_overlay_install_properties, 
+GO(gst_video_overlay_install_properties, vFpi)
 GO(gst_video_overlay_prepare_window_handle, vFp)
 GO(gst_video_overlay_rectangle_copy, pFp)
 GO(gst_video_overlay_rectangle_get_flags, uFp)
@@ -325,46 +340,46 @@ GO(gst_video_overlay_rectangle_get_global_alpha, fFp)
 //GO(gst_video_overlay_rectangle_get_pixels_unscaled_raw, 
 GO(gst_video_overlay_rectangle_get_render_rectangle, iFppppp)
 GO(gst_video_overlay_rectangle_get_seqnum, uFp)
-//GO(gst_video_overlay_rectangle_get_type, 
+GO(gst_video_overlay_rectangle_get_type, LFv)
 //GO(gst_video_overlay_rectangle_new_raw, 
 GO(gst_video_overlay_rectangle_set_global_alpha, vFpf)
 GO(gst_video_overlay_rectangle_set_render_rectangle, vFpiiuu)
 GO(gst_video_overlay_set_property, iFpiup)
 GO(gst_video_overlay_set_render_rectangle, iFpiiii)
-//GO(gst_video_overlay_set_window_handle, 
-//GO(gst_video_pack_flags_get_type, 
-//GO(gst_video_primaries_mode_get_type, 
+GO(gst_video_overlay_set_window_handle, vFpL)
+GO(gst_video_pack_flags_get_type, LFv)
+GO(gst_video_primaries_mode_get_type, LFv)
 //GO(gst_video_region_of_interest_meta_add_param, 
-//GO(gst_video_region_of_interest_meta_api_get_type, 
+GO(gst_video_region_of_interest_meta_api_get_type, LFv)
 //GO(gst_video_region_of_interest_meta_get_info, 
 //GO(gst_video_region_of_interest_meta_get_param, 
 GO(gst_video_resampler_clear, vFp)
-//GO(gst_video_resampler_flags_get_type, 
+GO(gst_video_resampler_flags_get_type, LFv)
 GO(gst_video_resampler_init, iFpuuuuduup)
-//GO(gst_video_resampler_method_get_type, 
+GO(gst_video_resampler_method_get_type, LFv)
 GO(gst_video_scaler_2d, vFppupipiuuuu)
 GO(gst_video_scaler_combine_packed_YUV, pFppuu)
-//GO(gst_video_scaler_flags_get_type, 
+GO(gst_video_scaler_flags_get_type, LFv)
 GO(gst_video_scaler_free, vFp)
 GO(gst_video_scaler_get_coeff, pFpupp)
 GO(gst_video_scaler_get_max_taps, uFp)
 GO(gst_video_scaler_horizontal, vFpuppuu)
 GO(gst_video_scaler_new, pFuuuuup)
 GO(gst_video_scaler_vertical, vFpuppuu)
-//GO(gst_video_sink_center_rect, 
-//GO(gst_video_sink_get_type, 
+GO(gst_video_sink_center_rect, vFpppppi)    // this is vFHHpi, with 2 GstVideoRectangle struct that are 4 ints
+GO(gst_video_sink_get_type, LFv)
 GO(gst_video_tile_get_index, uFuiiii)
-//GO(gst_video_tile_mode_get_type, 
-//GO(gst_video_tile_type_get_type, 
+GO(gst_video_tile_mode_get_type, LFv)
+GO(gst_video_tile_type_get_type, LFv)
 GO(gst_video_time_code_add_frames, vFpl)
 GO(gst_video_time_code_add_interval, pFpp)
 //GO(gst_video_time_code_clear, 
 GO(gst_video_time_code_compare, iFpp)
 GO(gst_video_time_code_copy, pFp)
-//GO(gst_video_time_code_flags_get_type, 
+GO(gst_video_time_code_flags_get_type, LFv)
 GO(gst_video_time_code_frames_since_daily_jam, LFp)
-//GO(gst_video_time_code_free, 
-//GO(gst_video_time_code_get_type, 
+GO(gst_video_time_code_free, vFp)
+GO(gst_video_time_code_get_type, LFv)
 GO(gst_video_time_code_increment_frame, vFp)
 GO(gst_video_time_code_init, vFpuupuuuuuu)
 GO(gst_video_time_code_init_from_date_time, vFpuupuu)
@@ -372,12 +387,12 @@ GO(gst_video_time_code_init_from_date_time_full, iFpuupuu)
 GO(gst_video_time_code_interval_clear, vFp)
 GO(gst_video_time_code_interval_copy, pFp)
 //GO(gst_video_time_code_interval_free, 
-//GO(gst_video_time_code_interval_get_type, 
+GO(gst_video_time_code_interval_get_type, LFv)
 GO(gst_video_time_code_interval_init, vFpuuuu)
 GO(gst_video_time_code_interval_new, pFuuuu)
 GO(gst_video_time_code_interval_new_from_string, pFp)
 GO(gst_video_time_code_is_valid, iFp)
-//GO(gst_video_time_code_meta_api_get_type, 
+GO(gst_video_time_code_meta_api_get_type, LFv)
 //GO(gst_video_time_code_meta_get_info, 
 GO(gst_video_time_code_new, pFuupuuuuuu)
 GO(gst_video_time_code_new_empty, pFv)
diff --git a/src/wrapped/wrappedlibogg_private.h b/src/wrapped/wrappedlibogg_private.h
index 3440cc2e..1f1a96f9 100644
--- a/src/wrapped/wrappedlibogg_private.h
+++ b/src/wrapped/wrappedlibogg_private.h
@@ -47,8 +47,8 @@ GO(ogg_page_checksum_set, iFp)
 GO(ogg_page_continued, iFp)
 GO(ogg_page_eos, iFp)
 GO(ogg_page_granulepos, IFp)
-//GO(ogg_page_packets, 
-//GO(ogg_page_pageno, 
+GO(ogg_page_packets, iFp)
+GO(ogg_page_pageno, lFp)
 GO(ogg_page_serialno, iFp)
 //GO(ogg_page_version, 
 //GO(ogg_stream_check, 
diff --git a/src/wrapped/wrappedlibva_private.h b/src/wrapped/wrappedlibva_private.h
index cba8dc0e..c8592038 100644
--- a/src/wrapped/wrappedlibva_private.h
+++ b/src/wrapped/wrappedlibva_private.h
@@ -2,7 +2,7 @@
 #error meh!
 #endif
 
-//GO(vaAcquireBufferHandle, 
+GO(vaAcquireBufferHandle, iFpup)
 //GO(vaAssociateSubpicture, 
 //GO(vaAttachProtectedSession, 
 GO(vaBeginPicture, iFpup)
@@ -74,10 +74,10 @@ GO(vaQueryVendorString, pFp)
 //GO(vaQueryVideoProcFilterCaps, 
 //GO(vaQueryVideoProcFilters, 
 GO(vaQueryVideoProcPipelineCaps, iFpupup)
-//GO(vaReleaseBufferHandle, 
+GO(vaReleaseBufferHandle, iFpu)
 GO(vaRenderPicture, iFpupi)
 //GO(vaSetDisplayAttributes, 
-//GO(vaSetDriverName, 
+GO(vaSetDriverName, iFpp)
 GOM(vaSetErrorCallback, pFEppp)
 //GO(vaSetImagePalette, 
 GOM(vaSetInfoCallback, pFEppp)