mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
Fix cdimono1 and quizard crash bugs, nw
This commit is contained in:
parent
e298126108
commit
46d8122241
@ -163,14 +163,14 @@ INPUT_CHANGED_MEMBER(cdi_state::mcu_input)
|
||||
|
||||
static INPUT_PORTS_START( cdi )
|
||||
PORT_START("MOUSEX")
|
||||
PORT_BIT(0x3ff, 0x000, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_MINMAX(0x000, 0x3ff) PORT_KEYDELTA(2) PORT_CHANGED_MEMBER("slave", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x3ff, 0x000, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_MINMAX(0x000, 0x3ff) PORT_KEYDELTA(2) PORT_CHANGED_MEMBER("slave_hle", cdislave_device, mouse_update, 0)
|
||||
|
||||
PORT_START("MOUSEY")
|
||||
PORT_BIT(0x3ff, 0x000, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_MINMAX(0x000, 0x3ff) PORT_KEYDELTA(2) PORT_CHANGED_MEMBER("slave", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x3ff, 0x000, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_MINMAX(0x000, 0x3ff) PORT_KEYDELTA(2) PORT_CHANGED_MEMBER("slave_hle", cdislave_device, mouse_update, 0)
|
||||
|
||||
PORT_START("MOUSEBTN")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(MOUSECODE_BUTTON1) PORT_NAME("Mouse Button 1") PORT_CHANGED_MEMBER("slave", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(MOUSECODE_BUTTON2) PORT_NAME("Mouse Button 2") PORT_CHANGED_MEMBER("slave", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(MOUSECODE_BUTTON1) PORT_NAME("Mouse Button 1") PORT_CHANGED_MEMBER("slave_hle", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(MOUSECODE_BUTTON2) PORT_NAME("Mouse Button 2") PORT_CHANGED_MEMBER("slave_hle", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0xfc, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("DEBUG")
|
||||
@ -204,14 +204,14 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( cdimono2 )
|
||||
PORT_START("MOUSEX")
|
||||
PORT_BIT(0x3ff, 0x000, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_MINMAX(0x000, 0x3ff) PORT_KEYDELTA(2) //PORT_CHANGED_MEMBER("slave", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x3ff, 0x000, IPT_MOUSE_X) PORT_SENSITIVITY(100) PORT_MINMAX(0x000, 0x3ff) PORT_KEYDELTA(2) //PORT_CHANGED_MEMBER("slave_hle", cdislave_device, mouse_update, 0)
|
||||
|
||||
PORT_START("MOUSEY")
|
||||
PORT_BIT(0x3ff, 0x000, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_MINMAX(0x000, 0x3ff) PORT_KEYDELTA(2) //PORT_CHANGED_MEMBER("slave", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x3ff, 0x000, IPT_MOUSE_Y) PORT_SENSITIVITY(100) PORT_MINMAX(0x000, 0x3ff) PORT_KEYDELTA(2) //PORT_CHANGED_MEMBER("slave_hle", cdislave_device, mouse_update, 0)
|
||||
|
||||
PORT_START("MOUSEBTN")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(MOUSECODE_BUTTON1) PORT_NAME("Mouse Button 1") //PORT_CHANGED_MEMBER("slave", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(MOUSECODE_BUTTON2) PORT_NAME("Mouse Button 2") //PORT_CHANGED_MEMBER("slave", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(MOUSECODE_BUTTON1) PORT_NAME("Mouse Button 1") //PORT_CHANGED_MEMBER("slave_hle", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(MOUSECODE_BUTTON2) PORT_NAME("Mouse Button 2") //PORT_CHANGED_MEMBER("slave_hle", cdislave_device, mouse_update, 0)
|
||||
PORT_BIT(0xfc, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("DEBUG")
|
||||
@ -276,6 +276,7 @@ MACHINE_RESET_MEMBER( cdi_state, cdimono1 )
|
||||
UINT16 *dst = m_planea;
|
||||
memcpy(dst, src, 0x8);
|
||||
memset(m_servo_io_regs, 0, 0x20);
|
||||
memset(m_slave_io_regs, 0, 0x20);
|
||||
|
||||
m_maincpu->reset();
|
||||
|
||||
@ -408,10 +409,11 @@ READ8_MEMBER( cdi_state::servo_io_r )
|
||||
verboselog(*this, 1, "SERVO Port A Data read (%02x)\n", ret);
|
||||
break;
|
||||
case m68hc05eg_io_reg_t::PORT_B_DATA:
|
||||
ret = 0x08;
|
||||
verboselog(*this, 1, "SERVO Port B Data read (%02x)\n", ret);
|
||||
ret |= 0x08;
|
||||
break;
|
||||
case m68hc05eg_io_reg_t::PORT_C_DATA:
|
||||
ret |= INV_CADDYSWITCH_IN;
|
||||
verboselog(*this, 1, "SERVO Port C Data read (%02x)\n", ret);
|
||||
break;
|
||||
case m68hc05eg_io_reg_t::PORT_D_INPUT:
|
||||
@ -511,13 +513,13 @@ WRITE8_MEMBER( cdi_state::servo_io_w )
|
||||
{
|
||||
case m68hc05eg_io_reg_t::PORT_A_DATA:
|
||||
verboselog(*this, 1, "SERVO Port A Data write (%02x)\n", data);
|
||||
break;
|
||||
return;
|
||||
case m68hc05eg_io_reg_t::PORT_B_DATA:
|
||||
verboselog(*this, 1, "SERVO Port B Data write (%02x)\n", data);
|
||||
break;
|
||||
return;
|
||||
case m68hc05eg_io_reg_t::PORT_C_DATA:
|
||||
verboselog(*this, 1, "SERVO Port C Data write (%02x)\n", data);
|
||||
break;
|
||||
return;
|
||||
case m68hc05eg_io_reg_t::PORT_D_INPUT:
|
||||
verboselog(*this, 1, "SERVO Port D Input write (%02x)\n", data);
|
||||
return;
|
||||
@ -708,13 +710,13 @@ WRITE8_MEMBER( cdi_state::slave_io_w )
|
||||
{
|
||||
case m68hc05eg_io_reg_t::PORT_A_DATA:
|
||||
verboselog(*this, 1, "SLAVE Port A Data write (%02x)\n", data);
|
||||
break;
|
||||
return;
|
||||
case m68hc05eg_io_reg_t::PORT_B_DATA:
|
||||
verboselog(*this, 1, "SLAVE Port B Data write (%02x)\n", data);
|
||||
break;
|
||||
return;
|
||||
case m68hc05eg_io_reg_t::PORT_C_DATA:
|
||||
verboselog(*this, 1, "SLAVE Port C Data write (%02x)\n", data);
|
||||
break;
|
||||
return;
|
||||
case m68hc05eg_io_reg_t::PORT_D_INPUT:
|
||||
verboselog(*this, 1, "SLAVE Port D Input write (%02x)\n", data);
|
||||
return;
|
||||
@ -868,8 +870,6 @@ static MACHINE_CONFIG_START( cdimono2, cdi_state )
|
||||
MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 )
|
||||
|
||||
MCFG_CDI68070_ADD("scc68070")
|
||||
//MCFG_CDICDIC_ADD("cdic")
|
||||
//MCFG_CDISLAVE_ADD("slave")
|
||||
MCFG_CPU_ADD("servo", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */
|
||||
MCFG_CPU_PROGRAM_MAP(cdimono2_servo_mem)
|
||||
MCFG_CPU_ADD("slave", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */
|
||||
|
@ -64,6 +64,13 @@ public:
|
||||
ACOUNT_LO = 0x1b
|
||||
};
|
||||
|
||||
enum servo_portc_bit_t
|
||||
{
|
||||
INV_JUC_OUT = (1 << 2),
|
||||
INV_DIV4_IN = (1 << 5),
|
||||
INV_CADDYSWITCH_IN = (1 << 7)
|
||||
};
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_shared_ptr<UINT16> m_planea;
|
||||
required_shared_ptr<UINT16> m_planeb;
|
||||
|
Loading…
Reference in New Issue
Block a user