about summary refs log tree commit diff stats
path: root/src/emu
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-09-26 13:20:07 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-09-26 13:20:07 +0200
commitb80e4c552aa7ba61e8b9bb41079e34a1c7512464 (patch)
tree51993243acb33b662d299576da19c448fd703513 /src/emu
parent933dc0f5c83016345bef0dd7c5b5b88de495c9c3 (diff)
downloadbox64-b80e4c552aa7ba61e8b9bb41079e34a1c7512464.tar.gz
box64-b80e4c552aa7ba61e8b9bb41079e34a1c7512464.zip
[BOX32] Minor changes to 32bits freetype wrapping
Diffstat (limited to 'src/emu')
-rwxr-xr-xsrc/emu/x86int3.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/emu/x86int3.c b/src/emu/x86int3.c
index 79f18a5e..52920c02 100755
--- a/src/emu/x86int3.c
+++ b/src/emu/x86int3.c
@@ -305,6 +305,8 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr)
                     snprintf(buff, 255, "%04d|%p: Calling %s(%p, \"%s\")", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8)));
                 } else  if(strstr(s, "glXGetProcAddress")==s) {
                     snprintf(buff, 255, "%04d|%p: Calling %s(\"%s\")", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)));
+                } else if (!strcmp(s, "glTexImage2D")) {
+                    snprintf(buff, 256, "%04d|%p: Calling %s(0x%x, %d, 0x%x, %d, %d, %d, 0x%x, 0x%x, %p)", tid, from_ptrv(*(ptr_t*)from_ptrv(R_ESP)), s, *(uint32_t*)from_ptrv(R_ESP+4), *(int*)from_ptrv(R_ESP+8), *(int*)from_ptrv(R_ESP+12), *(int*)from_ptrv(R_ESP+16), *(int*)from_ptrv(R_ESP+20), *(int*)from_ptrv(R_ESP+24), *(uint32_t*)from_ptrv(R_ESP+28), *(uint32_t*)from_ptrv(R_ESP+32), from_ptrv(*(ptr_t*)from_ptrv(R_ESP+36)));
                 } else  if(strstr(s, "sscanf")==s) {
                     snprintf(buff, 255, "%04d|%p: Calling %s(\"%s\", \"%s\", ...)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8)));
                 } else  if(!strcmp(s, "vsscanf")) {
@@ -340,6 +342,10 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr)
                     snprintf(buff, 255, "%04d|%p: Calling %s(%p)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)));
                 } else  if(strstr(s, "___tls_get_addr")) {
                     snprintf(buff, 255, "%04d|%p: Calling %s(%p[%d, %d])", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(R_EAX), ((int*)from_ptrv(R_EAX))[0], ((int*)from_ptrv(R_EAX))[1]);
+                } else if (!strcmp(s, "FT_Outline_Get_CBox")) {
+                    pu32 = *(uint32_t**)from_ptrv(R_ESP+8);
+                    snprintf(buff, 256, "%04d|%p: Calling %s(%p, %p)", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8)));
+                    post = 11;
                 } else if(strstr(s, "udev_monitor_new_from_netlink")==s) {
                     post = 5;
                     snprintf(buff, 255, "%04d|%p: Calling %s(%p, \"%s\")", tid, from_ptrv(*(ptr_t*)from_ptr(R_ESP)), s, from_ptrv(*(ptr_t*)from_ptr(R_ESP+4)), from_ptrv(*(ptr_t*)from_ptr(R_ESP+8)));
@@ -388,6 +394,8 @@ void x86Int3(x64emu_t* emu, uintptr_t* addr)
                                     snprintf(buff2, 63, " [type=%hhd]", *pu8); 
                             }
                             break;
+                    case 11: snprintf(buff2, 63, " [%d / %d / %d /%d]", pu32[0], pu32[1], pu32[2], pu32[3]);
+                            break;
 
                 }
                 if(perr==1 && ((int)R_EAX)<0)