about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-19 13:54:28 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-19 13:54:28 +0200
commitf683ae95c31b75baa1d7735ba390a4832015624a (patch)
tree96e5d0ce919aac879754f9b4e18ff82195e2318a /src
parent6bdeb182531f21f7ee8dfcc8b1cf639276d96f63 (diff)
downloadbox64-f683ae95c31b75baa1d7735ba390a4832015624a.tar.gz
box64-f683ae95c31b75baa1d7735ba390a4832015624a.zip
[BOX32][WRAPPER] Added a few more SDL2 32bits wrapped functions
Diffstat (limited to 'src')
-rw-r--r--src/libtools/sdl2align32.c10
-rw-r--r--src/wrapped32/generated/functions_list.txt9
-rw-r--r--src/wrapped32/generated/wrappedsdl2defs32.h2
-rw-r--r--src/wrapped32/generated/wrappedsdl2types32.h3
-rw-r--r--src/wrapped32/generated/wrappedsdl2undefs32.h2
-rw-r--r--src/wrapped32/generated/wrapper32.c10
-rw-r--r--src/wrapped32/generated/wrapper32.h5
-rw-r--r--src/wrapped32/wrappedsdl2.c11
-rw-r--r--src/wrapped32/wrappedsdl2_private.h68
9 files changed, 86 insertions, 34 deletions
diff --git a/src/libtools/sdl2align32.c b/src/libtools/sdl2align32.c
index 377b85e1..2f90fdeb 100644
--- a/src/libtools/sdl2align32.c
+++ b/src/libtools/sdl2align32.c
@@ -222,6 +222,11 @@ void convert_SDL2_Event_to_64(void* dst_, const void* src_)
             dst->cbutton.padding1 = src->cbutton.padding1;
             dst->cbutton.padding2 = src->cbutton.padding2;
             break;
+        case SDL2_SYSWMEVENT:
+            dst->syswm.type = src->syswm.type;
+            dst->syswm.timestamp = src->syswm.timestamp;
+            dst->syswm.msg = from_ptrv(src->syswm.msg);
+            break;
         default:
             printf_log(LOG_INFO, "Warning, unsuported SDL2 event %d\n", src->type);
             if(dst_!=src_)
@@ -395,6 +400,11 @@ void convert_SDL2_Event_to_32(void* dst_, const void* src_)
             dst->cbutton.padding1 = src->cbutton.padding1;
             dst->cbutton.padding2 = src->cbutton.padding2;
             break;
+        case SDL2_SYSWMEVENT:
+            dst->syswm.type = src->syswm.type;
+            dst->syswm.timestamp = src->syswm.timestamp;
+            dst->syswm.msg = to_ptrv_silent(src->syswm.msg);    // msg would need translation probably!
+            break;
         default:
             printf_log(LOG_INFO, "Warning, unsuported SDL2 event %d\n", src->type);
             if(dst_!=src_)
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index bf846e64..2c523fd9 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -186,6 +186,7 @@
 #() IFpu -> IFpu
 #() CFip -> CFip
 #() CFCi -> CFCi
+#() CFui -> CFui
 #() CFuu -> CFuu
 #() CFuU -> CFuU
 #() CFpi -> CFpi
@@ -427,6 +428,7 @@
 #() iFpup -> iFpup
 #() iFpUU -> iFpUU
 #() iFpfu -> iFpfu
+#() iFpff -> iFpff
 #() iFpli -> iFpli
 #() iFpll -> iFpll
 #() iFpLi -> iFpLi
@@ -749,6 +751,8 @@
 #() iFpiuu -> iFpiuu
 #() iFpili -> iFpili
 #() iFpipp -> iFpipp
+#() iFpCCC -> iFpCCC
+#() iFpWWu -> iFpWWu
 #() iFpuLp -> iFpuLp
 #() iFpupi -> iFpupi
 #() iFpupp -> iFpupp
@@ -797,6 +801,7 @@
 #() uFuuuu -> uFuuuu
 #() uFpCCC -> uFpCCC
 #() uFppip -> uFppip
