diff options
Diffstat (limited to 'src/mame/drivers/subsino.cpp')
-rw-r--r-- | src/mame/drivers/subsino.cpp | 180 |
1 files changed, 89 insertions, 91 deletions
diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp index 0a55731dfaa..c9272645251 100644 --- a/src/mame/drivers/subsino.cpp +++ b/src/mame/drivers/subsino.cpp @@ -2704,11 +2704,12 @@ GFXDECODE_END * Machine Drivers * ***************************************************************************/ -MACHINE_CONFIG_START(subsino_state::victor21) +void subsino_state::victor21(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(12'000'000) / 8) /* Unknown clock */ - MCFG_DEVICE_PROGRAM_MAP(victor21_map) - MCFG_DEVICE_IO_MAP(subsino_iomap) + Z180(config, m_maincpu, XTAL(12'000'000) / 8); /* Unknown clock */ + m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::victor21_map); + m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap); i8255_device &ppi(I8255A(config, "ppi")); ppi.out_pa_callback().set(FUNC(subsino_state::out_a_w)); @@ -2717,16 +2718,16 @@ MACHINE_CONFIG_START(subsino_state::victor21) ppi.tri_pb_callback().set_constant(0); ppi.in_pc_callback().set_ioport("INC"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0+16, 256-16-1); + screen.set_screen_update(FUNC(subsino_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, subsino_depth3); @@ -2737,39 +2738,38 @@ MACHINE_CONFIG_START(subsino_state::victor21) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'433'619) / 4, okim6295_device::PIN7_HIGH) /* Clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", XTAL(4'433'619) / 4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* Clock frequency & pin 7 not verified */ +} /* same but with an additional protection. */ -MACHINE_CONFIG_START(subsino_state::victor5) +void subsino_state::victor5(machine_config &config) +{ victor21(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(victor5_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::victor5_map); +} -MACHINE_CONFIG_START(subsino_state::crsbingo) +void subsino_state::crsbingo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(12'000'000) / 8) /* Unknown CPU and clock */ - MCFG_DEVICE_PROGRAM_MAP(crsbingo_map) - MCFG_DEVICE_IO_MAP(subsino_iomap) + Z180(config, m_maincpu, XTAL(12'000'000) / 8); /* Unknown CPU and clock */ + m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::crsbingo_map); + m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0+16, 256-16-1); + screen.set_screen_update(FUNC(subsino_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, subsino_depth4); @@ -2780,16 +2780,16 @@ MACHINE_CONFIG_START(subsino_state::crsbingo) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) /* Unknown clock */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM2413(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); /* Unknown clock */ +} -MACHINE_CONFIG_START(subsino_state::srider) +void subsino_state::srider(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(12'000'000) / 8) /* Unknown clock */ - MCFG_DEVICE_PROGRAM_MAP(srider_map) - MCFG_DEVICE_IO_MAP(subsino_iomap) + Z180(config, m_maincpu, XTAL(12'000'000) / 8); /* Unknown clock */ + m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::srider_map); + m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap); i8255_device &ppi1(I8255A(config, "ppi1")); ppi1.in_pa_callback().set_ioport("SW1"); @@ -2801,16 +2801,16 @@ MACHINE_CONFIG_START(subsino_state::srider) ppi2.in_pb_callback().set_ioport("INA"); ppi2.in_pc_callback().set_ioport("INB"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0+16, 256-16-1); + screen.set_screen_update(FUNC(subsino_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, subsino_depth4); @@ -2821,27 +2821,26 @@ MACHINE_CONFIG_START(subsino_state::srider) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM3812(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'433'619) / 4, okim6295_device::PIN7_HIGH) /* Clock frequency & pin 7 not verified */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", XTAL(4'433'619) / 4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* Clock frequency & pin 7 not verified */ +} -MACHINE_CONFIG_START(subsino_state::sharkpy) +void subsino_state::sharkpy(machine_config &config) +{ srider(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sharkpy_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::sharkpy_map); +} -MACHINE_CONFIG_START(subsino_state::tisub) +void subsino_state::tisub(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(12'000'000) / 8) /* Unknown CPU and clock */ - MCFG_DEVICE_PROGRAM_MAP(tisub_map) - MCFG_DEVICE_IO_MAP(subsino_iomap) + Z180(config, m_maincpu, XTAL(12'000'000) / 8); /* Unknown CPU and clock */ + m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::tisub_map); + m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap); i8255_device &ppi1(I8255A(config, "ppi1")); ppi1.in_pa_callback().set_ioport("SW1"); @@ -2853,16 +2852,16 @@ MACHINE_CONFIG_START(subsino_state::tisub) ppi2.in_pb_callback().set_ioport("INA"); ppi2.in_pc_callback().set_ioport("INB"); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_reels) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0+16, 256-16-1); + screen.set_screen_update(FUNC(subsino_state::screen_update_reels)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, subsino_depth4_reels); @@ -2873,15 +2872,15 @@ MACHINE_CONFIG_START(subsino_state::tisub) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(3'579'545)) /* Unknown clock */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM3812(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); /* Unknown clock */ +} -MACHINE_CONFIG_START(subsino_state::stbsub) +void subsino_state::stbsub(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z180, XTAL(12'000'000) / 8) /* Unknown clock */ - MCFG_DEVICE_PROGRAM_MAP(stbsub_map) - MCFG_DEVICE_IO_MAP(subsino_iomap) + Z180(config, m_maincpu, XTAL(12'000'000) / 8); /* Unknown clock */ + m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::stbsub_map); + m_maincpu->set_addrmap(AS_IO, &subsino_state::subsino_iomap); i8255_device &ppi1(I8255A(config, "ppi1")); ppi1.in_pa_callback().set_ioport("SW1"); @@ -2894,16 +2893,16 @@ MACHINE_CONFIG_START(subsino_state::stbsub) ppi2.in_pc_callback().set_ioport("INA"); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) + TICKET_DISPENSER(config, m_hopper, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_stbsub_reels) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0+16, 256-16-1); + screen.set_screen_update(FUNC(subsino_state::screen_update_stbsub_reels)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, subsino_stbsub); @@ -2918,17 +2917,16 @@ MACHINE_CONFIG_START(subsino_state::stbsub) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM3812(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_START(subsino_state::mtrainnv) +void subsino_state::mtrainnv(machine_config &config) +{ stbsub(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mtrainnv_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &subsino_state::mtrainnv_map); +} /*************************************************************************** |