--- np2/io/mouseif.c 2004/04/16 22:20:03 1.13 +++ np2/io/mouseif.c 2007/11/03 00:00:20 1.16 @@ -114,6 +114,8 @@ static void setportc(REG8 value) { if ((value ^ mouseif.upd8255.portc) & 0x10) { if (!(value & 0x10)) { if (!nevent_iswork(NEVENT_MOUSE)) { + // 割り込みを入れとく + pic_setirq(0x0d); nevent_set(NEVENT_MOUSE, mouseif.intrclock << mouseif.timing, mouseint, NEVENT_ABSOLUTE); } @@ -181,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; @@ -248,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) {