+#() uFpppi -> uFpppi
 #() lFEipi -> lFEipi
 #() lFEppL -> lFEppL
 #() lFiipL -> lFiipL
@@ -2340,9 +2345,12 @@ wrappedsdl2:
   - SDL_GetThreadID
 - JFi:
   - SDL_JoystickGetDeviceGUID
+- JFp:
+  - SDL_JoystickGetGUIDFromString
 - vFpp:
   - SDL_AddEventWatch
   - SDL_DelEventWatch
+  - SDL_SetEventFilter
   - SDL_SetWindowIcon
 - vFpV:
   - SDL_Log
@@ -2402,6 +2410,7 @@ wrappedsdl2:
 - pFpiiiiuuuu:
   - SDL_CreateRGBSurfaceFrom
 % JFEi -> pFEpi
+% JFEp -> pFEpp
 wrappedsdl2image:
 - pFp:
   - IMG_Load
diff --git a/src/wrapped32/generated/wrappedsdl2defs32.h b/src/wrapped32/generated/wrappedsdl2defs32.h
index f029a366..ea9404db 100644
--- a/src/wrapped32/generated/wrappedsdl2defs32.h
+++ b/src/wrapped32/generated/wrappedsdl2defs32.h
@@ -6,5 +6,7 @@
 
 #define JFEi pFEpi
 #define JFEi_32 pFEpi_32
+#define JFEp pFEpp
+#define JFEp_32 pFEpp_32
 
 #endif // __wrappedsdl2DEFS32_H_
diff --git a/src/wrapped32/generated/wrappedsdl2types32.h b/src/wrapped32/generated/wrappedsdl2types32.h
index 447aab69..627bb6c8 100644
--- a/src/wrapped32/generated/wrappedsdl2types32.h
+++ b/src/wrapped32/generated/wrappedsdl2types32.h
@@ -18,6 +18,7 @@ typedef void* (*pFv_t)(void);
 typedef void* (*pFp_t)(void*);
 typedef uintptr_t (*hFp_t)(void*);
 typedef SDL2_GUID_t (*JFi_t)(int32_t);
+typedef SDL2_GUID_t (*JFp_t)(void*);
 typedef void (*vFpp_t)(void*, void*);
 typedef void (*vFpV_t)(void*, ...);
 typedef int32_t (*iFip_t)(int32_t, void*);
@@ -55,8 +56,10 @@ typedef void* (*pFpiiiiuuuu_t)(void*, int32_t, int32_t, int32_t, int32_t, uint32
 	GO(SDL_GL_GetProcAddress, pFp_t) \
 	GO(SDL_GetThreadID, hFp_t) \
 	GO(SDL_JoystickGetDeviceGUID, JFi_t) \
+	GO(SDL_JoystickGetGUIDFromString, JFp_t) \
 	GO(SDL_AddEventWatch, vFpp_t) \
 	GO(SDL_DelEventWatch, vFpp_t) \
+	GO(SDL_SetEventFilter, vFpp_t) \
 	GO(SDL_SetWindowIcon, vFpp_t) \
 	GO(SDL_Log, vFpV_t) \
 	GO(SDL_GetCurrentDisplayMode, iFip_t) \
diff --git a/src/wrapped32/generated/wrappedsdl2undefs32.h b/src/wrapped32/generated/wrappedsdl2undefs32.h
index 6a9a88b5..13a187a7 100644
--- a/src/wrapped32/generated/wrappedsdl2undefs32.h
+++ b/src/wrapped32/generated/wrappedsdl2undefs32.h
@@ -6,5 +6,7 @@
 
 #undef JFEi
 #undef JFEi_32
+#undef JFEp
+#undef JFEp_32
 
 #endif // __wrappedsdl2UNDEFS32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index a72c33be..016b43e9 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -276,6 +276,7 @@ typedef int64_t (*IFII_t)(int64_t, int64_t);
 typedef int64_t (*IFpu_t)(void*, uint32_t);
 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);
 typedef uint8_t (*CFuu_t)(uint32_t, uint32_t);
 typedef uint8_t (*CFuU_t)(uint32_t, uint64_t);
 typedef uint8_t (*CFpi_t)(void*, int32_t);
