diff options
| -rw-r--r-- | libpcsxcore/sio.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/libpcsxcore/sio.c b/libpcsxcore/sio.c index 518e714d..3857d909 100644 --- a/libpcsxcore/sio.c +++ b/libpcsxcore/sio.c @@ -87,13 +87,22 @@ static int DongleInit; psxRegs.interrupt |= (1 << PSXINT_SIO); \ psxRegs.intCycle[PSXINT_SIO].cycle = eCycle; \ psxRegs.intCycle[PSXINT_SIO].sCycle = psxRegs.cycle; \ - } \ + } \
+ \ + StatReg &= ~RX_RDY; \
+ StatReg &= ~TX_RDY; \
} +
+#define SIO_CYCLES (BaudReg * 8)
+
+
// clk cycle byte // 4us * 8bits = (PSXCLK / 1000000) * 32; (linuzappz) // TODO: add SioModePrescaler and BaudReg -#define SIO_CYCLES 535 +
+// ePSXe 1.6.0
+//#define SIO_CYCLES 535 // ePSXe 1.7.0
//#define SIO_CYCLES 635
@@ -775,6 +784,10 @@ void sioInterrupt() { // SysPrintf("Sio Interrupt\n"); StatReg |= IRQ; psxHu32ref(0x1070) |= SWAPu32(0x80); +
+ // Rhapsody: fixes input problems
+ StatReg |= TX_RDY;
+ StatReg |= RX_RDY;
} void LoadMcd(int mcd, char *str) { |
