diff options
| author | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2014-07-13 22:10:13 +0000 |
|---|---|---|
| committer | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2014-07-13 22:10:13 +0000 |
| commit | 6f7514d70d5c728496659be1b1458c7e1d05e422 (patch) | |
| tree | f1a4e051245b13d137325a13345bf6c14c42874b /libpcsxcore | |
| parent | 533e6a2bfdc63de3e14f13300ee064564cd9375d (diff) | |
| download | pcsxr-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-x | libpcsxcore/psxbios.c | 21 |
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 |
