about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-08 17:38:01 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-08 17:38:01 +0200
commit7ae36b8667f9ff213c3461a3c7d49978d8d71e4d (patch)
tree80a7aa54043ebbc631560bd373c67a5dd701d90a /src
parent591e2db7128b8d5d618ee58037777eb64d91c953 (diff)
downloadbox64-7ae36b8667f9ff213c3461a3c7d49978d8d71e4d.tar.gz
box64-7ae36b8667f9ff213c3461a3c7d49978d8d71e4d.zip
[BOX32] More 32bits wrapped functions
Diffstat (limited to 'src')
-rw-r--r--src/wrapped32/generated/functions_list.txt9
-rw-r--r--src/wrapped32/generated/wrappedlibctypes32.h4
-rw-r--r--src/wrapped32/generated/wrappedsdl2types32.h1
-rw-r--r--src/wrapped32/generated/wrapper32.c8
-rw-r--r--src/wrapped32/generated/wrapper32.h4
-rwxr-xr-xsrc/wrapped32/wrappedlibc.c15
-rwxr-xr-xsrc/wrapped32/wrappedlibc_private.h22
-rw-r--r--src/wrapped32/wrappedsdl2.c56
-rw-r--r--src/wrapped32/wrappedsdl2_private.h4
9 files changed, 106 insertions, 17 deletions
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index 1e503a94..7a0c8a40 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -522,6 +522,7 @@
 #() pFpII -> pFpII
 #() pFpuu -> pFpuu
 #() pFpup -> pFpup
+#() pFppi -> pFppi
 #() pFppu -> pFppu
 #() pFppL -> pFppL
 #() pFppp -> pFppp
@@ -730,6 +731,7 @@
 #() iFipON -> iFipON
 #() iFuiup -> iFuiup
 #() iFuupi -> iFuupi
+#() iFuppp -> iFuppp
 #() iFpiii -> iFpiii
 #() iFpiiL -> iFpiiL
 #() iFpiip -> iFpiip
@@ -789,6 +791,7 @@
 #() lFipLi -> lFipLi
 #() lFipLI -> lFipLI
 #() lFipLl -> lFipLl
+#() lFipLL -> lFipLL
 #() lFpuip -> lFpuip
 #() LFEpLp -> LFEpLp
 #() LFEXii -> LFEXii
@@ -864,6 +867,7 @@
 #() iFpruuipWCCp_buuipWCCp_i -> iFpBBi
 #() iFXpLbiLLLiiiiiiiLLiiLiiiiLic_ -> iFXpLB
 #() pFXLLbiLLLiiiiiiiLLiiLiiiiLic_ -> pFXLLB
+#() vFEiipV -> vFEiipV
 #() vFEuipu -> vFEuipu
 #() vFEuipp -> vFEuipp
 #() vFEpLLp -> vFEpLLp
@@ -1647,6 +1651,8 @@ wrappedlibc:
   - localtime_r
 - SFpp:
 - iFrLL_BLL_:
+- vFipp:
+  - vsyslog
 - vFipV:
 - vFpup:
   - _ITM_addUserCommitAction
@@ -1682,6 +1688,8 @@ wrappedlibc:
   - wcstol
 - LFpBp_i:
   - wcstoul
+- vFiipV:
+  - __syslog_chk
 - vFpLLp:
 - vFppiV:
 - iFivpV:
@@ -2257,6 +2265,7 @@ wrappedsdl2:
   - SDL_GetWindowWMInfo
   - SDL_OpenAudio
   - SDL_SetWindowDisplayMode
+  - SDL_ShowMessageBox
 - pFpi:
   - SDL_LoadBMP_RW
   - SDL_notreal
diff --git a/src/wrapped32/generated/wrappedlibctypes32.h b/src/wrapped32/generated/wrappedlibctypes32.h
index fd4c086c..28395822 100644
--- a/src/wrapped32/generated/wrappedlibctypes32.h
+++ b/src/wrapped32/generated/wrappedlibctypes32.h
@@ -50,6 +50,7 @@ typedef void* (*pFpi_t)(void*, int32_t);
 typedef void* (*pFpp_t)(void*, void*);
 typedef void* (*SFpp_t)(void*, void*);
 typedef int32_t (*iFrLL_BLL__t)(struct_LL_t*, struct_LL_t*);
