notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
psxbios: Fixup mistake in card_info function.
[pcsx_rearmed.git]
/
libpcsxcore
/
psxbios.c
diff --git
a/libpcsxcore/psxbios.c
b/libpcsxcore/psxbios.c
index
7b2c05f
..
93a4057
100644
(file)
--- a/
libpcsxcore/psxbios.c
+++ b/
libpcsxcore/psxbios.c
@@
-924,6
+924,12
@@
void psxBios_memcmp() { // 0x2d
void psxBios_memchr() { // 0x2e
char *p = (char *)Ra0;
void psxBios_memchr() { // 0x2e
char *p = (char *)Ra0;
+
+ if (a0 == 0 || a2 > 0x7FFFFFFF)
+ {
+ pc0 = ra;
+ return;
+ }
while ((s32)a2-- > 0) {
if (*p++ != (s8)a1) continue;
while ((s32)a2-- > 0) {
if (*p++ != (s8)a1) continue;
@@
-1587,11
+1593,8
@@
void psxBios__card_info() { // ab
break;
}
break;
}
-// DeliverEvent(0x11, 0x2); // 0xf0000011, 0x0004
-// DeliverEvent(0x11, 0x2); // 0xf0000011, 0x0004
- DeliverEvent(0x81, 0x2); // 0xf4000001, 0x0004
+ DeliverEvent(0x11, 0x2); // 0xf4000001, 0x0004
DeliverEvent(0x81, ret); // 0xf4000001, 0x0004
DeliverEvent(0x81, ret); // 0xf4000001, 0x0004
-
v0 = 1; pc0 = ra;
}
v0 = 1; pc0 = ra;
}
@@
-1872,12
+1875,10
@@
void psxBios_CloseTh() { // 0f
#ifdef PSXBIOS_LOG
PSXBIOS_LOG("psxBios_%s: %x\n", biosB0n[0x0f], th);
#endif
#ifdef PSXBIOS_LOG
PSXBIOS_LOG("psxBios_%s: %x\n", biosB0n[0x0f], th);
#endif
-
- if (Thread[th].status == 0) {
- v0 = 0;
- } else {
+ /* The return value is always 1 (even if the handle was already closed). */
+ v0 = 1;
+ if (Thread[th].status != 0) {
Thread[th].status = 0;
Thread[th].status = 0;
- v0 = 1;
}
pc0 = ra;
}
pc0 = ra;
@@
-1893,14
+1894,11
@@
void psxBios_ChangeTh() { // 10
#ifdef PSXBIOS_LOG
// PSXBIOS_LOG("psxBios_%s: %x\n", biosB0n[0x10], th);
#endif
#ifdef PSXBIOS_LOG
// PSXBIOS_LOG("psxBios_%s: %x\n", biosB0n[0x10], th);
#endif
-
+ /* The return value is always 1. */
+ v0 = 1;
if (Thread[th].status == 0 || CurThread == th) {
if (Thread[th].status == 0 || CurThread == th) {
- v0 = 0;
-
pc0 = ra;
} else {
pc0 = ra;
} else {
- v0 = 1;
-
if (Thread[CurThread].status == 2) {
Thread[CurThread].status = 1;
Thread[CurThread].func = ra;
if (Thread[CurThread].status == 2) {
Thread[CurThread].status = 1;
Thread[CurThread].func = ra;