summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-13 22:10:13 +0000
committerSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2014-07-13 22:10:13 +0000
commit6f7514d70d5c728496659be1b1458c7e1d05e422 (patch)
treef1a4e051245b13d137325a13345bf6c14c42874b /libpcsxcore
parent533e6a2bfdc63de3e14f13300ee064564cd9375d (diff)
downloadpcsxr-6f7514d70d5c728496659be1b1458c7e1d05e422.tar.gz
hle bios memset fix (issue 11764);
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@90952 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore')
-rwxr-xr-xlibpcsxcore/psxbios.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/libpcsxcore/psxbios.c b/libpcsxcore/psxbios.c
index 5947d407..bf501356 100755
--- a/libpcsxcore/psxbios.c
+++ b/libpcsxcore/psxbios.c
@@ -642,10 +642,25 @@ void psxBios_memcpy() { // 0x2a
}
void psxBios_memset() { // 0x2b
- char *p = (char *)Ra0;
- while (a2-- > 0) *p++ = (char)a1;
+ a1 &= 0xff;
- v0 = a0; pc0 = ra;
+ if(!a0)
+ {
+ v0 = 0;
+ }
+ else
+ {
+ v0 = a0;
+
+ while((s32)a2 > 0)
+ {
+ a2--;
+ psxMu8ref(a0) = a1;
+ a0++;
+ }
+ }
+
+ pc0 = ra;
}
void psxBios_memmove() { // 0x2c