summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/goldstar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/goldstar.cpp')
-rw-r--r--src/mame/drivers/goldstar.cpp882
1 files changed, 452 insertions, 430 deletions
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index e540c466f71..199eb02f203 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -628,7 +628,7 @@ void cb3_state::ncb3_map(address_map &map)
map(0xf840, 0xf840).w("aysnd", FUNC(ay8910_device::address_w));
map(0xf850, 0xf850).w(FUNC(cb3_state::p1_lamps_w)); /* Control Set 1 lamps */
map(0xf860, 0xf860).w(FUNC(cb3_state::p2_lamps_w)); /* Control Set 2 lamps */
- map(0xf870, 0xf870).w("snsnd", FUNC(sn76489_device::command_w)); /* guess... device is initialized, but doesn't seems to be used.*/
+ map(0xf870, 0xf870).w("snsnd", FUNC(sn76489_device::write)); /* guess... device is initialized, but doesn't seems to be used.*/
}
void goldstar_state::ncb3_readwriteport(address_map &map)
@@ -700,7 +700,7 @@ void goldstar_state::wcherry_map(address_map &map)
map(0xf640, 0xf640).w("aysnd", FUNC(ay8910_device::address_w));
map(0xf650, 0xf650).nopw(); // AM_WRITE(output_w) // unknown register: 0x3e
map(0xf660, 0xf660).nopw(); // AM_WRITE(output_w) // unknown register: 0x3e
- map(0xf670, 0xf670).w("snsnd", FUNC(sn76489_device::command_w)); /* guess... device is initialized, but doesn't seems to be used.*/
+ map(0xf670, 0xf670).w("snsnd", FUNC(sn76489_device::write)); /* guess... device is initialized, but doesn't seems to be used.*/
map(0xf800, 0xffff).ram();
}
@@ -900,7 +900,7 @@ void goldstar_state::lucky8_map(address_map &map)
map(0xb840, 0xb840).w("aysnd", FUNC(ay8910_device::address_w)); /* no sound... only use both ports for DSWs */
map(0xb850, 0xb850).w(FUNC(goldstar_state::p1_lamps_w));
map(0xb860, 0xb860).w(FUNC(goldstar_state::p2_lamps_w));
- map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::command_w)); /* sound */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
map(0xc000, 0xf7ff).rom(); // could be used by some sets like super972.
map(0xf800, 0xffff).ram();
}
@@ -933,7 +933,7 @@ void goldstar_state::flaming7_map(address_map &map)
map(0xb840, 0xb840).w("aysnd", FUNC(ay8910_device::address_w)); /* no sound... only use both ports for DSWs */
map(0xb850, 0xb850).w(FUNC(goldstar_state::p1_lamps_w));
map(0xb860, 0xb860).w(FUNC(goldstar_state::p2_lamps_w));
- map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::command_w)); /* sound */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
// AM_RANGE(0xc000, 0xd3ff) AM_RAM
map(0xf800, 0xffff).ram();
}
@@ -985,7 +985,7 @@ void goldstar_state::mbstar_map(address_map &map)
map(0xb840, 0xb840).w("aysnd", FUNC(ay8910_device::address_w)); /* no sound... only use both ports for DSWs */
map(0xb850, 0xb850).w(FUNC(goldstar_state::p1_lamps_w));
map(0xb860, 0xb860).w(FUNC(goldstar_state::p2_lamps_w));
- map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::command_w)); /* sound */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
map(0xc000, 0xf7ff).rom();
map(0xf800, 0xffff).ram();
}
@@ -1038,7 +1038,7 @@ void wingco_state::magodds_map(address_map &map)
map(0xb840, 0xb840).w("aysnd", FUNC(ay8910_device::address_w)); /* no sound... only use both ports for DSWs */
map(0xb850, 0xb850).w(FUNC(wingco_state::magodds_outb850_w)); /* lamps */
map(0xb860, 0xb860).w(FUNC(wingco_state::magodds_outb860_w)); /* watchdog */
- map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::command_w)); /* sound */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
map(0xc000, 0xffff).rom().region("maincpu", 0xc000);
}
@@ -1061,7 +1061,7 @@ void goldstar_state::kkotnoli_map(address_map &map)
map(0xb830, 0xb830).nopw(); /* no ay8910 */
map(0xb840, 0xb840).nopw(); /* no ay8910 */
map(0xb850, 0xb850).w(FUNC(goldstar_state::p1_lamps_w));
- map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::command_w)); /* sound */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
map(0xf800, 0xffff).ram();
}
@@ -1100,7 +1100,7 @@ void goldstar_state::ladylinr_map(address_map &map)
map(0xb830, 0xb830).w("aysnd", FUNC(ay8910_device::address_w)); /* no sound... unused? */
map(0xb840, 0xb840).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
map(0xb850, 0xb850).nopw(); /* just turn off the lamps, if exist */
- map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::command_w)); /* sound */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
map(0xf800, 0xffff).ram();
}
@@ -1123,7 +1123,7 @@ void goldstar_state::wcat3_map(address_map &map)
map(0xb830, 0xb830).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
map(0xb840, 0xb840).w("aysnd", FUNC(ay8910_device::address_w)); /* no sound... only use both ports for DSWs */
map(0xb850, 0xb850).w(FUNC(goldstar_state::p1_lamps_w));
- map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::command_w)); /* sound */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
// AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE("ppi8255_3", i8255_device, read, write) /* Other PPI initialized? */
map(0xd000, 0xefff).rom();
map(0xf000, 0xffff).ram();
@@ -1273,9 +1273,9 @@ void unkch_state::megaline_map(address_map &map)
void goldstar_state::megaline_portmap(address_map &map)
{
map.global_mask(0xff);
- map(0xa0, 0xa0).w("sn1", FUNC(sn76489_device::command_w)); /* SN76489 #1 */
- map(0xc0, 0xc0).w("sn2", FUNC(sn76489_device::command_w)); /* SN76489 #2 */
- map(0xe0, 0xe0).w("sn3", FUNC(sn76489_device::command_w)); /* SN76489 #3 */
+ map(0xa0, 0xa0).w("sn1", FUNC(sn76489_device::write)); /* SN76489 #1 */
+ map(0xc0, 0xc0).w("sn2", FUNC(sn76489_device::write)); /* SN76489 #2 */
+ map(0xe0, 0xe0).w("sn3", FUNC(sn76489_device::write)); /* SN76489 #3 */
map(0x60, 0x60).w("aysnd", FUNC(ay8910_device::address_w)); /* AY8910 control? */
map(0x80, 0x80).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); /* AY8910 Input? */
// AM_RANGE(0x01, 0x01) AM_DEVREAD("aysnd", ay8910_device, data_r)
@@ -1330,10 +1330,10 @@ void goldstar_state::bonusch_portmap(address_map &map)
map.global_mask(0xff);
map(0x10, 0x10).portr("IN0");
map(0x20, 0x20).portr("IN1");
- map(0x50, 0x50).w("sn1", FUNC(sn76489_device::command_w)); /* SN76489 #1 */
- map(0x51, 0x51).w("sn2", FUNC(sn76489_device::command_w)); /* SN76489 #2 */
- map(0x52, 0x52).w("sn3", FUNC(sn76489_device::command_w)); /* SN76489 #3 */
- map(0x53, 0x53).w("sn4", FUNC(sn76489_device::command_w)); /* SN76489 #4 */
+ map(0x50, 0x50).w("sn1", FUNC(sn76489_device::write)); /* SN76489 #1 */
+ map(0x51, 0x51).w("sn2", FUNC(sn76489_device::write)); /* SN76489 #2 */
+ map(0x52, 0x52).w("sn3", FUNC(sn76489_device::write)); /* SN76489 #3 */
+ map(0x53, 0x53).w("sn4", FUNC(sn76489_device::write)); /* SN76489 #4 */
map(0x60, 0x60).portr("IN3");
}
@@ -1369,9 +1369,9 @@ void goldstar_state::feverch_portmap(address_map &map)
map(0x00, 0x03).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x08, 0x0b).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x10, 0x13).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0x20, 0x20).w("sn1", FUNC(sn76489_device::command_w));
- map(0x28, 0x28).w("sn2", FUNC(sn76489_device::command_w));
- map(0x30, 0x30).w("sn3", FUNC(sn76489_device::command_w));
+ map(0x20, 0x20).w("sn1", FUNC(sn76489_device::write));
+ map(0x28, 0x28).w("sn2", FUNC(sn76489_device::write));
+ map(0x30, 0x30).w("sn3", FUNC(sn76489_device::write));
//map(0x38, 0x3b)
}
@@ -8443,22 +8443,22 @@ WRITE8_MEMBER(goldstar_state::ay8910_outputb_w)
}
-MACHINE_CONFIG_START(goldstar_state::goldstar)
-
+void goldstar_state::goldstar(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(goldstar_map)
- MCFG_DEVICE_IO_MAP(goldstar_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map);
+ m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_goldstar);
PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256);
@@ -8473,28 +8473,26 @@ MACHINE_CONFIG_START(goldstar_state::goldstar)
aysnd.port_b_read_callback().set_ioport("DSW3");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
-MACHINE_CONFIG_END
-
+ OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */
+}
-MACHINE_CONFIG_START(goldstar_state::goldstbl)
+void goldstar_state::goldstbl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(goldstar_map)
- MCFG_DEVICE_IO_MAP(goldstar_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map);
+ m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bl);
PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256);
@@ -8509,37 +8507,38 @@ MACHINE_CONFIG_START(goldstar_state::goldstbl)
aysnd.port_b_read_callback().set_ioport("DSW3");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */
+}
-MACHINE_CONFIG_START(goldstar_state::moonlght)
+void goldstar_state::moonlght(machine_config &config)
+{
goldstbl(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_ml)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_ml);
+}
-MACHINE_CONFIG_START(goldstar_state::goldfrui)
+void goldstar_state::goldfrui(machine_config &config)
+{
goldstbl(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_goldfrui)
-MACHINE_CONFIG_END
-
+ m_gfxdecode->set_info(gfx_goldfrui);
+}
-MACHINE_CONFIG_START(sanghopm_state::star100)
+void sanghopm_state::star100(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(star100_map)
- MCFG_DEVICE_IO_MAP(star100_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &sanghopm_state::star100_map);
+ m_maincpu->set_addrmap(AS_IO, &sanghopm_state::star100_readport);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(sanghopm_state, screen_update_sangho)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(sanghopm_state::screen_update_sangho));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
PALETTE(config, m_palette).set_entries(0x100);
RAMDAC(config, "ramdac", 0, "palette").set_addrmap(0, &sanghopm_state::ramdac_map);
@@ -8557,30 +8556,28 @@ MACHINE_CONFIG_START(sanghopm_state::star100)
aysnd.port_b_read_callback().set_ioport("DSW6");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
-MACHINE_CONFIG_END
-
+ OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */
+}
-MACHINE_CONFIG_START(goldstar_state::super9)
+void goldstar_state::super9(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(goldstar_map)
-// MCFG_DEVICE_PROGRAM_MAP(nfm_map)
- MCFG_DEVICE_IO_MAP(goldstar_readport)
-// MCFG_DEVICE_IO_MAP(unkch_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::goldstar_map);
+// m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::nfm_map);
+ m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport);
+// m_maincpu->set_addrmap(AS_IO, &goldstar_state::unkch_portmap);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_super9);
PALETTE(config, m_palette).set_format(palette_device::BGR_233, 256);
@@ -8595,9 +8592,8 @@ MACHINE_CONFIG_START(goldstar_state::super9)
aysnd.port_b_read_callback().set_ioport("DSW3");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */
+}
void goldstar_state::cm_palette(palette_device &palette) const
@@ -8645,12 +8641,12 @@ void goldstar_state::lucky8_palette(palette_device &palette) const
}
-MACHINE_CONFIG_START(cb3_state::ncb3)
-
+void cb3_state::ncb3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(ncb3_map)
- MCFG_DEVICE_IO_MAP(ncb3_readwriteport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cb3_state::ncb3_map);
+ m_maincpu->set_addrmap(AS_IO, &cb3_state::ncb3_readwriteport);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -8665,14 +8661,14 @@ MACHINE_CONFIG_START(cb3_state::ncb3)
m_ppi[2]->in_pa_callback().set_ioport("DSW2");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3);
PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256);
@@ -8684,47 +8680,51 @@ MACHINE_CONFIG_START(cb3_state::ncb3)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK));
aysnd.port_a_read_callback().set_ioport("DSW4");
aysnd.port_b_read_callback().set_ioport("DSW3");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(cb3_state::cb3c)
+void cb3_state::cb3c(machine_config &config)
+{
ncb3(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_cb3c)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_cb3c);
+}
-MACHINE_CONFIG_START(cb3_state::cb3e)
+void cb3_state::cb3e(machine_config &config)
+{
ncb3(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_cb3e)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_cb3e);
+}
-MACHINE_CONFIG_START(cb3_state::chrygld)
+void cb3_state::chrygld(machine_config &config)
+{
ncb3(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_chry10)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_chry10);
+}
-MACHINE_CONFIG_START(cb3_state::cherrys)
+void cb3_state::cherrys(machine_config &config)
+{
ncb3(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_cherrys)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_cherrys);
+}
-MACHINE_CONFIG_START(cb3_state::cm97)
+void cb3_state::cm97(machine_config &config)
+{
ncb3(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_cm97)
-MACHINE_CONFIG_END
-
+ m_gfxdecode->set_info(gfx_cm97);
+}
-MACHINE_CONFIG_START(goldstar_state::wcherry)
+void goldstar_state::wcherry(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(wcherry_map)
- MCFG_DEVICE_IO_MAP(wcherry_readwriteport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::wcherry_map);
+ m_maincpu->set_addrmap(AS_IO, &goldstar_state::wcherry_readwriteport);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -8739,14 +8739,14 @@ MACHINE_CONFIG_START(goldstar_state::wcherry)
m_ppi[2]->in_pa_callback().set_ioport("DSW2");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cb3e);
PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256);
@@ -8757,22 +8757,21 @@ MACHINE_CONFIG_START(goldstar_state::wcherry)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK));
aysnd.port_a_read_callback().set_ioport("DSW4");
aysnd.port_b_read_callback().set_ioport("DSW3");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(cmaster_state::cm)
+void cmaster_state::cm(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(cm_map)
- MCFG_DEVICE_IO_MAP(cm_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map);
+ m_maincpu->set_addrmap(AS_IO, &cmaster_state::cm_portmap);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -8785,14 +8784,14 @@ MACHINE_CONFIG_START(cmaster_state::cm)
m_ppi[1]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cmbitmap);
PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256);
@@ -8806,20 +8805,21 @@ MACHINE_CONFIG_START(cmaster_state::cm)
aysnd.port_a_read_callback().set_ioport("DSW4");
aysnd.port_b_read_callback().set_ioport("DSW5");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(cmaster_state::cmasterc)
+void cmaster_state::cmasterc(machine_config &config)
+{
cm(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_cmasterc)
-MACHINE_CONFIG_END
-
+ m_gfxdecode->set_info(gfx_cmasterc);
+}
-MACHINE_CONFIG_START(goldstar_state::cmast91)
+void goldstar_state::cmast91(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(cm_map)
- MCFG_DEVICE_IO_MAP(cmast91_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::cm_map);
+ m_maincpu->set_addrmap(AS_IO, &goldstar_state::cmast91_portmap);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -8832,14 +8832,14 @@ MACHINE_CONFIG_START(goldstar_state::cmast91)
m_ppi[1]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_cmast91)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_cmast91));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cmast91);
PALETTE(config, m_palette, FUNC(goldstar_state::cmast91_palette), 256);
@@ -8853,7 +8853,7 @@ MACHINE_CONFIG_START(goldstar_state::cmast91)
aysnd.port_a_read_callback().set_ioport("DSW4");
aysnd.port_b_read_callback().set_ioport("DSW5");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
@@ -8863,12 +8863,12 @@ WRITE_LINE_MEMBER(wingco_state::masked_irq)
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
}
-MACHINE_CONFIG_START(wingco_state::lucky8)
-
+void wingco_state::lucky8(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(lucky8_map)
- //MCFG_DEVICE_IO_MAP(goldstar_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::lucky8_map);
+ //->m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -8887,14 +8887,14 @@ MACHINE_CONFIG_START(wingco_state::lucky8)
m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_irq))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(wingco_state::masked_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3);
PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette)).set_format(palette_device::BGR_233, 256);
@@ -8905,8 +8905,7 @@ MACHINE_CONFIG_START(wingco_state::lucky8)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
ym2149_device &aysnd(YM2149(config, "aysnd", AY_CLOCK));
aysnd.port_a_read_callback().set_ioport("DSW3");
@@ -8914,14 +8913,14 @@ MACHINE_CONFIG_START(wingco_state::lucky8)
aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w));
aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(wingco_state::bingowng)
+}
+void wingco_state::bingowng(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(lucky8_map)
- //MCFG_DEVICE_IO_MAP(goldstar_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::lucky8_map);
+ //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -8940,14 +8939,14 @@ MACHINE_CONFIG_START(wingco_state::bingowng)
m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_bingowng)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_irq))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(wingco_state::screen_update_bingowng));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(wingco_state::masked_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3);
PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256);
@@ -8958,8 +8957,7 @@ MACHINE_CONFIG_START(wingco_state::bingowng)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK));
aysnd.port_a_read_callback().set_ioport("DSW3");
@@ -8967,62 +8965,62 @@ MACHINE_CONFIG_START(wingco_state::bingowng)
aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w));
aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(wingco_state::bingownga)
+void wingco_state::bingownga(machine_config &config)
+{
bingowng(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_bingownga)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_bingownga);
+}
-MACHINE_CONFIG_START(wingco_state::flam7_w4)
+void wingco_state::flam7_w4(machine_config &config)
+{
lucky8(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(flaming7_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map);
m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w));
- MCFG_DEVICE_ADD(m_fl7w4_id, DS2401)
-MACHINE_CONFIG_END
+ DS2401(config, m_fl7w4_id);
+}
-MACHINE_CONFIG_START(wingco_state::flaming7)
+void wingco_state::flaming7(machine_config &config)
+{
lucky8(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(flaming7_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_flaming7)
+ m_gfxdecode->set_info(gfx_flaming7);
// to do serial protection.
m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w));
- MCFG_DEVICE_ADD(m_fl7w4_id, DS2401)
-MACHINE_CONFIG_END
+ DS2401(config, m_fl7w4_id);
+}
-MACHINE_CONFIG_START(wingco_state::flam7_tw)
+void wingco_state::flam7_tw(machine_config &config)
+{
lucky8(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(flaming7_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::flaming7_map);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_flam7_tw)
+ m_gfxdecode->set_info(gfx_flam7_tw);
// to do serial protection.
m_ppi[0]->out_pc_callback().set(FUNC(wingco_state::fl7w4_outc802_w));
- MCFG_DEVICE_ADD(m_fl7w4_id, DS2401)
-MACHINE_CONFIG_END
+ DS2401(config, m_fl7w4_id);
+}
-MACHINE_CONFIG_START(wingco_state::mbstar)
+void wingco_state::mbstar(machine_config &config)
+{
lucky8(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mbstar_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::mbstar_map);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_mbstar)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(wingco_state::screen_update_mbstar));
+}
@@ -9039,12 +9037,12 @@ void wingco_state::magodds_palette(palette_device &palette) const
}
}
-MACHINE_CONFIG_START(wingco_state::magodds)
-
+void wingco_state::magodds(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(magodds_map)
- //MCFG_DEVICE_IO_MAP(goldstar_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::magodds_map);
+ //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -9063,14 +9061,14 @@ MACHINE_CONFIG_START(wingco_state::magodds)
m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_magical)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, wingco_state, masked_irq))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(wingco_state::screen_update_magical));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(wingco_state::masked_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_magodds);
PALETTE(config, m_palette, FUNC(wingco_state::magodds_palette), 256);
@@ -9081,8 +9079,7 @@ MACHINE_CONFIG_START(wingco_state::magodds)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.00) // shut up annoying whine
+ SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.00); // shut up annoying whine
ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK));
aysnd.port_a_read_callback().set_ioport("DSW3");
@@ -9090,15 +9087,15 @@ MACHINE_CONFIG_START(wingco_state::magodds)
aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w));
aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.80);
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(goldstar_state::kkotnoli)
+void goldstar_state::kkotnoli(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(kkotnoli_map)
- //MCFG_DEVICE_IO_MAP(goldstar_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::kkotnoli_map);
+ //m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -9113,14 +9110,14 @@ MACHINE_CONFIG_START(goldstar_state::kkotnoli)
m_ppi[2]->in_pa_callback().set_ioport("DSW1");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3);
PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256);
@@ -9130,18 +9127,16 @@ MACHINE_CONFIG_START(goldstar_state::kkotnoli)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-
-MACHINE_CONFIG_END
-
+ SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
+}
-MACHINE_CONFIG_START(goldstar_state::ladylinr)
+void goldstar_state::ladylinr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(ladylinr_map)
- //MCFG_DEVICE_IO_MAP(goldstar_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::ladylinr_map);
+ //m_maincpu->set_addrmap(AS_IO, &goldstar_state::goldstar_readport);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -9152,14 +9147,14 @@ MACHINE_CONFIG_START(goldstar_state::ladylinr)
m_ppi[1]->in_pa_callback().set_ioport("DSW1");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3);
PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256);
@@ -9170,19 +9165,18 @@ MACHINE_CONFIG_START(goldstar_state::ladylinr)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
AY8930(config, "aysnd", AY_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.50); // unused?
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(wingco_state::wcat3)
+void wingco_state::wcat3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(wcat3_map)
- //MCFG_DEVICE_IO_MAP(goldstar_readport)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &wingco_state::wcat3_map);
+ //m_maincpu->set_addrmap(AS_IO, &wingco_state::goldstar_readport);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -9201,14 +9195,14 @@ MACHINE_CONFIG_START(wingco_state::wcat3)
m_ppi[2]->out_pc_callback().set(FUNC(wingco_state::system_outputc_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3);
PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256);
@@ -9219,8 +9213,7 @@ MACHINE_CONFIG_START(wingco_state::wcat3)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "snsnd", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK));
aysnd.port_a_read_callback().set_ioport("DSW3");
@@ -9228,17 +9221,16 @@ MACHINE_CONFIG_START(wingco_state::wcat3)
aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w));
aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-
-MACHINE_CONFIG_END
+}
/* diff with cm machine driver: gfxdecode, OKI & portmap */
-MACHINE_CONFIG_START(cmaster_state::amcoe1)
-
+void cmaster_state::amcoe1(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(cm_map)
- MCFG_DEVICE_IO_MAP(amcoe1_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map);
+ m_maincpu->set_addrmap(AS_IO, &cmaster_state::amcoe1_portmap);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -9251,14 +9243,14 @@ MACHINE_CONFIG_START(cmaster_state::amcoe1)
m_ppi[1]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cm);
PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256);
@@ -9273,28 +9265,27 @@ MACHINE_CONFIG_START(cmaster_state::amcoe1)
aysnd.port_b_read_callback().set_ioport("DSW5");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, OKI_CLOCK, okim6295_device::PIN7_HIGH) /* clock frequency & pin 7 not verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", OKI_CLOCK, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); /* clock frequency & pin 7 not verified */
+}
/* diff with cm machine driver: gfxdecode, OKI, portmap & tilemaps rect size/position */
-MACHINE_CONFIG_START(cmaster_state::amcoe1a)
+void cmaster_state::amcoe1a(machine_config &config)
+{
amcoe1(config);
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(cmaster_state, screen_update_amcoe1a)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(cmaster_state::screen_update_amcoe1a));
+}
/* diff with cm machine driver: gfxdecode, AY8910 volume & portmap */
-MACHINE_CONFIG_START(cmaster_state::amcoe2)
-
+void cmaster_state::amcoe2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(cm_map)
- MCFG_DEVICE_IO_MAP(amcoe2_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map);
+ m_maincpu->set_addrmap(AS_IO, &cmaster_state::amcoe2_portmap);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -9307,14 +9298,14 @@ MACHINE_CONFIG_START(cmaster_state::amcoe2)
m_ppi[1]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cm);
PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256);
@@ -9328,17 +9319,17 @@ MACHINE_CONFIG_START(cmaster_state::amcoe2)
aysnd.port_a_read_callback().set_ioport("DSW4");
aysnd.port_b_read_callback().set_ioport("DSW5");
aysnd.add_route(ALL_OUTPUTS, "mono", 2.00); /* analyzed for clips */
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(cmaster_state::nfm)
+void cmaster_state::nfm(machine_config &config)
+{
amcoe2(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(nfm_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::nfm_map);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_nfm)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_nfm);
+}
WRITE_LINE_MEMBER(unkch_state::vblank_irq)
@@ -9347,24 +9338,24 @@ WRITE_LINE_MEMBER(unkch_state::vblank_irq)
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
}
-MACHINE_CONFIG_START(unkch_state::unkch)
-
+void unkch_state::unkch(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(unkch_map)
- MCFG_DEVICE_IO_MAP(unkch_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::unkch_map);
+ m_maincpu->set_addrmap(AS_IO, &unkch_state::unkch_portmap);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(unkch_state, screen_update_unkch)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, unkch_state, vblank_irq))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(unkch_state::screen_update_unkch));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(unkch_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_unkch);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 512);
@@ -9379,28 +9370,28 @@ MACHINE_CONFIG_START(unkch_state::unkch)
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
/* payout hardware */
- MCFG_TICKET_DISPENSER_ADD("tickets", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
-MACHINE_CONFIG_END
+ TICKET_DISPENSER(config, m_ticket_dispenser, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
+}
// hw unknown - should be somewhat similar to cm
-MACHINE_CONFIG_START(goldstar_state::pkrmast)
-
+void goldstar_state::pkrmast(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(cm_map)
- MCFG_DEVICE_IO_MAP(pkrmast_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::cm_map);
+ m_maincpu->set_addrmap(AS_IO, &goldstar_state::pkrmast_portmap);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(HOLDLINE("maincpu", 0))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pkrmast);
PALETTE(config, m_palette, FUNC(goldstar_state::cm_palette), 256);
@@ -9414,29 +9405,29 @@ MACHINE_CONFIG_START(goldstar_state::pkrmast)
aysnd.port_a_read_callback().set_ioport("DSW4");
aysnd.port_b_read_callback().set_ioport("DSW5");
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(unkch_state::megaline)
+void unkch_state::megaline(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(megaline_map)
- MCFG_DEVICE_IO_MAP(megaline_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::megaline_map);
+ m_maincpu->set_addrmap(AS_IO, &unkch_state::megaline_portmap);
- //MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
- //MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
- //MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
+ //I8255A(config, m_ppi[0], 0);
+ //I8255A(config, m_ppi[1], 0);
+ //I8255A(config, m_ppi[2], 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ 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(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_megaline);
PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256);
@@ -9447,14 +9438,11 @@ MACHINE_CONFIG_START(unkch_state::megaline)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("sn1", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "sn1", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
- MCFG_DEVICE_ADD("sn2", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "sn2", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
- MCFG_DEVICE_ADD("sn3", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "sn3", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
ay8910_device &aysnd(AY8910(config, "aysnd", AY_CLOCK));
aysnd.port_a_read_callback().set_ioport("DSW3");
@@ -9462,28 +9450,26 @@ MACHINE_CONFIG_START(unkch_state::megaline)
aysnd.port_a_write_callback().set(FUNC(goldstar_state::ay8910_outputa_w));
aysnd.port_b_write_callback().set(FUNC(goldstar_state::ay8910_outputb_w));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.50);
+}
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(unkch_state::bonusch)
+void unkch_state::bonusch(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(bonusch_map)
- MCFG_DEVICE_IO_MAP(bonusch_portmap)
+ Z80(config, m_maincpu, 12_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::bonusch_map);
+ m_maincpu->set_addrmap(AS_IO, &unkch_state::bonusch_portmap);
- MCFG_DEVICE_ADD("mcu", I80C51, 12_MHz_XTAL)
- MCFG_DEVICE_DISABLE()
+ I80C51(config, "mcu", 12_MHz_XTAL).set_disable();
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(goldstar_state::screen_update_goldstar));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_megaline);
PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette), 256);
@@ -9493,25 +9479,20 @@ MACHINE_CONFIG_START(unkch_state::bonusch)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("sn1", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-
- MCFG_DEVICE_ADD("sn2", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-
- MCFG_DEVICE_ADD("sn3", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "sn1", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
- MCFG_DEVICE_ADD("sn4", SN76489, PSG_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489(config, "sn2", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
-MACHINE_CONFIG_END
+ SN76489(config, "sn3", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
-MACHINE_CONFIG_START(unkch_state::feverch)
+ SN76489(config, "sn4", PSG_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.80);
+}
- MCFG_DEVICE_ADD("maincpu", Z80, 12'000'000 / 2) // clock not verified
- MCFG_DEVICE_PROGRAM_MAP(feverch_map)
- MCFG_DEVICE_IO_MAP(feverch_portmap)
+void unkch_state::feverch(machine_config &config)
+{
+ Z80(config, m_maincpu, 12'000'000 / 2); // clock not verified
+ m_maincpu->set_addrmap(AS_PROGRAM, &unkch_state::feverch_map);
+ m_maincpu->set_addrmap(AS_IO, &unkch_state::feverch_portmap);
I8255A(config, m_ppi[0]);
m_ppi[0]->in_pa_callback().set_ioport("IN0");
@@ -9528,13 +9509,13 @@ MACHINE_CONFIG_START(unkch_state::feverch)
m_ppi[2]->in_pb_callback().set_ioport("DSW2");
m_ppi[2]->in_pc_callback().set_ioport("DSW3");
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(unkch_state, screen_update_unkch)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(unkch_state::screen_update_unkch));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ncb3);
PALETTE(config, m_palette, FUNC(goldstar_state::lucky8_palette)).set_format(palette_device::BGR_233, 256);
@@ -9543,15 +9524,12 @@ MACHINE_CONFIG_START(unkch_state::feverch)
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("sn1", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489A(config, "sn1", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified
- MCFG_DEVICE_ADD("sn2", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489A(config, "sn2", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified
- MCFG_DEVICE_ADD("sn3", SN76489A, 12'000'000 / 12) // actually SN76489AN, clock not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
+ SN76489A(config, "sn3", 12'000'000 / 12).add_route(ALL_OUTPUTS, "mono", 0.80); // actually SN76489AN, clock not verified
+}
/***************************************************************************
@@ -14067,6 +14045,49 @@ ROM_START( nfb96seb )
ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
ROM_END
+ROM_START( nfb96sec )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "u34",0x00000, 0x1000, CRC(65e7a70d) SHA1(77b8b7e16e842d6debf9bb13d83dbf4289ab0bd4) )
+ ROM_CONTINUE(0x4000, 0x1000)
+ ROM_CONTINUE(0x3000, 0x1000)
+ ROM_CONTINUE(0x7000, 0x1000)
+ ROM_CONTINUE(0x1000, 0x1000)
+ ROM_CONTINUE(0x6000, 0x1000)
+ ROM_CONTINUE(0x2000, 0x1000)
+ ROM_CONTINUE(0x5000, 0x1000)
+ ROM_CONTINUE(0x8000, 0x1000)
+ ROM_CONTINUE(0x9000, 0x1000)
+ ROM_CONTINUE(0xa000, 0x1000)
+ ROM_CONTINUE(0xb000, 0x1000)
+ ROM_CONTINUE(0xc000, 0x1000)
+ ROM_CONTINUE(0xd000, 0x1000)
+ ROM_CONTINUE(0xe000, 0x1000)
+ ROM_CONTINUE(0xf000, 0x1000)
+
+ ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x18000, "gfx1", 0 ) // Same data as other sets, arranged differently
+ ROM_LOAD( "u2", 0x00000, 0x08000, CRC(7d245ff8) SHA1(eebc3c0700aaa5e8d0be22d411f097607e179d5e) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+ ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_CONTINUE( 0x00000, 0x08000 )
+
+ ROM_REGION( 0x10000, "gfx2", 0 ) // Same data as other sets, arranged differently
+ ROM_LOAD( "u35", 0x0000, 0x4000, CRC(ddd6b7cb) SHA1(ff5161d7d25b216fd507a43f9102cde1e1518593) ) // 0xxxxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0x2000, 0x2000 )
+ ROM_CONTINUE( 0x0000, 0x2000 )
+ ROM_LOAD( "u1", 0x4000, 0x4000, CRC(fdbb5896) SHA1(edfcfcfbf6306ff40c517eeeb05f91b869ba40d2) ) // 0xxxxxxxxxxxxxx = 0xFF
+ ROM_CONTINUE( 0x6000, 0x2000 )
+ ROM_CONTINUE( 0x4000, 0x2000 )
+
+ // taken from new fruit bonus '96, might be wrong
+ ROM_REGION( 0x200, "proms", 0 ) // palette
+ ROM_LOAD( "chu19.bin", 0x0000, 0x0100, CRC(fafc43ad) SHA1(e94592b83f19e5f9b6205473c1e06b36405ebfc2) )
+ ROM_LOAD( "chu20.bin", 0x0100, 0x0100, CRC(05224f73) SHA1(051c3ee9c63f5436e4f6c355fc308f37910a88ef) )
+
+ ROM_REGION( 0x100, "proms2", 0 ) // colours again?
+ ROM_LOAD( "chu1920.bin", 0x0000, 0x0100, CRC(71b0e11d) SHA1(1d2a2a31d8571f580c0cb7f4833823841072b31f) )
+ROM_END
// this contains elephants etc. instead of the usual symbols, maybe
// it's meant to work with the above program roms?
@@ -16856,6 +16877,7 @@ GAME( 1996, roypok96c, roypok96, amcoe2, roypok96a, cmaster_state, init_rp96
GAME( 1996, nfb96se, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 1, v97-3.3c Portuguese)", 0 )
GAME( 1996, nfb96sea, nfb96, amcoe2, nfb96bl, cmaster_state, init_nfb96sea, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 2, v97-3.3c English)", MACHINE_WRONG_COLORS ) // encrypted program
GAME( 1996, nfb96seb, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 3, v97-3.3c Portuguese)", MACHINE_WRONG_COLORS )
+GAME( 1996, nfb96sec, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 4, v97-3.3c English)", MACHINE_WRONG_COLORS )
GAME( 2002, carb2002, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "Carriage Bonus 2002 (bootleg)", MACHINE_WRONG_COLORS )
GAME( 2003, carb2003, nfb96, amcoe2, nfb96bl, cmaster_state, empty_init, ROT0, "bootleg", "Carriage Bonus 2003 (bootleg)", MACHINE_WRONG_COLORS )