@@ -517,6 +518,7 @@ typedef int32_t (*iFpuU_t)(void*, uint32_t, uint64_t);
 typedef int32_t (*iFpup_t)(void*, uint32_t, void*);
 typedef int32_t (*iFpUU_t)(void*, uint64_t, uint64_t);
 typedef int32_t (*iFpfu_t)(void*, float, uint32_t);
+typedef int32_t (*iFpff_t)(void*, float, float);
 typedef int32_t (*iFpli_t)(void*, intptr_t, int32_t);
 typedef int32_t (*iFpll_t)(void*, intptr_t, intptr_t);
 typedef int32_t (*iFpLi_t)(void*, uintptr_t, int32_t);
@@ -839,6 +841,8 @@ typedef int32_t (*iFpiip_t)(void*, int32_t, int32_t, void*);
 typedef int32_t (*iFpiuu_t)(void*, int32_t, uint32_t, uint32_t);
 typedef int32_t (*iFpili_t)(void*, int32_t, intptr_t, int32_t);
 typedef int32_t (*iFpipp_t)(void*, int32_t, void*, void*);
+typedef int32_t (*iFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
+typedef int32_t (*iFpWWu_t)(void*, uint16_t, uint16_t, uint32_t);
 typedef int32_t (*iFpuLp_t)(void*, uint32_t, uintptr_t, void*);
 typedef int32_t (*iFpupi_t)(void*, uint32_t, void*, int32_t);
 typedef int32_t (*iFpupp_t)(void*, uint32_t, void*, void*);
@@ -887,6 +891,7 @@ typedef uint32_t (*uFEpii_t)(x64emu_t*, void*, int32_t, int32_t);
 typedef uint32_t (*uFuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t);
 typedef uint32_t (*uFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
 typedef uint32_t (*uFppip_t)(void*, void*, int32_t, void*);
+typedef uint32_t (*uFpppi_t)(void*, void*, void*, int32_t);
 typedef intptr_t (*lFEipi_t)(x64emu_t*, int32_t, void*, int32_t);
 typedef intptr_t (*lFEppL_t)(x64emu_t*, void*, void*, uintptr_t);
 typedef intptr_t (*lFiipL_t)(int32_t, int32_t, void*, uintptr_t);
@@ -1782,6 +1787,7 @@ void IFII_32(x64emu_t *emu, uintptr_t fcn) { IFII_t fn = (IFII_t)fcn; ui64_t r;
 void IFpu_32(x64emu_t *emu, uintptr_t fcn) { IFpu_t fn = (IFpu_t)fcn; ui64_t r; r.i = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8)); R_EAX = r.d[0]; R_EDX = r.d[1]; }
 void CFip_32(x64emu_t *emu, uintptr_t fcn) { CFip_t fn = (CFip_t)fcn; R_EAX = (unsigned char)fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8)); }
 void CFCi_32(x64emu_t *emu, uintptr_t fcn) { CFCi_t fn = (CFCi_t)fcn; R_EAX = (unsigned char)fn(from_ptri(uint8_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); }
+void CFui_32(x64emu_t *emu, uintptr_t fcn) { CFui_t fn = (CFui_t)fcn; R_EAX = (unsigned char)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); }
 void CFuu_32(x64emu_t *emu, uintptr_t fcn) { CFuu_t fn = (CFuu_t)fcn; R_EAX = (unsigned char)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8)); }
 void CFuU_32(x64emu_t *emu, uintptr_t fcn) { CFuU_t fn = (CFuU_t)fcn; R_EAX = (unsigned char)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint64_t, R_ESP + 8)); }
 void CFpi_32(x64emu_t *emu, uintptr_t fcn) { CFpi_t fn = (CFpi_t)fcn; R_EAX = (unsigned char)fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); }