+typedef void (*vFipp_t)(int32_t, void*, void*);
 typedef void (*vFipV_t)(int32_t, void*, ...);
 typedef void (*vFpup_t)(void*, uint32_t, void*);
 typedef void (*vFppu_t)(void*, void*, uint32_t);
@@ -73,6 +74,7 @@ typedef void* (*pFppv_t)(void*, void*, void);
 typedef double (*KFpBp_a_t)(void*, struct_p_t*, void*);
 typedef intptr_t (*lFpBp_i_t)(void*, struct_p_t*, int32_t);
 typedef uintptr_t (*LFpBp_i_t)(void*, struct_p_t*, int32_t);
+typedef void (*vFiipV_t)(int32_t, int32_t, void*, ...);
 typedef void (*vFpLLp_t)(void*, uintptr_t, uintptr_t, void*);
 typedef void (*vFppiV_t)(void*, void*, int32_t, ...);
 typedef int32_t (*iFivpV_t)(int32_t, void, void*, ...);
@@ -145,6 +147,7 @@ typedef int32_t (*iFpLiLppp_t)(void*, uintptr_t, int32_t, uintptr_t, void*, void
 	GO(__cmsg_nxthdr, pFpp_t) \
 	GO(gmtime_r, pFpp_t) \
 	GO(localtime_r, pFpp_t) \
+	GO(vsyslog, vFipp_t) \
 	GO(_ITM_addUserCommitAction, vFpup_t) \
 	GO(vswscanf, iFppp_t) \
 	GO(swscanf, iFppV_t) \
@@ -157,6 +160,7 @@ typedef int32_t (*iFpLiLppp_t)(void*, uintptr_t, int32_t, uintptr_t, void*, void
 	GO(strtold_l, KFpBp_a_t) \
 	GO(wcstol, lFpBp_i_t) \
 	GO(wcstoul, LFpBp_i_t) \
+	GO(__syslog_chk, vFiipV_t) \
 	GO(utimensat, iFippi_t) \
 	GO(readlinkat, iFippL_t) \
 	GO(getaddrinfo, iFpppp_t) \
diff --git a/src/wrapped32/generated/wrappedsdl2types32.h b/src/wrapped32/generated/wrappedsdl2types32.h
index af89dbf0..10e83607 100644
--- a/src/wrapped32/generated/wrappedsdl2types32.h
+++ b/src/wrapped32/generated/wrappedsdl2types32.h
@@ -63,6 +63,7 @@ typedef void* (*pFuiiiuuuu_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uin
 	GO(SDL_GetWindowWMInfo, iFpp_t) \
 	GO(SDL_OpenAudio, iFpp_t) \
 	GO(SDL_SetWindowDisplayMode, iFpp_t) \
+	GO(SDL_ShowMessageBox, iFpp_t) \
 	GO(SDL_LoadBMP_RW, pFpi_t) \
 	GO(SDL_notreal, pFpi_t) \
 	GO(SDL_CreateTextureFromSurface, pFpp_t) \
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index 3e2962d5..8d79bb7f 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -612,6 +612,7 @@ typedef void* (*pFpiS_t)(void*, int32_t, void*);
 typedef void* (*pFpII_t)(void*, int64_t, int64_t);
 typedef void* (*pFpuu_t)(void*, uint32_t, uint32_t);
 typedef void* (*pFpup_t)(void*, uint32_t, void*);
+typedef void* (*pFppi_t)(void*, void*, int32_t);
 typedef void* (*pFppu_t)(void*, void*, uint32_t);
 typedef void* (*pFppL_t)(void*, void*, uintptr_t);
 typedef void* (*pFppp_t)(void*, void*, void*);
@@ -820,6 +821,7 @@ typedef int32_t (*iFippL_t)(int32_t, void*, void*, uintptr_t);
 typedef int32_t (*iFipON_t)(int32_t, void*, int32_t, ...);
 typedef int32_t (*iFuiup_t)(uint32_t, int32_t, uint32_t, void*);
 typedef int32_t (*iFuupi_t)(uint32_t, uint32_t, void*, int32_t);
+typedef int32_t (*iFuppp_t)(uint32_t, void*, void*, void*);
 typedef int32_t (*iFpiii_t)(void*, int32_t, int32_t, int32_t);
 typedef int32_t (*iFpiiL_t)(void*, int32_t, int32_t, uintptr_t);
 typedef int32_t (*iFpiip_t)(void*, int32_t, int32_t, void*);
@@ -879,6 +881,7 @@ typedef intptr_t (*lFiipL_t)(int32_t, int32_t, void*, uintptr_t);
 typedef intptr_t (*lFipLi_t)(int32_t, void*, uintptr_t, int32_t);
 typedef intptr_t (*lFipLI_t)(int32_t, void*, uintptr_t, int64_t);
 typedef intptr_t (*lFipLl_t)(int32_t, void*, uintptr_t, intptr_t);
+typedef intptr_t (*lFipLL_t)(int32_t, void*, uintptr_t, uintptr_t);
 typedef intptr_t (*lFpuip_t)(void*, uint32_t, int32_t, void*);
 typedef uintptr_t (*LFEpLp_t)(x64emu_t*, void*, uintptr_t, void*);
 typedef uintptr_t (*LFEXii_t)(x64emu_t*, void*, int32_t, int32_t);
@@ -954,6 +957,7 @@ typedef int32_t (*iFXLLbLLLLiiiLLilliLL__t)(void*, uintptr_t, uintptr_t, struct_
 typedef int32_t (*iFpruuipWCCp_buuipWCCp_i_t)(void*, struct_uuipWCCp_t*, struct_uuipWCCp_t*, int32_t);
 typedef int32_t (*iFXpLbiLLLiiiiiiiLLiiLiiiiLic__t)(void*, void*, uintptr_t, struct_iLLLiiiiiiiLLiiLiiiiLic_t*);
 typedef void* (*pFXLLbiLLLiiiiiiiLLiiLiiiiLic__t)(void*, uintptr_t, uintptr_t, struct_iLLLiiiiiiiLLiiLiiiiLic_t*);
+typedef void (*vFEiipV_t)(x64emu_t*, int32_t, int32_t, void*, void*);
 typedef void (*vFEuipu_t)(x64emu_t*, uint32_t, int32_t, void*, uint32_t);
 typedef void (*vFEuipp_t)(x64emu_t*, uint32_t, int32_t, void*, void*);
 typedef void (*vFEpLLp_t)(x64emu_t*, void*, uintptr_t, uintptr_t, void*);
@@ -2091,6 +2095,7 @@ void pFpiS_32(x64emu_t *emu, uintptr_t fcn) { pFpiS_t fn = (pFpiS_t)fcn; R_EAX =
 void pFpII_32(x64emu_t *emu, uintptr_t fcn) { pFpII_t fn = (pFpII_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int64_t, R_ESP + 8), from_ptri(int64_t, R_ESP + 16))); }
 void pFpuu_32(x64emu_t *emu, uintptr_t fcn) { pFpuu_t fn = (pFpuu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12))); }
 void pFpup_32(x64emu_t *emu, uintptr_t fcn) { pFpup_t fn = (pFpup_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12))); }
