Applied the recent mainline PCem commits (and fixed the Pentium machines);

Ported the Roland MT-32 emulation (using MUNT) from bit's MT32 emulation branch of PCem;
Sanitized the OpenAL give buffer code in openal.c a bit;
NVR path is now specifiable in the Settings dialog;
Added Logitech 3-button serial mouse per protocol description by waltje;
The RTL8029AS and the BT-958D now actually use the PCI IRQ routing;
Fixed BT-958D PCI device initialization on the bus;
PCI IRQ routing now respects the edge/level setting set on ports 4D0/4D1.
This commit is contained in:
OBattler
2017-06-19 06:46:08 +02:00
parent 9c9f7b1b9a
commit 1e7668f1db
112 changed files with 16289 additions and 732 deletions

View File

@@ -63,6 +63,12 @@ sermouse_timer(void *priv)
serial_write_fifo(ms->serial, 'M', 1);
break;
case SERMOUSE_TYPE_LOGITECH:
/* This identifies a two-button Logitech Serial mouse. */
serial_write_fifo(ms->serial, 'M', 1);
serial_write_fifo(ms->serial, '3', 1);
break;
default:
/* No action needed. */
break;
@@ -114,6 +120,22 @@ sermouse_poll(int x, int y, int z, int b, void *priv)
break;
case SERMOUSE_TYPE_LOGITECH:
buff[0] = 0x40;
buff[0] |= (((y>>6)&03)<<2);
buff[0] |= ((x>>6)&03);
if (b&0x01) buff[0] |= 0x20;
if (b&0x02) buff[0] |= 0x10;
buff[1] = x & 0x3F;
buff[2] = y & 0x3F;
if (b&0x04)
{
buff[3] = 0x20;
len = 4;
}
else
{
len = 3;
}
break;
}
@@ -167,6 +189,13 @@ sermouse_init_microsoft(void)
}
static void *
sermouse_init_logitech(void)
{
return(sermouse_init(SERMOUSE_TYPE_LOGITECH));
}
static void *
sermouse_init_msystems(void)
{
@@ -192,3 +221,13 @@ mouse_t mouse_serial_microsoft = {
sermouse_close,
sermouse_poll
};
mouse_t mouse_serial_logitech = {
"Logitech 3-button mouse (serial)",
"lserial",
MOUSE_TYPE_SERIAL | MOUSE_TYPE_3BUTTON,
sermouse_init_logitech,
sermouse_close,
sermouse_poll
};