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: Init some vars just to be sure.
[pcsx_rearmed.git]
/
libpcsxcore
/
psxbios.c
diff --git
a/libpcsxcore/psxbios.c
b/libpcsxcore/psxbios.c
index
394dddc
..
ebb5957
100644
(file)
--- a/
libpcsxcore/psxbios.c
+++ b/
libpcsxcore/psxbios.c
@@
-245,6
+245,7
@@
static u32 *jmp_int = NULL;
static int *pad_buf = NULL;
static char *pad_buf1 = NULL, *pad_buf2 = NULL;
static int pad_buf1len, pad_buf2len;
static int *pad_buf = NULL;
static char *pad_buf1 = NULL, *pad_buf2 = NULL;
static int pad_buf1len, pad_buf2len;
+static int pad_stopped = 0;
static u32 regs[35];
static EvCB *Event;
static u32 regs[35];
static EvCB *Event;
@@
-1914,7
+1915,7
@@
void psxBios_StartPAD() { // 13
#ifdef PSXBIOS_LOG
PSXBIOS_LOG("psxBios_%s\n", biosB0n[0x13]);
#endif
#ifdef PSXBIOS_LOG
PSXBIOS_LOG("psxBios_%s\n", biosB0n[0x13]);
#endif
-
+ pad_stopped = 0;
psxHwWrite16(0x1f801074, (unsigned short)(psxHwRead16(0x1f801074) | 0x1));
psxRegs.CP0.n.Status |= 0x401;
pc0 = ra;
psxHwWrite16(0x1f801074, (unsigned short)(psxHwRead16(0x1f801074) | 0x1));
psxRegs.CP0.n.Status |= 0x401;
pc0 = ra;
@@
-1924,6
+1925,7
@@
void psxBios_StopPAD() { // 14
#ifdef PSXBIOS_LOG
PSXBIOS_LOG("psxBios_%s\n", biosB0n[0x14]);
#endif
#ifdef PSXBIOS_LOG
PSXBIOS_LOG("psxBios_%s\n", biosB0n[0x14]);
#endif
+ pad_stopped = 1;
if (pad_buf == 0){
pad_buf1 = NULL;
pad_buf2 = NULL;
if (pad_buf == 0){
pad_buf1 = NULL;
pad_buf2 = NULL;
@@
-3003,6
+3005,7
@@
void psxBiosInit() {
memset(Thread, 0, sizeof(Thread));
Thread[0].status = 2; // main thread
memset(Thread, 0, sizeof(Thread));
Thread[0].status = 2; // main thread
+ pad_stopped = 1;
jmp_int = NULL;
pad_buf = NULL;
pad_buf1 = NULL;
jmp_int = NULL;
pad_buf = NULL;
pad_buf1 = NULL;
@@
-3014,6
+3017,7
@@
void psxBiosInit() {
CardState = -1;
CurThread = 0;
memset(FDesc, 0, sizeof(FDesc));
CardState = -1;
CurThread = 0;
memset(FDesc, 0, sizeof(FDesc));
+ card_active_chan = 0;
psxMu32ref(0x0150) = SWAPu32(0x160);
psxMu32ref(0x0154) = SWAPu32(0x320);
psxMu32ref(0x0150) = SWAPu32(0x160);
psxMu32ref(0x0154) = SWAPu32(0x320);
@@
-3138,12
+3142,14
@@
void biosInterrupt() {
if (NET_recvPadData(pad_buf2, 2) == -1)
netError();
} else {
if (NET_recvPadData(pad_buf2, 2) == -1)
netError();
} else {
- if (pad_buf1) {
- psxBios_PADpoll(1);
- }
+ if (!pad_stopped) {
+ if (pad_buf1) {
+ psxBios_PADpoll(1);
+ }
- if (pad_buf2) {
- psxBios_PADpoll(2);
+ if (pad_buf2) {
+ psxBios_PADpoll(2);
+ }
}
}
}
}
@@
-3271,6
+3277,7
@@
void psxBiosException() {
void psxBiosFreeze(int Mode) {
u32 base = 0x40000;
void psxBiosFreeze(int Mode) {
u32 base = 0x40000;
+ pad_stopped = 0;
bfreezepsxMptr(jmp_int, u32);
bfreezepsxMptr(pad_buf, int);
bfreezepsxMptr(pad_buf1, char);
bfreezepsxMptr(jmp_int, u32);
bfreezepsxMptr(pad_buf, int);
bfreezepsxMptr(pad_buf1, char);