--- np2/io/mouseif.c 2005/03/05 06:02:29 1.14 +++ np2/io/mouseif.c 2011/01/15 18:04:43 1.18 @@ -30,11 +30,11 @@ void mouseif_sync(void) { static void calc_mousexy(void) { - UINT32 clock; + UINT32 clk; SINT32 diff; - clock = CPU_CLOCK + CPU_BASECLOCK + CPU_REMCLOCK; - diff = clock - mouseif.lastc; + clk = CPU_CLOCK + CPU_BASECLOCK + CPU_REMCLOCK; + diff = clk - mouseif.lastc; if (diff >= 2000) { SINT32 dx; SINT32 dy; @@ -183,7 +183,11 @@ static REG8 IOINPCALL mouseif_i7fd9(UINT ret |= mouseif.rapid; } ret &= 0xf0; +#if 1 + ret |= 0x40; // for shizuku +#else ret |= 0x50; +#endif portc = mouseif.upd8255.portc; if (portc & 0x80) { x = mouseif.latch_x; @@ -234,8 +238,8 @@ static REG8 IOINPCALL mouseif_i7fdd(UINT if (mode & uPD8255_PORTCL) { ret &= 0xf0; ret |= 0x08; - ret |= (np2cfg.dipsw[2] >> 5) & 0x04; - ret |= ((~np2cfg.dipsw[0]) >> 4) & 0x03; + ret |= (pccore.dipsw[2] >> 5) & 0x04; + ret |= ((~pccore.dipsw[0]) >> 4) & 0x03; } (void)port; return(ret); @@ -250,15 +254,19 @@ static void IOOUTCALL mouseif_obfdb(UINT // ---- I/F -void mouseif_reset(void) { +void mouseif_reset(const NP2CFG *pConfig) { ZeroMemory(&mouseif, sizeof(mouseif)); mouseif.upd8255.porta = 0x00; mouseif.upd8255.portb = 0x00; - mouseif.upd8255.portc = 0x10; + mouseif.upd8255.portc = 0xf0; // ver0.82 mouseif.upd8255.mode = 0x93; mouseif.intrclock = pccore.realclock / 120; mouseif.moveclock = pccore.realclock / 56400; + mouseif.latch_x = -1; + mouseif.latch_y = -1; + + (void)pConfig; } void mouseif_bind(void) {