mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Merge pull request #4289 from sum2012/sceDmac
Fix DmacMemcpy and sceDmacTryMemcpy by @unknownbrackets
This commit is contained in:
commit
20fc1397a9
1 changed files with 8 additions and 1 deletions
|
@ -67,7 +67,10 @@ u32 sceDmacMemcpy(u32 dst, u32 src, u32 size) {
|
|||
ERROR_LOG(HLE, "sceDmacMemcpy(dest=%08x, src=%08x, size=%i): invalid address", dst, src, size);
|
||||
return SCE_KERNEL_ERROR_INVALID_POINTER;
|
||||
}
|
||||
|
||||
if (dst + size >= 0x80000000 || src + size >= 0x80000000) {
|
||||
ERROR_LOG(HLE, "sceDmacMemcpy(dest=%08x, src=%08x, size=%i): illegal size", dst, src, size);
|
||||
return 0x80000023;
|
||||
}
|
||||
if (dmacMemcpyDeadline > CoreTiming::GetTicks()) {
|
||||
WARN_LOG_REPORT(HLE, "sceDmacMemcpy(dest=%08x, src=%08x, size=%i): overlapping read", dst, src, size);
|
||||
// TODO: Should block, seems like copy doesn't start until previous finishes.
|
||||
|
@ -88,6 +91,10 @@ u32 sceDmacTryMemcpy(u32 dst, u32 src, u32 size) {
|
|||
ERROR_LOG(HLE, "sceDmacTryMemcpy(dest=%08x, src=%08x, size=%i): invalid address", dst, src, size);
|
||||
return SCE_KERNEL_ERROR_INVALID_POINTER;
|
||||
}
|
||||
if (dst + size >= 0x80000000 || src + size >= 0x80000000) {
|
||||
ERROR_LOG(HLE, "sceDmacTryMemcpy(dest=%08x, src=%08x, size=%i): illegal size", dst, src, size);
|
||||
return 0x80000023;
|
||||
}
|
||||
|
||||
if (dmacMemcpyDeadline > CoreTiming::GetTicks()) {
|
||||
DEBUG_LOG(HLE, "sceDmacTryMemcpy(dest=%08x, src=%08x, size=%i): busy", dst, src, size);
|
||||
|
|
Loading…
Add table
Reference in a new issue