summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/taito_b.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/taito_b.cpp')
-rw-r--r--src/mame/drivers/taito_b.cpp302
1 files changed, 151 insertions, 151 deletions
diff --git a/src/mame/drivers/taito_b.cpp b/src/mame/drivers/taito_b.cpp
index 54e5cfe0af4..d6a56729cac 100644
--- a/src/mame/drivers/taito_b.cpp
+++ b/src/mame/drivers/taito_b.cpp
@@ -239,7 +239,7 @@ WRITE16_MEMBER(taitob_state::gain_control_w)
}
}
-INPUT_CHANGED_MEMBER(taitob_state::realpunc_sensor)
+INPUT_CHANGED_MEMBER(taitob_c_state::realpunc_sensor)
{
m_maincpu->set_input_line(4, HOLD_LINE);
}
@@ -319,7 +319,7 @@ WRITE16_MEMBER(taitob_state::spacedxo_tc0220ioc_w)
}
}
-WRITE16_MEMBER(taitob_state::realpunc_output_w)
+WRITE16_MEMBER(taitob_c_state::realpunc_output_w)
{
/*
15 = Camera Enable?
@@ -561,19 +561,19 @@ void taitob_state::sbm_map(address_map &map)
map(0x900000, 0x97ffff).m(m_tc0180vcu, FUNC(tc0180vcu_device::tc0180vcu_memrw));
}
-void taitob_state::realpunc_map(address_map &map)
+void taitob_c_state::realpunc_map(address_map &map)
{
map(0x000000, 0x0fffff).rom();
map(0x100000, 0x10ffff).ram();
map(0x110000, 0x12ffff).ram();
map(0x130000, 0x13ffff).ram(); // Check me
map(0x180000, 0x18000f).rw(m_tc0510nio, FUNC(tc0510nio_device::halfword_wordswap_r), FUNC(tc0510nio_device::halfword_wordswap_w));
- map(0x184000, 0x184001).w(FUNC(taitob_state::realpunc_video_ctrl_w));
+ map(0x184000, 0x184001).w(FUNC(taitob_c_state::realpunc_video_ctrl_w));
map(0x188000, 0x188001).nopr();
map(0x188000, 0x188000).w("tc0140syt", FUNC(tc0140syt_device::master_port_w));
map(0x188002, 0x188003).nopr();
map(0x188002, 0x188002).w("tc0140syt", FUNC(tc0140syt_device::master_comm_w));
- map(0x18c000, 0x18c001).w(FUNC(taitob_state::realpunc_output_w));
+ map(0x18c000, 0x18c001).w(FUNC(taitob_c_state::realpunc_output_w));
map(0x200000, 0x27ffff).m(m_tc0180vcu, FUNC(tc0180vcu_device::tc0180vcu_memrw));
map(0x280000, 0x281fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x300000, 0x300001).rw("hd63484", FUNC(hd63484_device::status16_r), FUNC(hd63484_device::address16_w));
@@ -583,7 +583,7 @@ void taitob_state::realpunc_map(address_map &map)
map(0x320002, 0x320002).w("tc0140syt", FUNC(tc0140syt_device::master_comm_w));
}
-void taitob_state::realpunc_hd63484_map(address_map &map)
+void taitob_c_state::realpunc_hd63484_map(address_map &map)
{
map(0x00000, 0x7ffff).ram();
}
@@ -1701,9 +1701,9 @@ static INPUT_PORTS_START( realpunc )
PORT_BIT( 0x02, IP_ACTIVE_LOW,IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW,IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW,IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW,IPT_BUTTON2 ) PORT_NAME("Pad Photosensor 1 (N)") PORT_CHANGED_MEMBER(DEVICE_SELF, taitob_state,realpunc_sensor, 0)
- PORT_BIT( 0x20, IP_ACTIVE_LOW,IPT_BUTTON3 ) PORT_NAME("Pad Photosensor 2 (U)") PORT_CHANGED_MEMBER(DEVICE_SELF, taitob_state,realpunc_sensor, 0)
- PORT_BIT( 0x40, IP_ACTIVE_LOW,IPT_BUTTON4 ) PORT_NAME("Pad Photosensor 3 (D)") PORT_CHANGED_MEMBER(DEVICE_SELF, taitob_state,realpunc_sensor, 0)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW,IPT_BUTTON2 ) PORT_NAME("Pad Photosensor 1 (N)") PORT_CHANGED_MEMBER(DEVICE_SELF, taitob_c_state,realpunc_sensor, 0)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW,IPT_BUTTON3 ) PORT_NAME("Pad Photosensor 2 (U)") PORT_CHANGED_MEMBER(DEVICE_SELF, taitob_c_state,realpunc_sensor, 0)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW,IPT_BUTTON4 ) PORT_NAME("Pad Photosensor 3 (D)") PORT_CHANGED_MEMBER(DEVICE_SELF, taitob_c_state,realpunc_sensor, 0)
PORT_BIT( 0x80, IP_ACTIVE_LOW,IPT_UNKNOWN )
INPUT_PORTS_END
@@ -1757,13 +1757,13 @@ MACHINE_CONFIG_START(taitob_state::rastsag2)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1815,13 +1815,13 @@ MACHINE_CONFIG_START(taitob_state::masterw)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0040ioc", TC0040IOC, 0)
- MCFG_TC0040IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0040IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0040IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0040IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0040IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0040IOC_READ_7_CB(IOPORT("IN2"))
+ tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0));
+ tc0040ioc.read_0_callback().set_ioport("DSWA");
+ tc0040ioc.read_1_callback().set_ioport("DSWB");
+ tc0040ioc.read_2_callback().set_ioport("IN0");
+ tc0040ioc.read_3_callback().set_ioport("IN1");
+ tc0040ioc.write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ tc0040ioc.read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1850,13 +1850,13 @@ MACHINE_CONFIG_START(taitob_state::masterw)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2203, 24_MHz_XTAL / 8) /* 3 MHz */
- MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_AY8910_PORT_A_WRITE_CB(MEMBANK("audiobank")) MCFG_DEVCB_MASK(0x03)
- MCFG_SOUND_ROUTE(0, "mono", 0.25)
- MCFG_SOUND_ROUTE(1, "mono", 0.25)
- MCFG_SOUND_ROUTE(2, "mono", 0.25)
- MCFG_SOUND_ROUTE(3, "mono", 0.80)
+ ym2203_device &ymsnd(YM2203(config, m_ym, 24_MHz_XTAL / 8)); /* 3 MHz */
+ ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
+ ymsnd.port_a_write_callback().set_membank(m_audiobank).mask(0x03);
+ ymsnd.add_route(0, "mono", 0.25);
+ ymsnd.add_route(1, "mono", 0.25);
+ ymsnd.add_route(2, "mono", 0.25);
+ ymsnd.add_route(3, "mono", 0.80);
MCFG_DEVICE_ADD("ciu", PC060HA, 0)
MCFG_PC060HA_MASTER_CPU("maincpu")
@@ -1894,13 +1894,13 @@ MACHINE_CONFIG_START(taitob_state::ashura)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1952,13 +1952,13 @@ MACHINE_CONFIG_START(taitob_state::crimec)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2011,13 +2011,13 @@ MACHINE_CONFIG_START(taitob_state::hitice)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2047,13 +2047,13 @@ MACHINE_CONFIG_START(taitob_state::hitice)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2203, 24_MHz_XTAL / 8) /* 3 MHz */
- MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_AY8910_PORT_A_WRITE_CB(MEMBANK("audiobank")) MCFG_DEVCB_MASK(0x03)
- MCFG_SOUND_ROUTE(0, "mono", 0.25)
- MCFG_SOUND_ROUTE(1, "mono", 0.25)
- MCFG_SOUND_ROUTE(2, "mono", 0.25)
- MCFG_SOUND_ROUTE(3, "mono", 0.80)
+ ym2203_device &ymsnd(YM2203(config, m_ym, 24_MHz_XTAL / 8)); /* 3 MHz */
+ ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
+ ymsnd.port_a_write_callback().set_membank(m_audiobank).mask(0x03);
+ ymsnd.add_route(0, "mono", 0.25);
+ ymsnd.add_route(1, "mono", 0.25);
+ ymsnd.add_route(2, "mono", 0.25);
+ ymsnd.add_route(3, "mono", 0.80);
MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
@@ -2075,13 +2075,13 @@ MACHINE_CONFIG_START(taitob_state::rambo3p)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2134,13 +2134,13 @@ MACHINE_CONFIG_START(taitob_state::rambo3)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2195,13 +2195,13 @@ MACHINE_CONFIG_START(taitob_state::pbobble)
MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_DEVICE_ADD("tc0640fio", TC0640FIO, 0)
- MCFG_TC0640FIO_READ_0_CB(IOPORT("SERVICE"))
- MCFG_TC0640FIO_READ_1_CB(IOPORT("COIN"))
- MCFG_TC0640FIO_READ_2_CB(IOPORT("START"))
- MCFG_TC0640FIO_READ_3_CB(IOPORT("P1_P2_A"))
- MCFG_TC0640FIO_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0640FIO_READ_7_CB(IOPORT("P1_P2_B"))
+ TC0640FIO(config, m_tc0640fio, 0);
+ m_tc0640fio->read_0_callback().set_ioport("SERVICE");
+ m_tc0640fio->read_1_callback().set_ioport("COIN");
+ m_tc0640fio->read_2_callback().set_ioport("START");
+ m_tc0640fio->read_3_callback().set_ioport("P1_P2_A");
+ m_tc0640fio->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0640fio->read_7_callback().set_ioport("P1_P2_B");
MCFG_DEVICE_ADD("mb87078", MB87078, 0)
MCFG_MB87078_GAIN_CHANGED_CB(WRITE8(*this, taitob_state, mb87078_gain_changed))
@@ -2259,13 +2259,13 @@ MACHINE_CONFIG_START(taitob_state::spacedx)
MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_DEVICE_ADD("tc0640fio", TC0640FIO, 0)
- MCFG_TC0640FIO_READ_0_CB(IOPORT("SERVICE"))
- MCFG_TC0640FIO_READ_1_CB(IOPORT("COIN"))
- MCFG_TC0640FIO_READ_2_CB(IOPORT("START"))
- MCFG_TC0640FIO_READ_3_CB(IOPORT("P1_P2_A"))
- MCFG_TC0640FIO_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0640FIO_READ_7_CB(IOPORT("P1_P2_B"))
+ TC0640FIO(config, m_tc0640fio, 0);
+ m_tc0640fio->read_0_callback().set_ioport("SERVICE");
+ m_tc0640fio->read_1_callback().set_ioport("COIN");
+ m_tc0640fio->read_2_callback().set_ioport("START");
+ m_tc0640fio->read_3_callback().set_ioport("P1_P2_A");
+ m_tc0640fio->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0640fio->read_7_callback().set_ioport("P1_P2_B");
MCFG_DEVICE_ADD("mb87078", MB87078, 0)
MCFG_MB87078_GAIN_CHANGED_CB(WRITE8(*this, taitob_state, mb87078_gain_changed))
@@ -2320,13 +2320,13 @@ MACHINE_CONFIG_START(taitob_state::spacedxo)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2381,13 +2381,13 @@ MACHINE_CONFIG_START(taitob_state::qzshowby)
MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT)
- MCFG_DEVICE_ADD("tc0640fio", TC0640FIO, 0)
- MCFG_TC0640FIO_READ_0_CB(IOPORT("SERVICE"))
- MCFG_TC0640FIO_READ_1_CB(IOPORT("COIN"))
- MCFG_TC0640FIO_READ_2_CB(IOPORT("START"))
- MCFG_TC0640FIO_READ_3_CB(IOPORT("P1_P2_A"))
- MCFG_TC0640FIO_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0640FIO_READ_7_CB(IOPORT("P1_P2_B"))
+ TC0640FIO(config, m_tc0640fio, 0);
+ m_tc0640fio->read_0_callback().set_ioport("SERVICE");
+ m_tc0640fio->read_1_callback().set_ioport("COIN");
+ m_tc0640fio->read_2_callback().set_ioport("START");
+ m_tc0640fio->read_3_callback().set_ioport("P1_P2_A");
+ m_tc0640fio->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0640fio->read_7_callback().set_ioport("P1_P2_B");
MCFG_DEVICE_ADD("mb87078", MB87078, 0)
MCFG_MB87078_GAIN_CHANGED_CB(WRITE8(*this, taitob_state, mb87078_gain_changed))
@@ -2442,13 +2442,13 @@ MACHINE_CONFIG_START(taitob_state::viofight)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2477,13 +2477,13 @@ MACHINE_CONFIG_START(taitob_state::viofight)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM2203, 24_MHz_XTAL / 8) /* 3 MHz */
- MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_AY8910_PORT_A_WRITE_CB(MEMBANK("audiobank")) MCFG_DEVCB_MASK(0x03)
- MCFG_SOUND_ROUTE(0, "mono", 0.25)
- MCFG_SOUND_ROUTE(1, "mono", 0.25)
- MCFG_SOUND_ROUTE(2, "mono", 0.25)
- MCFG_SOUND_ROUTE(3, "mono", 0.80)
+ ym2203_device &ymsnd(YM2203(config, m_ym, 24_MHz_XTAL / 8)); /* 3 MHz */
+ ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
+ ymsnd.port_a_write_callback().set_membank(m_audiobank).mask(0x03);
+ ymsnd.add_route(0, "mono", 0.25);
+ ymsnd.add_route(1, "mono", 0.25);
+ ymsnd.add_route(2, "mono", 0.25);
+ ymsnd.add_route(3, "mono", 0.80);
MCFG_DEVICE_ADD("oki", OKIM6295, 4.224_MHz_XTAL / 4, okim6295_device::PIN7_HIGH) // 1.056MHz clock frequency, but pin 7 not verified
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
@@ -2505,13 +2505,13 @@ MACHINE_CONFIG_START(taitob_state::silentd)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2563,13 +2563,13 @@ MACHINE_CONFIG_START(taitob_state::selfeena)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2630,13 +2630,13 @@ MACHINE_CONFIG_START(taitob_state::ryujin)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
- MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0220IOC_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+ TC0220IOC(config, m_tc0220ioc, 0);
+ m_tc0220ioc->read_0_callback().set_ioport("DSWA");
+ m_tc0220ioc->read_1_callback().set_ioport("DSWB");
+ m_tc0220ioc->read_2_callback().set_ioport("IN0");
+ m_tc0220ioc->read_3_callback().set_ioport("IN1");
+ m_tc0220ioc->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0220ioc->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2695,13 +2695,13 @@ MACHINE_CONFIG_START(taitob_state::sbm)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0510nio", TC0510NIO, 0)
- MCFG_TC0510NIO_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0510NIO_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0510NIO_READ_2_CB(IOPORT("JOY"))
- MCFG_TC0510NIO_READ_3_CB(IOPORT("START"))
- MCFG_TC0510NIO_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0510NIO_READ_7_CB(IOPORT("PHOTOSENSOR"))
+ TC0510NIO(config, m_tc0510nio, 0);
+ m_tc0510nio->read_0_callback().set_ioport("DSWA");
+ m_tc0510nio->read_1_callback().set_ioport("DSWB");
+ m_tc0510nio->read_2_callback().set_ioport("JOY");
+ m_tc0510nio->read_3_callback().set_ioport("START");
+ m_tc0510nio->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
+ m_tc0510nio->read_7_callback().set_ioport("PHOTOSENSOR");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2752,13 +2752,13 @@ MACHINE_CONFIG_START(taitob_c_state::realpunc)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
- MCFG_DEVICE_ADD("tc0510nio", TC0510NIO, 0)
- MCFG_TC0510NIO_READ_0_CB(IOPORT("DSWA"))
- MCFG_TC0510NIO_READ_1_CB(IOPORT("DSWB"))
- MCFG_TC0510NIO_READ_2_CB(IOPORT("IN0"))
- MCFG_TC0510NIO_READ_3_CB(IOPORT("IN1"))
- MCFG_TC0510NIO_WRITE_4_CB(WRITE8(*this, taitob_state, player_12_coin_ctrl_w))
- MCFG_TC0510NIO_READ_7_CB(IOPORT("IN2"))
+ TC0510NIO(config, m_tc0510nio, 0);
+ m_tc0510nio->read_0_callback().set_ioport("DSWA");
+ m_tc0510nio->read_1_callback().set_ioport("DSWB");
+ m_tc0510nio->read_2_callback().set_ioport("IN0");
+ m_tc0510nio->read_3_callback().set_ioport("IN1");
+ m_tc0510nio->write_4_callback().set(FUNC(taitob_c_state::player_12_coin_ctrl_w));
+ m_tc0510nio->read_7_callback().set_ioport("IN2");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -2766,13 +2766,13 @@ MACHINE_CONFIG_START(taitob_c_state::realpunc)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_realpunc)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_c_state, screen_update_realpunc)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("tc0180vcu", tc0180vcu_device, screen_vblank))
MCFG_PALETTE_ADD("palette", 4096)
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
- MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc)
+ MCFG_VIDEO_START_OVERRIDE(taitob_c_state,realpunc)
MCFG_HD63484_ADD("hd63484", 0, realpunc_hd63484_map)
MCFG_HD63484_AUTO_CONFIGURE_SCREEN(false)