@@ -2023,6 +2029,7 @@ void iFpuU_32(x64emu_t *emu, uintptr_t fcn) { iFpuU_t fn = (iFpuU_t)fcn; R_EAX =
 void iFpup_32(x64emu_t *emu, uintptr_t fcn) { iFpup_t fn = (iFpup_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); }
 void iFpUU_32(x64emu_t *emu, uintptr_t fcn) { iFpUU_t fn = (iFpUU_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint64_t, R_ESP + 8), from_ptri(uint64_t, R_ESP + 16)); }
 void iFpfu_32(x64emu_t *emu, uintptr_t fcn) { iFpfu_t fn = (iFpfu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); }
+void iFpff_32(x64emu_t *emu, uintptr_t fcn) { iFpff_t fn = (iFpff_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(float, R_ESP + 8), from_ptri(float, R_ESP + 12)); }
 void iFpli_32(x64emu_t *emu, uintptr_t fcn) { iFpli_t fn = (iFpli_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12)); }
 void iFpll_32(x64emu_t *emu, uintptr_t fcn) { iFpll_t fn = (iFpll_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_long(from_ptri(long_t, R_ESP + 8)), from_long(from_ptri(long_t, R_ESP + 12))); }
 void iFpLi_32(x64emu_t *emu, uintptr_t fcn) { iFpLi_t fn = (iFpLi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(int32_t, R_ESP + 12)); }
