diff --git a/rpcs3/Emu/Cell/Modules/sys_libc_.cpp b/rpcs3/Emu/Cell/Modules/sys_libc_.cpp index 321f89c815..aa3c211719 100644 --- a/rpcs3/Emu/Cell/Modules/sys_libc_.cpp +++ b/rpcs3/Emu/Cell/Modules/sys_libc_.cpp @@ -211,7 +211,16 @@ s32 _sys_strcmp(vm::cptr str1, vm::cptr str2) { sysPrxForUser.trace("_sys_strcmp(str1=%s, str2=%s)", str1, str2); - return std::strcmp(str1.get_ptr(), str2.get_ptr()); + for (u32 i = 0;; i++) + { + const u8 ch1 = str1[i], ch2 = str2[i]; + if (ch1 < ch2) + return -1; + if (ch1 > ch2) + return 1; + if (ch1 == '\0') + return 0; + } } s32 _sys_strncmp(vm::cptr str1, vm::cptr str2, s32 max)