+void pFppi_32(x64emu_t *emu, uintptr_t fcn) { pFppi_t fn = (pFppi_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); }
 void pFppu_32(x64emu_t *emu, uintptr_t fcn) { pFppu_t fn = (pFppu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12))); }
 void pFppL_32(x64emu_t *emu, uintptr_t fcn) { pFppL_t fn = (pFppL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)))); }
 void pFppp_32(x64emu_t *emu, uintptr_t fcn) { pFppp_t fn = (pFppp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12))); }
@@ -2299,6 +2304,7 @@ void iFippL_32(x64emu_t *emu, uintptr_t fcn) { iFippL_t fn = (iFippL_t)fcn; R_EA
 void iFipON_32(x64emu_t *emu, uintptr_t fcn) { iFipON_t fn = (iFipON_t)fcn; R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), of_convert32(from_ptri(int32_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); }
 void iFuiup_32(x64emu_t *emu, uintptr_t fcn) { iFuiup_t fn = (iFuiup_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iFuupi_32(x64emu_t *emu, uintptr_t fcn) { iFuupi_t fn = (iFuupi_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
+void iFuppp_32(x64emu_t *emu, uintptr_t fcn) { iFuppp_t fn = (iFuppp_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void iFpiii_32(x64emu_t *emu, uintptr_t fcn) { iFpiii_t fn = (iFpiii_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); }
 void iFpiiL_32(x64emu_t *emu, uintptr_t fcn) { iFpiiL_t fn = (iFpiiL_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ulong(from_ptri(ulong_t, R_ESP + 16))); }
 void iFpiip_32(x64emu_t *emu, uintptr_t fcn) { iFpiip_t fn = (iFpiip_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); }
@@ -2358,6 +2364,7 @@ void lFiipL_32(x64emu_t *emu, uintptr_t fcn) { lFiipL_t fn = (lFiipL_t)fcn; R_EA
 void lFipLi_32(x64emu_t *emu, uintptr_t fcn) { lFipLi_t fn = (lFipLi_t)fcn; R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16))); }
 void lFipLI_32(x64emu_t *emu, uintptr_t fcn) { lFipLI_t fn = (lFipLI_t)fcn; R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int64_t, R_ESP + 16))); }
 void lFipLl_32(x64emu_t *emu, uintptr_t fcn) { lFipLl_t fn = (lFipLl_t)fcn; R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_long(from_ptri(long_t, R_ESP + 16)))); }