@@ -2345,6 +2352,8 @@ void iFpiip_32(x64emu_t *emu, uintptr_t fcn) { iFpiip_t fn = (iFpiip_t)fcn; R_EA
 void iFpiuu_32(x64emu_t *emu, uintptr_t fcn) { iFpiuu_t fn = (iFpiuu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
 void iFpili_32(x64emu_t *emu, uintptr_t fcn) { iFpili_t fn = (iFpili_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_long(from_ptri(long_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16)); }
 void iFpipp_32(x64emu_t *emu, uintptr_t fcn) { iFpipp_t fn = (iFpipp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
+void iFpCCC_32(x64emu_t *emu, uintptr_t fcn) { iFpCCC_t fn = (iFpCCC_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint8_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(uint8_t, R_ESP + 16)); }
+void iFpWWu_32(x64emu_t *emu, uintptr_t fcn) { iFpWWu_t fn = (iFpWWu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint16_t, R_ESP + 8), from_ptri(uint16_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
 void iFpuLp_32(x64emu_t *emu, uintptr_t fcn) { iFpuLp_t fn = (iFpuLp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); }
 void iFpupi_32(x64emu_t *emu, uintptr_t fcn) { iFpupi_t fn = (iFpupi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFpupp_32(x64emu_t *emu, uintptr_t fcn) { iFpupp_t fn = (iFpupp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
@@ -2393,6 +2402,7 @@ void uFEpii_32(x64emu_t *emu, uintptr_t fcn) { uFEpii_t fn = (uFEpii_t)fcn; R_EA
 void uFuuuu_32(x64emu_t *emu, uintptr_t fcn) { uFuuuu_t fn = (uFuuuu_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
 void uFpCCC_32(x64emu_t *emu, uintptr_t fcn) { uFpCCC_t fn = (uFpCCC_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptri(uint8_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(uint8_t, R_ESP + 16)); }
 void uFppip_32(x64emu_t *emu, uintptr_t fcn) { uFppip_t fn = (uFppip_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); }
+void uFpppi_32(x64emu_t *emu, uintptr_t fcn) { uFpppi_t fn = (uFpppi_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void lFEipi_32(x64emu_t *emu, uintptr_t fcn) { lFEipi_t fn = (lFEipi_t)fcn; R_EAX = to_long(fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); }
 void lFEppL_32(x64emu_t *emu, uintptr_t fcn) { lFEppL_t fn = (lFEppL_t)fcn; R_EAX = to_long(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)))); }
 void lFiipL_32(x64emu_t *emu, uintptr_t fcn) { lFiipL_t fn = (lFiipL_t)fcn; R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16)))); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index abc2e583..a8c98c69 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -227,6 +227,7 @@ void IFII_32(x64emu_t *emu, uintptr_t fnc);
 void IFpu_32(x64emu_t *emu, uintptr_t fnc);
 void CFip_32(x64emu_t *emu, uintptr_t fnc);
 void CFCi_32(x64emu_t *emu, uintptr_t fnc);
+void CFui_32(x64emu_t *emu, uintptr_t fnc);
 void CFuu_32(x64emu_t *emu, uintptr_t fnc);
 void CFuU_32(x64emu_t *emu, uintptr_t fnc);
 void CFpi_32(x64emu_t *emu, uintptr_t fnc);
@@ -468,6 +469,7 @@ void iFpuU_32(x64emu_t *emu, uintptr_t fnc);
 void iFpup_32(x64emu_t *emu, uintptr_t fnc);
 void iFpUU_32(x64emu_t *emu, uintptr_t fnc);
 void iFpfu_32(x64emu_t *emu, uintptr_t fnc);
+void iFpff_32(x64emu_t *emu, uintptr_t fnc);
 void iFpli_32(x64emu_t *emu, uintptr_t fnc);
 void iFpll_32(x64emu_t *emu, uintptr_t fnc);
 void iFpLi_32(x64emu_t *emu, uintptr_t fnc);
@@ -790,6 +792,8 @@ void iFpiip_32(x64emu_t *emu, uintptr_t fnc);
 void iFpiuu_32(x64emu_t *emu, uintptr_t fnc);
 void iFpili_32(x64emu_t *emu, uintptr_t fnc);
 void iFpipp_32(x64emu_t *emu, uintptr_t fnc);
+void iFpCCC_32(x64emu_t *emu, uintptr_t fnc);
+void iFpWWu_32(x64emu_t *emu, uintptr_t fnc);
 void iFpuLp_32(x64emu_t *emu, uintptr_t fnc);
 void iFpupi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpupp_32(x64emu_t *emu, uintptr_t fnc);
@@ -838,6 +842,7 @@ void uFEpii_32(x64emu_t *emu, uintptr_t fnc);
 void uFuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void uFpCCC_32(x64emu_t *emu, uintptr_t fnc);
 void uFppip_32(x64emu_t *emu, uintptr_t fnc);
+void uFpppi_32(x64emu_t *emu, uintptr_t fnc);
 void lFEipi_32(x64emu_t *emu, uintptr_t fnc);
 void lFEppL_32(x64emu_t *emu, uintptr_t fnc);
 void lFiipL_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedsdl2.c b/src/wrapped32/wrappedsdl2.c
index 267ca237..d9ab15d7 100644
--- a/src/wrapped32/wrappedsdl2.c
+++ b/src/wrapped32/wrappedsdl2.c
@@ -201,6 +201,13 @@ EXPORT void* my32_2_SDL_JoystickGetDeviceGUID(void* ret, int index)
    return ret;
 }
 
+EXPORT void* my32_2_SDL_JoystickGetGUIDFromString(void* ret, void* s)
+{
+   *(SDL2_GUID_t*)ret = my->SDL_JoystickGetGUIDFromString(s);
+   return ret;
+}
+
+
 EXPORT int my32_2_SDL_OpenAudio(x64emu_t* emu, void* d, void* o)
 {
     SDL2_AudioSpec desired = { 0 };
@@ -442,6 +449,10 @@ EXPORT void my32_2_SDL_DelEventWatch(x64emu_t* emu, void* p, void* userdata)
 {
     my->SDL_DelEventWatch(find_eventfilter_Fct(p), userdata);
 }
+EXPORT void my32_2_SDL_SetEventFilter(x64emu_t* emu, void* p, void* userdata)
+{
+    my->SDL_SetEventFilter(find_eventfilter_Fct(p), userdata);
+}
 
 EXPORT void* my32_2_SDL_RWFromFile(x64emu_t* emu, void* a, void* b)
 {
diff --git a/src/wrapped32/wrappedsdl2_private.h b/src/wrapped32/wrappedsdl2_private.h
index d80d1b72..c53a273d 100644
--- a/src/wrapped32/wrappedsdl2_private.h
+++ b/src/wrapped32/wrappedsdl2_private.h
@@ -100,14 +100,14 @@ GO(SDL_DestroyWindow, vFp)
 GO(SDL_DisableScreenSaver, vFv)
 //GO(SDL_DuplicateSurface, pFp)
 //GOM(SDL_DYNAPI_entry, iFEupu)
-//GO(SDL_EnableScreenSaver, vFv)
+GO(SDL_EnableScreenSaver, vFv)
 //GO(SDL_EnclosePoints, uFpipp)
-//GO(SDL_Error, iFu)
-//GO(SDL_EventState, CFui)
-//GO(SDL_exp, dFd)
-//GO(SDL_expf, fFf)
-//GO(SDL_fabs, dFd)
-//GO(SDL_fabsf, fFf)
+GO(SDL_Error, iFu)
+GO(SDL_EventState, CFui)
+GO(SDL_exp, dFd)
+GO(SDL_expf, fFf)
+GO(SDL_fabs, dFd)
+GO(SDL_fabsf, fFf)
 GOM(SDL_FillRect, iFEppu)
 //GO(SDL_FillRects, iFppiu)
 // SDL_FilterEvents
@@ -125,20 +125,20 @@ GO(SDL_FreeCursor, vFp)
 //GO(SDL_FreeRW, vFp)
 GOM(SDL_FreeSurface, vFEp)
 //GO(SDL_FreeWAV, vFp)
-//GO(SDL_GameControllerAddMapping, iFp)
+GO(SDL_GameControllerAddMapping, iFp)
 GOM(SDL_GameControllerAddMappingsFromRW, iFEpi)
 GO(SDL_GameControllerClose, vFp)
 GO(SDL_GameControllerEventState, iFi)
-//GO(SDL_GameControllerFromInstanceID, pFi)
-//GO(SDL_GameControllerFromPlayerIndex, pFi)
+GO(SDL_GameControllerFromInstanceID, pFi)
+GO(SDL_GameControllerFromPlayerIndex, pFi)
 GO(SDL_GameControllerGetAttached, iFp)
 GO(SDL_GameControllerGetAxis, wFpi)
-//GO(SDL_GameControllerGetAxisFromString, iFp)
+GO(SDL_GameControllerGetAxisFromString, iFp)
 //GO(SDL_GameControllerGetBindForAxis, HFpi)
 //GO(SDL_GameControllerGetBindForButton, HFpi)
 GO(SDL_GameControllerGetButton, CFpi)
-//GO(SDL_GameControllerGetButtonFromString, iFp)
-//GO(SDL_GameControllerGetFirmwareVersion, WFp)
+GO(SDL_GameControllerGetButtonFromString, iFp)
+GO(SDL_GameControllerGetFirmwareVersion, WFp)
 GO(SDL_GameControllerGetJoystick, pFp)
 //GO(SDL_GameControllerGetNumTouchpads, iFp)
 //GO(SDL_GameControllerGetNumTouchpadFingers, iFpi)
@@ -161,19 +161,19 @@ GO(SDL_GameControllerHasSensor, iFpi)
 GO(SDL_GameControllerIsSensorEnabled, uFpi)
 GO(SDL_GameControllerMapping, pFp)
 GO(SDL_GameControllerMappingForDeviceIndex, pFi)
-//GO(SDL_GameControllerMappingForGUID, pFpp)
+GO(SDL_GameControllerMappingForGUID, pFpp)
 GO(SDL_GameControllerMappingForIndex, pFi)
 GO(SDL_GameControllerName, pFp)
-//GO(SDL_GameControllerNameForIndex, pFi)
+GO(SDL_GameControllerNameForIndex, pFi)
 GO(SDL_GameControllerNumMappings, iFv)
 GO(SDL_GameControllerOpen, pFi)
-//GO(SDL_GameControllerPath, pFp)
-//GO(SDL_GameControllerPathForIndex, pFi)
-//GO(SDL_GameControllerRumble, iFpWWu)
-//GO(SDL_GameControllerRumbleTriggers, iFpWWu)
-//GO(SDL_GameControllerSetLED, iFpCCC)
-//GO(SDL_GameControllerSetPlayerIndex, vFpi)
-//GO(SDL_GameControllerSetSensorEnabled, iFpiu)
+GO(SDL_GameControllerPath, pFp)
+GO(SDL_GameControllerPathForIndex, pFi)
+GO(SDL_GameControllerRumble, iFpWWu)
+GO(SDL_GameControllerRumbleTriggers, iFpWWu)
+GO(SDL_GameControllerSetLED, iFpCCC)
+GO(SDL_GameControllerSetPlayerIndex, vFpi)
+GO(SDL_GameControllerSetSensorEnabled, iFpiu)
 GO(SDL_GameControllerTypeForIndex, uFi)
 GO(SDL_GameControllerUpdate, vFv)
 // SDL_GetAssertionHandler
@@ -403,7 +403,7 @@ GOS(SDL_JoystickGetDeviceGUID, JFEi)  // return a struct that is "uint8_t data[1
 //GO(SDL_JoystickGetDeviceVendor, WFi)
 //GO(SDL_JoystickGetFirmwareVersion, WFp)
 //GO(SDL_JoystickGetGUID, HFp)
-//GO(SDL_JoystickGetGUIDFromString, HFp)
+GOS(SDL_JoystickGetGUIDFromString, JFEp)
 GO(SDL_JoystickGetGUIDString, vFUUpi)   //uint8_t data[16] passed as 1st argument...
 //GO(SDL_JoystickGetHat, CFpi)
 //GO(SDL_JoystickGetPlayerIndex, iFp)
@@ -543,18 +543,18 @@ GO(SDL_RenderCopy, iFpppp)
 //GO(SDL_RenderIsClipEnabled, uFp)
 GO(SDL_RenderPresent, vFp)
 //GO(SDL_RenderReadPixels, iFppupi)
-//GO(SDL_RenderSetClipRect, iFpp)
-//GO(SDL_RenderSetIntegerScale, iFpu)
+GO(SDL_RenderSetClipRect, iFpp)
+GO(SDL_RenderSetIntegerScale, iFpu)
 GO(SDL_RenderSetLogicalSize, iFpii)
-//GO(SDL_RenderSetScale, iFpff)
-//GO(SDL_RenderSetViewport, iFpp)
-//GO(SDL_RenderTargetSupported, iFp)
-//GO(SDL_RenderSetVSync, iFpi)
+GO(SDL_RenderSetScale, iFpff)
+GO(SDL_RenderSetViewport, iFpp)
+GO(SDL_RenderTargetSupported, iFp)
+GO(SDL_RenderSetVSync, iFpi)
 //GO(SDL_RenderWindowToLogical, vFpiipp)
-//GO(SDL_ReportAssertion, uFpppi)
-//GO(SDL_ResetAssertionReport, vFv)
-//GO(SDL_ResetHints, vFv)
-//GO(SDL_ResetKeyboard, vFv)
+GO(SDL_ReportAssertion, uFpppi)
+GO(SDL_ResetAssertionReport, vFv)
+GO(SDL_ResetHints, vFv)
+GO(SDL_ResetKeyboard, vFv)
 GO(SDL_RestoreWindow, vFp)
 //GOM(SDL_RWFromConstMem, pFEpi)
 //GOM(SDL_RWFromFP, pFEpi)
@@ -591,7 +591,7 @@ GOM(SDL_SetColorKey, iFpiu) //%noE
 GO(SDL_SetCursor, vFp)
 GO(SDL_setenv, iFppi)
 GO(SDL_SetError, iFppppp)    // it use ..., so putarbitrary  4 args
-//GOM(SDL_SetEventFilter, vFEpp)
+GOM(SDL_SetEventFilter, vFEpp)
 GO(SDL_SetHint, uFpp)
 //GO(SDL_SetHintWithPriority, uFppu)
 GO(SDL_SetMainReady, vFv)