diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-21 12:20:26 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-21 12:20:26 +0200 |
| commit | fb4f5809224913b342c5cfae9c91787faa61eed4 (patch) | |
| tree | f965a9dede1133dec21f5937579bdd8f36aede08 /src/wrapped32/generated | |
| parent | 15842f3464decd5d5c0809f394cf48af908fa454 (diff) | |
| download | box64-fb4f5809224913b342c5cfae9c91787faa61eed4.tar.gz box64-fb4f5809224913b342c5cfae9c91787faa61eed4.zip | |
[BOX32] Added some more 32bits wrapped functions (Chicken Invaders 3 works, but need SDL12COMPAT_OPENGL_SCALING=0)
Diffstat (limited to 'src/wrapped32/generated')
| -rw-r--r-- | src/wrapped32/generated/converter32.c | 11 | ||||
| -rw-r--r-- | src/wrapped32/generated/converter32.h | 6 | ||||
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 7 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedlibctypes32.h | 3 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedsdl1types32.h | 2 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 4 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 2 |
7 files changed, 35 insertions, 0 deletions
diff --git a/src/wrapped32/generated/converter32.c b/src/wrapped32/generated/converter32.c index c615d378..19b09648 100644 --- a/src/wrapped32/generated/converter32.c +++ b/src/wrapped32/generated/converter32.c @@ -102,3 +102,14 @@ void to_struct_iiiiiiiiilt(ptr_t d, const struct_iiiiiiiiilt_t* src) { *(long_t*)dest = to_long(src->l9); dest += 4; *(ptr_t*)dest = to_cstring(src->p10); dest += 4; } +void from_struct_up(struct_up_t *dest, ptr_t s) { + uint8_t* src = (uint8_t*)from_ptrv(s); + dest->u0 = *(uint32_t*)src; src += 4; + dest->p1 = *(void**)src; src += 4; +} +void to_struct_up(ptr_t d, const struct_up_t *src) { + if (!src) return; + uint8_t* dest = (uint8_t*)from_ptrv(d); + *(uint32_t*)dest = src->u0; dest += 4; + *(ptr_t*)dest = to_ptrv(src->p1); dest += 4; +} diff --git a/src/wrapped32/generated/converter32.h b/src/wrapped32/generated/converter32.h index ae99e85d..41981b42 100644 --- a/src/wrapped32/generated/converter32.h +++ b/src/wrapped32/generated/converter32.h @@ -54,5 +54,11 @@ typedef struct struct_iiiiiiiiilt_s { } struct_iiiiiiiiilt_t; void from_struct_iiiiiiiiilt(struct_iiiiiiiiilt_t* dest, ptr_t src); void to_struct_iiiiiiiiilt(ptr_t dest, const struct_iiiiiiiiilt_t* src); +typedef struct struct_up_s { + uint32_t u0; + void* p1; +} struct_up_t; +void from_struct_up(struct_up_t *dest, ptr_t src); +void to_struct_up(ptr_t dest, const struct_up_t *src); #endif // __CONVERTER_H_ diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index c1ea54fd..ff510ef8 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -152,6 +152,7 @@ #() dFdD -> dFdD #() dFdp -> dFdp #() dFLL -> dFLL +#() lFES -> lFES #() lFui -> lFui #() lFpl -> lFpl #() LFpL -> LFpL @@ -180,6 +181,7 @@ #() pFrL_p -> pFBp #() iFuBLL_ -> iFuB #() iFprLL_ -> iFpB +#() iFpbup_ -> iFpB #() iFBLL_p -> iFBp #() iFrLL_BLL_ -> iFBB #() pFriiiiiiiiilt_p -> pFBp @@ -886,6 +888,8 @@ wrappedlibc: - uFp: - uFV: - UFp: +- lFS: + - ftell - LFL: - pFv: - __ctype_b_loc @@ -960,6 +964,7 @@ wrappedlibc: - lFipi: - recvmsg - sendmsg + - writev - lFipL: - lFppi: - LFppi: @@ -1199,6 +1204,7 @@ wrappedsdl1: - vFv: - SDL_Quit - vFp: + - SDL_FreeSurface - SDL_KillThread - SDL_UnlockSurface - iFv: @@ -1226,6 +1232,7 @@ wrappedsdl1: - SDL_OpenAudio - pFpi: - SDL_LoadBMP_RW + - SDL_RWFromMem - pFpu: - SDL_ListModes - pFpp: diff --git a/src/wrapped32/generated/wrappedlibctypes32.h b/src/wrapped32/generated/wrappedlibctypes32.h index a61653ef..62d29a80 100644 --- a/src/wrapped32/generated/wrappedlibctypes32.h +++ b/src/wrapped32/generated/wrappedlibctypes32.h @@ -23,6 +23,7 @@ typedef uint32_t (*uFu_t)(uint32_t); typedef uint32_t (*uFp_t)(void*); typedef uint32_t (*uFV_t)(...); typedef uint64_t (*UFp_t)(void*); +typedef intptr_t (*lFS_t)(void*); typedef uintptr_t (*LFL_t)(uintptr_t); typedef void* (*pFv_t)(void); typedef void* (*pFu_t)(uint32_t); @@ -95,6 +96,7 @@ typedef void* (*pFiiiiiiiiilt_t)(int32_t, int32_t, int32_t, int32_t, int32_t, in GO(__close_nocancel, iFi_t) \ GO(getifaddrs, iFp_t) \ GO(getwc, iFh_t) \ + GO(ftell, lFS_t) \ GO(__ctype_b_loc, pFv_t) \ GO(__ctype_tolower_loc, pFv_t) \ GO(__ctype_toupper_loc, pFv_t) \ @@ -131,6 +133,7 @@ typedef void* (*pFiiiiiiiiilt_t)(int32_t, int32_t, int32_t, int32_t, int32_t, in GO(strtold_l, KFppa_t) \ GO(recvmsg, lFipi_t) \ GO(sendmsg, lFipi_t) \ + GO(writev, lFipi_t) \ GO(__realpath_chk, pFppv_t) \ GO(__libc_init, vFpppp_t) \ GO(getaddrinfo, iFpppp_t) \ diff --git a/src/wrapped32/generated/wrappedsdl1types32.h b/src/wrapped32/generated/wrappedsdl1types32.h index d808531e..ad47d0a5 100644 --- a/src/wrapped32/generated/wrappedsdl1types32.h +++ b/src/wrapped32/generated/wrappedsdl1types32.h @@ -27,6 +27,7 @@ typedef void (*vFupppp_t)(uint32_t, void*, void*, void*, void*); #define SUPER() ADDED_FUNCTIONS() \ GO(SDL_Quit, vFv_t) \ + GO(SDL_FreeSurface, vFp_t) \ GO(SDL_KillThread, vFp_t) \ GO(SDL_UnlockSurface, vFp_t) \ GO(SDL_Has3DNow, iFv_t) \ @@ -47,6 +48,7 @@ typedef void (*vFupppp_t)(uint32_t, void*, void*, void*, void*); GO(SDL_WM_SetIcon, vFpp_t) \ GO(SDL_OpenAudio, iFpp_t) \ GO(SDL_LoadBMP_RW, pFpi_t) \ + GO(SDL_RWFromMem, pFpi_t) \ GO(SDL_ListModes, pFpu_t) \ GO(SDL_CreateThread, pFpp_t) \ GO(SDL_LoadFunction, pFpp_t) \ diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c index a260e3d4..73884c1e 100644 --- a/src/wrapped32/generated/wrapper32.c +++ b/src/wrapped32/generated/wrapper32.c @@ -239,6 +239,7 @@ typedef double (*dFdd_t)(double, double); typedef double (*dFdD_t)(double, long double); typedef double (*dFdp_t)(double, void*); typedef double (*dFLL_t)(uintptr_t, uintptr_t); +typedef intptr_t (*lFES_t)(x64emu_t*, void*); typedef intptr_t (*lFui_t)(uint32_t, int32_t); typedef intptr_t (*lFpl_t)(void*, intptr_t); typedef uintptr_t (*LFpL_t)(void*, uintptr_t); @@ -267,6 +268,7 @@ typedef double (*dFpBp__t)(void*, struct_p_t*); typedef void* (*pFrL_p_t)(struct_L_t*, void*); typedef int32_t (*iFuBLL__t)(uint32_t, struct_LL_t*); typedef int32_t (*iFprLL__t)(void*, struct_LL_t*); +typedef int32_t (*iFpbup__t)(void*, struct_up_t*); typedef int32_t (*iFBLL_p_t)(struct_LL_t*, void*); typedef int32_t (*iFrLL_BLL__t)(struct_LL_t*, struct_LL_t*); typedef void* (*pFriiiiiiiiilt_p_t)(struct_iiiiiiiiilt_t*, void*); @@ -1104,6 +1106,7 @@ void dFdd_32(x64emu_t *emu, uintptr_t fcn) { dFdd_t fn = (dFdd_t)fcn; double db void dFdD_32(x64emu_t *emu, uintptr_t fcn) { dFdD_t fn = (dFdD_t)fcn; double db = fn(from_ptri(double, R_ESP + 4), LD2localLD(from_ptrv(R_ESP + 12))); fpu_do_push(emu); ST0val = db; } void dFdp_32(x64emu_t *emu, uintptr_t fcn) { dFdp_t fn = (dFdp_t)fcn; double db = fn(from_ptri(double, R_ESP + 4), from_ptriv(R_ESP + 12)); fpu_do_push(emu); ST0val = db; } void dFLL_32(x64emu_t *emu, uintptr_t fcn) { dFLL_t fn = (dFLL_t)fcn; double db = fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)), to_ulong(from_ptri(ulong_t, R_ESP + 8))); fpu_do_push(emu); ST0val = db; } +void lFES_32(x64emu_t *emu, uintptr_t fcn) { lFES_t fn = (lFES_t)fcn; R_EAX = to_long(fn(emu, io_convert32(from_ptriv(R_ESP + 4)))); } void lFui_32(x64emu_t *emu, uintptr_t fcn) { lFui_t fn = (lFui_t)fcn; R_EAX = to_long(fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8))); } void lFpl_32(x64emu_t *emu, uintptr_t fcn) { lFpl_t fn = (lFpl_t)fcn; R_EAX = to_long(fn(from_ptriv(R_ESP + 4), to_long(from_ptri(long_t, R_ESP + 8)))); } void LFpL_32(x64emu_t *emu, uintptr_t fcn) { LFpL_t fn = (LFpL_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)))); } @@ -1132,6 +1135,7 @@ void dFpBp__32(x64emu_t *emu, uintptr_t fcn) { dFpBp__t fn = (dFpBp__t)fcn; stru void pFrL_p_32(x64emu_t *emu, uintptr_t fcn) { pFrL_p_t fn = (pFrL_p_t)fcn; struct_L_t arg_4; from_struct_L(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8))); } void iFuBLL__32(x64emu_t *emu, uintptr_t fcn) { iFuBLL__t fn = (iFuBLL__t)fcn; struct_LL_t arg_8; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void iFprLL__32(x64emu_t *emu, uintptr_t fcn) { iFprLL__t fn = (iFprLL__t)fcn; struct_LL_t arg_8; from_struct_LL(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); } +void iFpbup__32(x64emu_t *emu, uintptr_t fcn) { iFpbup__t fn = (iFpbup__t)fcn; struct_up_t arg_8; from_struct_up(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_up(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void iFBLL_p_32(x64emu_t *emu, uintptr_t fcn) { iFBLL_p_t fn = (iFBLL_p_t)fcn; struct_LL_t arg_4; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); } void iFrLL_BLL__32(x64emu_t *emu, uintptr_t fcn) { iFrLL_BLL__t fn = (iFrLL_BLL__t)fcn; struct_LL_t arg_4; from_struct_LL(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); struct_LL_t arg_8; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void pFriiiiiiiiilt_p_32(x64emu_t *emu, uintptr_t fcn) { pFriiiiiiiiilt_p_t fn = (pFriiiiiiiiilt_p_t)fcn; struct_iiiiiiiiilt_t arg_4; from_struct_iiiiiiiiilt(&arg_4, *(ptr_t*)(from_ptr((R_ESP + 4)))); R_EAX = to_ptrv(fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8))); } diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h index 53359abd..99e0e505 100644 --- a/src/wrapped32/generated/wrapper32.h +++ b/src/wrapped32/generated/wrapper32.h @@ -192,6 +192,7 @@ void dFdd_32(x64emu_t *emu, uintptr_t fnc); void dFdD_32(x64emu_t *emu, uintptr_t fnc); void dFdp_32(x64emu_t *emu, uintptr_t fnc); void dFLL_32(x64emu_t *emu, uintptr_t fnc); +void lFES_32(x64emu_t *emu, uintptr_t fnc); void lFui_32(x64emu_t *emu, uintptr_t fnc); void lFpl_32(x64emu_t *emu, uintptr_t fnc); void LFpL_32(x64emu_t *emu, uintptr_t fnc); @@ -220,6 +221,7 @@ void dFpBp__32(x64emu_t *emu, uintptr_t fnc); void pFrL_p_32(x64emu_t *emu, uintptr_t fnc); void iFuBLL__32(x64emu_t *emu, uintptr_t fnc); void iFprLL__32(x64emu_t *emu, uintptr_t fnc); +void iFpbup__32(x64emu_t *emu, uintptr_t fnc); void iFBLL_p_32(x64emu_t *emu, uintptr_t fnc); void iFrLL_BLL__32(x64emu_t *emu, uintptr_t fnc); void pFriiiiiiiiilt_p_32(x64emu_t *emu, uintptr_t fnc); |