+void lFipLL_32(x64emu_t *emu, uintptr_t fcn) { lFipLL_t fn = (lFipLL_t)fcn; R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ulong(from_ptri(ulong_t, R_ESP + 16)))); }
 void lFpuip_32(x64emu_t *emu, uintptr_t fcn) { lFpuip_t fn = (lFpuip_t)fcn; R_EAX = to_long(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16))); }
 void LFEpLp_32(x64emu_t *emu, uintptr_t fcn) { LFEpLp_t fn = (LFEpLp_t)fcn; R_EAX = to_ulong(fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12))); }
 void LFEXii_32(x64emu_t *emu, uintptr_t fcn) { LFEXii_t fn = (LFEXii_t)fcn; R_EAX = to_ulong(fn(emu, getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); }
@@ -2433,6 +2440,7 @@ void iFXLLbLLLLiiiLLilliLL__32(x64emu_t *emu, uintptr_t fcn) { iFXLLbLLLLiiiLLil
 void iFpruuipWCCp_buuipWCCp_i_32(x64emu_t *emu, uintptr_t fcn) { iFpruuipWCCp_buuipWCCp_i_t fn = (iFpruuipWCCp_buuipWCCp_i_t)fcn; struct_uuipWCCp_t arg_8={0}; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) from_struct_uuipWCCp(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_uuipWCCp_t arg_12={0}; if (*(ptr_t*)(from_ptr((R_ESP + 12)))) from_struct_uuipWCCp(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptri(int32_t, R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_uuipWCCp(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFXpLbiLLLiiiiiiiLLiiLiiiiLic__32(x64emu_t *emu, uintptr_t fcn) { iFXpLbiLLLiiiiiiiLLiiLiiiiLic__t fn = (iFXpLbiLLLiiiiiiiLLiiLiiiiLic__t)fcn; struct_iLLLiiiiiiiLLiiLiiiiLic_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_iLLLiiiiiiiLLiiLiiiiLic(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ulong(from_ptri(ulong_t, R_ESP + 12)), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_iLLLiiiiiiiLLiiLiiiiLic(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
 void pFXLLbiLLLiiiiiiiLLiiLiiiiLic__32(x64emu_t *emu, uintptr_t fcn) { pFXLLbiLLLiiiiiiiLLiiLiiiiLic__t fn = (pFXLLbiLLLiiiiiiiLLiiLiiiiLic__t)fcn; struct_iLLLiiiiiiiLLiiLiiiiLic_t arg_16={0}; if (*(ptr_t*)(from_ptr((R_ESP + 16)))) from_struct_iLLLiiiiiiiLLiiLiiiiLic(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_iLLLiiiiiiiLLiiLiiiiLic(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
+void vFEiipV_32(x64emu_t *emu, uintptr_t fcn) { vFEiipV_t fn = (vFEiipV_t)fcn; fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptrv(R_ESP + 16)); }
 void vFEuipu_32(x64emu_t *emu, uintptr_t fcn) { vFEuipu_t fn = (vFEuipu_t)fcn; fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
 void vFEuipp_32(x64emu_t *emu, uintptr_t fcn) { vFEuipp_t fn = (vFEuipp_t)fcn; fn(emu, from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void vFEpLLp_32(x64emu_t *emu, uintptr_t fcn) { vFEpLLp_t fn = (vFEpLLp_t)fcn; fn(emu, from_ptriv(R_ESP + 4), from_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16)); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index 7b29d9a8..102e3b9f 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -563,6 +563,7 @@ void pFpiS_32(x64emu_t *emu, uintptr_t fnc);
 void pFpII_32(x64emu_t *emu, uintptr_t fnc);
 void pFpuu_32(x64emu_t *emu, uintptr_t fnc);
 void pFpup_32(x64emu_t *emu, uintptr_t fnc);
+void pFppi_32(x64emu_t *emu, uintptr_t fnc);
 void pFppu_32(x64emu_t *emu, uintptr_t fnc);
 void pFppL_32(x64emu_t *emu, uintptr_t fnc);
 void pFppp_32(x64emu_t *emu, uintptr_t fnc);
@@ -771,6 +772,7 @@ void iFippL_32(x64emu_t *emu, uintptr_t fnc);
 void iFipON_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiup_32(x64emu_t *emu, uintptr_t fnc);
 void iFuupi_32(x64emu_t *emu, uintptr_t fnc);
+void iFuppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFpiii_32(x64emu_t *emu, uintptr_t fnc);
 void iFpiiL_32(x64emu_t *emu, uintptr_t fnc);
 void iFpiip_32(x64emu_t *emu, uintptr_t fnc);
@@ -830,6 +832,7 @@ void lFiipL_32(x64emu_t *emu, uintptr_t fnc);
 void lFipLi_32(x64emu_t *emu, uintptr_t fnc);
 void lFipLI_32(x64emu_t *emu, uintptr_t fnc);
 void lFipLl_32(x64emu_t *emu, uintptr_t fnc);
+void lFipLL_32(x64emu_t *emu, uintptr_t fnc);
 void lFpuip_32(x64emu_t *emu, uintptr_t fnc);
 void LFEpLp_32(x64emu_t *emu, uintptr_t fnc);
 void LFEXii_32(x64emu_t *emu, uintptr_t fnc);
@@ -905,6 +908,7 @@ void iFXLLbLLLLiiiLLilliLL__32(x64emu_t *emu, uintptr_t fnc);
 void iFpruuipWCCp_buuipWCCp_i_32(x64emu_t *emu, uintptr_t fnc);
 void iFXpLbiLLLiiiiiiiLLiiLiiiiLic__32(x64emu_t *emu, uintptr_t fnc);
 void pFXLLbiLLLiiiiiiiLLiiLiiiiLic__32(x64emu_t *emu, uintptr_t fnc);
+void vFEiipV_32(x64emu_t *emu, uintptr_t fnc);
 void vFEuipu_32(x64emu_t *emu, uintptr_t fnc);
 void vFEuipp_32(x64emu_t *emu, uintptr_t fnc);
 void vFEpLLp_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedlibc.c b/src/wrapped32/wrappedlibc.c
index 90fe756f..418430d9 100755
--- a/src/wrapped32/wrappedlibc.c
+++ b/src/wrapped32/wrappedlibc.c
@@ -690,10 +690,17 @@ EXPORT void my32_exit(x64emu_t *emu, int32_t status)
 EXPORT void my32__exit(x64emu_t *emu, int32_t status) __attribute__((alias("my32_exit")));
 EXPORT void my32__Exit(x64emu_t *emu, int32_t status) __attribute__((alias("my32_exit")));
 #endif
-void myStackAlign32(const char* fmt, uint32_t* st, uint64_t* mystack); // align st into mystack according to fmt (for v(f)printf(...))
-typedef int (*iFpp_t)(void*, void*);
-typedef int (*iFppp_t)(void*, void*, void*);
-typedef int (*iFpupp_t)(void*, uint32_t, void*, void*);
+extern int vsyslog(int, const char*, va_list);
+EXPORT int my32_vsyslog(x64emu_t* emu, int priority, void* fmt, void* b) {
+    myStackAlign32((const char*)fmt, b, emu->scratch);
+    PREPARE_VALIST_32;
+    return vsyslog(priority, (const char*)fmt, VARARGS_32);
+}
+EXPORT int my32___syslog_chk(x64emu_t* emu, int priority, int flags, void* fmt, void* b) {
+    myStackAlign32((const char*)fmt, b, emu->scratch);
+    PREPARE_VALIST_32;
+    return vsyslog(priority, (const char*)fmt, VARARGS_32);
+}
 EXPORT int my32_printf(x64emu_t *emu, void* fmt, void* b) {
     myStackAlign32((const char*)fmt, b, emu->scratch);
     PREPARE_VALIST_32;
diff --git a/src/wrapped32/wrappedlibc_private.h b/src/wrapped32/wrappedlibc_private.h
index 785ad1d4..d3700b9d 100755
--- a/src/wrapped32/wrappedlibc_private.h
+++ b/src/wrapped32/wrappedlibc_private.h
@@ -139,7 +139,7 @@ GOW(chdir, iFp)
 GOW(chmod, iFpu)
 GOW(chown, iFpuu)
 //GO(chroot, iFp)
-//GOW(clearenv, iFv)
+GOW(clearenv, iFv)
 GO(clearerr, vFS)
 //GO(clearerr_unlocked, vFp)
 // clnt_broadcast
@@ -173,7 +173,7 @@ GOW(__connect, iFipu)
 //GOW(creat, iFpu)
 //GO(creat64, iFpu)
 // create_module    // Weak
-//GO(ctermid, pFp)
+GO(ctermid, pFp)
 GO(ctime, pFrl_)
 GO(ctime_r, pFrl_p)
 DATAM(__ctype_b, 4)
@@ -195,8 +195,8 @@ GOM(__cxa_thread_atexit_impl, iFEppp) //%%
 // daemon
 DATAV(daylight, 4)
 // __daylight   // type B
-//GOW(dcgettext, pFppi)
-//GO(__dcgettext, pFppi)
+GOW(dcgettext, pFppi)
+GO(__dcgettext, pFppi)
 //GOW(dcngettext, pFpppui)
 // __default_morecore
 // __default_rt_sa_restorer_v1
@@ -491,7 +491,7 @@ GOW(getgid, uFv)
 GOM(getgrgid_r, iFEuppLp)
 //GO(getgrnam, pFp)
 GOM(getgrnam_r, iFEpppLp)
-//GO(getgrouplist, iFpipp)
+GO(getgrouplist, iFpipp)
 GOW(getgroups, iFip)
 // __getgroups_chk
 //GO(gethostbyaddr, pFpui)
@@ -563,7 +563,7 @@ GOM(getpwnam, pFEp)
 GOM(getpwnam_r, iFEpppLp)
 GOM(getpwuid, pFEu)
 GOM(getpwuid_r, iFEuppLp)
-//GOW(getresgid, iFppp)
+GOW(getresgid, iFppp)
 GOW(getresuid, iFppp)
 GOM(getrlimit, iFEup)
 GO(getrlimit64, iFup)
@@ -1339,15 +1339,15 @@ GO(rand, iFv)
 GOW(random, lFv)
 //GOW(random_r, iFpp)
 //GO(rand_r, iFp)
-//GOW(rawmemchr, pFpi)
-//GO(__rawmemchr, pFpi)
+GOW(rawmemchr, pFpi)
+GO(__rawmemchr, pFpi)
 // rcmd
 // rcmd_af
 // __rcmd_errstr    // type B
 GOM(read, lFipL) //%%,noE
 //GOW(__read, lFipL)
 // readahead    // Weak
-//GO(__read_chk, lFipLL)
+GO(__read_chk, lFipLL)
 GOWM(readdir, pFEp)  //%%
 GO(readdir64, pFp)  // check if alignement is correct
 //GOM(readdir_r, iFEppp)  //%% should also be weak
@@ -1776,7 +1776,7 @@ GO2(__sysconf, lFEi, my_sysconf)
 //DATA(sys_errlist, 4)
 GOM(sysinfo, iFp)   //%noE
 //GO2(syslog, vFipV, vsyslog)
-//GO2(__syslog_chk, vFiipV, __vsyslog_chk)
+GOM(__syslog_chk, vFEiipV)
 //DATA(_sys_nerr, 4)    // type R
 //DATA(sys_nerr, 4) // type R
 //DATA(sys_sigabbrev, 4)
@@ -1910,7 +1910,7 @@ GOWM(vswprintf, iFEpLpp)         //%%
 GOWM(__vswprintf, iFEpLpp)         //%%
 GOWM(__vswprintf_chk, iFEpLiLppp) //%%
 GOM(vswscanf, iFEppp)
-//GO(vsyslog, vFipp)
+GOM(vsyslog, vFEipp)
 //GO(__vsyslog_chk, vFiipp)
 // vtimes
 //GOM(vwarn, vFEppp) //%%
diff --git a/src/wrapped32/wrappedsdl2.c b/src/wrapped32/wrappedsdl2.c
index 3198260b..5508a228 100644
--- a/src/wrapped32/wrappedsdl2.c
+++ b/src/wrapped32/wrappedsdl2.c
@@ -559,6 +559,62 @@ EXPORT int my32_2_SDL_GetWindowWMInfo(void* w, SDL_SysWMinfo_32_t* i)
     return ret;
 }
 
+typedef struct my_SDL_MessageBoxButtonData_s
+{
+    uint32_t    flags;
+    int         buttonid;
+    const char* text;
+} my_SDL_MessageBoxButtonData_t;
+
+typedef struct my_SDL_MessageBoxData_s
+{
+    uint32_t    flags;
+    void*       window; //SDL_Window*
+    const char* title;
+    const char* message;
+    int         numbuttons;
+    my_SDL_MessageBoxButtonData_t*  buttons;
+    void*       colorScheme;    //const SDL_MessageBoxColorScheme
+} my_SDL_MessageBoxData_t;
+
+typedef struct my_SDL_MessageBoxButtonData_32_s
+{
+    uint32_t    flags;
+    int         buttonid;
+    ptr_t       text;   //const char*
+} my_SDL_MessageBoxButtonData_32_t;
+
+typedef struct my_SDL_MessageBoxData_32_s
+{
+    uint32_t    flags;
+    ptr_t       window; //SDL_Window*
+    ptr_t       title;  //const char*
+    ptr_t       message;    //const char*
+    int         numbuttons;
+    ptr_t       buttons;    //my_SDL_MessageBoxButtonData_t*
+    ptr_t       colorScheme;    //const SDL_MessageBoxColorScheme
+} my_SDL_MessageBoxData_32_t;
+
+EXPORT int my32_2_SDL_ShowMessageBox(my_SDL_MessageBoxData_32_t* msgbox, int* btn)
+{
+    my_SDL_MessageBoxData_t msgbox_l;
+    my_SDL_MessageBoxButtonData_t btns_l[msgbox->numbuttons];
+    msgbox_l.flags = msgbox->flags;
+    msgbox_l.window = from_ptrv(msgbox->window);
+    msgbox_l.title = from_ptrv(msgbox->title);
+    msgbox_l.message = from_ptrv(msgbox->message);
+    msgbox_l.numbuttons = msgbox->numbuttons;
+    msgbox_l.buttons = btns_l;
+    msgbox_l.colorScheme = from_ptrv(msgbox->colorScheme);
+    my_SDL_MessageBoxButtonData_32_t* src = from_ptrv(msgbox->buttons);
+    for(int i=0; i<msgbox_l.numbuttons; ++i) {
+        btns_l[i].flags = src[i].buttonid;
+        btns_l[i].buttonid = src[i].buttonid;
+        btns_l[i].text = from_ptrv(src[i].buttonid);
+    }
+    return my->SDL_ShowMessageBox(&msgbox_l, btn);
+}
+
 #define ALTMY my32_2_
 
 #define CUSTOM_INIT                       \
diff --git a/src/wrapped32/wrappedsdl2_private.h b/src/wrapped32/wrappedsdl2_private.h
index 80f29e56..5049c7f6 100644
--- a/src/wrapped32/wrappedsdl2_private.h
+++ b/src/wrapped32/wrappedsdl2_private.h
@@ -636,8 +636,8 @@ GO(SDL_SetWindowSize, vFpii)
 GO(SDL_SetWindowTitle, vFpp)
 // SDL_SetYUVConversionMode
 GO(SDL_ShowCursor, iFi)
-//GO(SDL_ShowMessageBox, iFpp)
-//GO(SDL_ShowSimpleMessageBox, iFuppp)
+GOM(SDL_ShowMessageBox, iFpp)   //%noE
+GO(SDL_ShowSimpleMessageBox, iFuppp)
 GO(SDL_ShowWindow, vFp)
 //GO(SDL_SIMDAlloc, pFL)
 //GO(SDL_SIMDGetAlignment, LFv)