-2203intf: Removed MCFG macro, nw

-drivers/angelkds, argus, blktiger, chinagat, deadang, gaiden, goal92, himesiki, lastduel, lkage, megasys1, nmk16, pkscram, powerins, psychic5, sfkick, sidearms, splash, vigilant: Removed MACHINE_CONFIG macros, nw
This commit is contained in:
mooglyguy 2018-12-30 13:23:51 +01:00
parent 8b0b606eb5
commit 48a83d5c2f
24 changed files with 1504 additions and 1539 deletions

View File

@ -11,9 +11,6 @@
struct ssg_callbacks; struct ssg_callbacks;
#define MCFG_YM2203_IRQ_HANDLER(cb) \
downcast<ym2203_device &>(*device).set_irq_handler((DEVCB_##cb));
class ym2203_device : public ay8910_device class ym2203_device : public ay8910_device
{ {
public: public:

View File

@ -517,16 +517,16 @@ void angelkds_state::machine_reset()
m_bgtopbank = 0; m_bgtopbank = 0;
} }
MACHINE_CONFIG_START(angelkds_state::angelkds) void angelkds_state::angelkds(machine_config &config)
{
Z80(config, m_maincpu, XTAL(6'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &angelkds_state::main_map);
m_maincpu->set_addrmap(AS_IO, &angelkds_state::main_portmap);
m_maincpu->set_vblank_int("screen", FUNC(angelkds_state::irq0_line_hold));
MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(6'000'000)) Z80(config, m_subcpu, XTAL(4'000'000));
MCFG_DEVICE_PROGRAM_MAP(main_map) m_subcpu->set_addrmap(AS_PROGRAM, &angelkds_state::sub_map);
MCFG_DEVICE_IO_MAP(main_portmap) m_subcpu->set_addrmap(AS_IO, &angelkds_state::sub_portmap);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", angelkds_state, irq0_line_hold)
MCFG_DEVICE_ADD("sub", Z80, XTAL(4'000'000))
MCFG_DEVICE_PROGRAM_MAP(sub_map)
MCFG_DEVICE_IO_MAP(sub_portmap)
i8255_device &ppi0(I8255A(config, "ppi8255_0")); i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set_ioport("I40"); ppi0.in_pa_callback().set_ioport("I40");
@ -539,35 +539,35 @@ MACHINE_CONFIG_START(angelkds_state::angelkds)
ppi1.in_pb_callback().set_ioport("I81"); ppi1.in_pb_callback().set_ioport("I81");
ppi1.in_pc_callback().set_ioport("I82"); ppi1.in_pc_callback().set_ioport("I82");
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) config.m_minimum_quantum = attotime::from_hz(6000);
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) screen.set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
MCFG_SCREEN_UPDATE_DRIVER(angelkds_state, screen_update_angelkds) screen.set_screen_update(FUNC(angelkds_state::screen_update_angelkds));
MCFG_SCREEN_PALETTE("palette") screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_angelkds); GFXDECODE(config, m_gfxdecode, "palette", gfx_angelkds);
PALETTE(config, "palette").set_format(palette_device::xBGR_444, 0x100); PALETTE(config, "palette").set_format(palette_device::xBGR_444, 0x100);
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(4'000'000)) ym2203_device &ym1(YM2203(config, "ym1", XTAL(4'000'000)));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("sub", 0)) ym1.irq_handler().set_inputline(m_subcpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.65) ym1.add_route(0, "mono", 0.65);
MCFG_SOUND_ROUTE(1, "mono", 0.65) ym1.add_route(1, "mono", 0.65);
MCFG_SOUND_ROUTE(2, "mono", 0.65) ym1.add_route(2, "mono", 0.65);
MCFG_SOUND_ROUTE(3, "mono", 0.45) ym1.add_route(3, "mono", 0.45);
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(4'000'000)) ym2203_device &ym2(YM2203(config, "ym2", XTAL(4'000'000)));
MCFG_SOUND_ROUTE(0, "mono", 0.65) ym2.add_route(0, "mono", 0.65);
MCFG_SOUND_ROUTE(1, "mono", 0.65) ym2.add_route(1, "mono", 0.65);
MCFG_SOUND_ROUTE(2, "mono", 0.65) ym2.add_route(2, "mono", 0.65);
MCFG_SOUND_ROUTE(3, "mono", 0.45) ym2.add_route(3, "mono", 0.45);
MACHINE_CONFIG_END }
void angelkds_state::spcpostn(machine_config &config) void angelkds_state::spcpostn(machine_config &config)
{ {

View File

@ -483,31 +483,31 @@ static GFXDECODE_START( gfx_butasan )
GFXDECODE_END GFXDECODE_END
MACHINE_CONFIG_START(argus_state::argus) void argus_state::argus(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 4 MHz */ Z80(config, m_maincpu, 5000000); /* 4 MHz */
MCFG_DEVICE_PROGRAM_MAP(argus_map) m_maincpu->set_addrmap(AS_PROGRAM, &argus_state::argus_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", argus_state, scanline, "screen", 0, 1) TIMER(config, "scantimer").configure_scanline(FUNC(argus_state::scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("audiocpu", Z80, 5000000) Z80(config, m_audiocpu, 5000000);
MCFG_DEVICE_PROGRAM_MAP(sound_map_a) m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_a);
MCFG_DEVICE_IO_MAP(sound_portmap_1) m_audiocpu->set_addrmap(AS_IO, &argus_state::sound_portmap_1);
MCFG_QUANTUM_TIME(attotime::from_hz(600)) config.m_minimum_quantum = attotime::from_hz(600);
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(54) m_screen->set_refresh_hz(54);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is referred to psychic5 driver */
MCFG_SCREEN_SIZE(32*16, 32*16) m_screen->set_size(32*16, 32*16);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_argus) m_screen->set_screen_update(FUNC(argus_state::screen_update_argus));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_argus) GFXDECODE(config, m_gfxdecode, m_palette, gfx_argus);
MCFG_PALETTE_ADD("palette", 896) PALETTE(config, m_palette).set_entries(896);
MCFG_DEVICE_ADD("blend", JALECO_BLEND, 0) JALECO_BLEND(config, m_blend, 0);
MCFG_VIDEO_START_OVERRIDE(argus_state,argus) MCFG_VIDEO_START_OVERRIDE(argus_state,argus)
MCFG_VIDEO_RESET_OVERRIDE(argus_state,argus) MCFG_VIDEO_RESET_OVERRIDE(argus_state,argus)
@ -517,39 +517,39 @@ MACHINE_CONFIG_START(argus_state::argus)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, 6000000 / 4) ym2203_device &ym1(YM2203(config, "ym1", 6000000 / 4));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.50) ym1.add_route(3, "mono", 0.50);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(argus_state::valtric)
void argus_state::valtric(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 5 MHz */ Z80(config, m_maincpu, 5000000); /* 5 MHz */
MCFG_DEVICE_PROGRAM_MAP(valtric_map) m_maincpu->set_addrmap(AS_PROGRAM, &argus_state::valtric_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", argus_state, scanline, "screen", 0, 1) TIMER(config, "scantimer").configure_scanline(FUNC(argus_state::scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("audiocpu", Z80, 5000000) Z80(config, m_audiocpu, 5000000);
MCFG_DEVICE_PROGRAM_MAP(sound_map_a) m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_a);
MCFG_DEVICE_IO_MAP(sound_portmap_2) m_audiocpu->set_addrmap(AS_IO, &argus_state::sound_portmap_2);
MCFG_QUANTUM_TIME(attotime::from_hz(600)) config.m_minimum_quantum = attotime::from_hz(600);
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(54) m_screen->set_refresh_hz(54);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is referred to psychic5 driver */
MCFG_SCREEN_SIZE(32*16, 32*16) m_screen->set_size(32*16, 32*16);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_valtric) m_screen->set_screen_update(FUNC(argus_state::screen_update_valtric));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_valtric) GFXDECODE(config, m_gfxdecode, m_palette, gfx_valtric);
MCFG_PALETTE_ADD("palette", 768) PALETTE(config, m_palette).set_entries(768);
MCFG_DEVICE_ADD("blend", JALECO_BLEND, 0) JALECO_BLEND(config, m_blend, 0);
MCFG_VIDEO_START_OVERRIDE(argus_state,valtric) MCFG_VIDEO_START_OVERRIDE(argus_state,valtric)
MCFG_VIDEO_RESET_OVERRIDE(argus_state,valtric) MCFG_VIDEO_RESET_OVERRIDE(argus_state,valtric)
@ -559,45 +559,45 @@ MACHINE_CONFIG_START(argus_state::valtric)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, 6000000 / 4) ym2203_device &ym1(YM2203(config, "ym1", 6000000 / 4));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.50) ym1.add_route(3, "mono", 0.50);
MCFG_DEVICE_ADD("ym2", YM2203, 6000000 / 4) ym2203_device &ym2(YM2203(config, "ym2", 6000000 / 4));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym2.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym2.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym2.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.50) ym2.add_route(3, "mono", 0.50);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(argus_state::butasan)
void argus_state::butasan(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 5 MHz */ Z80(config, m_maincpu, 5000000); /* 5 MHz */
MCFG_DEVICE_PROGRAM_MAP(butasan_map) m_maincpu->set_addrmap(AS_PROGRAM, &argus_state::butasan_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", argus_state, butasan_scanline, "screen", 0, 1) TIMER(config, "scantimer").configure_scanline(FUNC(argus_state::butasan_scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("audiocpu", Z80, 5000000) Z80(config, m_audiocpu, 5000000);
MCFG_DEVICE_PROGRAM_MAP(sound_map_b) m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_b);
MCFG_DEVICE_IO_MAP(sound_portmap_2) m_audiocpu->set_addrmap(AS_IO, &argus_state::sound_portmap_2);
MCFG_QUANTUM_TIME(attotime::from_hz(600)) config.m_minimum_quantum = attotime::from_hz(600);
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(54) m_screen->set_refresh_hz(54);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is taken from psychic5 driver */) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is taken from psychic5 driver */
MCFG_SCREEN_SIZE(32*16, 32*16) m_screen->set_size(32*16, 32*16);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_butasan) m_screen->set_screen_update(FUNC(argus_state::screen_update_butasan));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_butasan) GFXDECODE(config, m_gfxdecode, m_palette, gfx_butasan);
MCFG_PALETTE_ADD("palette", 768) PALETTE(config, m_palette).set_entries(768);
MCFG_DEVICE_ADD("blend", JALECO_BLEND, 0) JALECO_BLEND(config, m_blend, 0);
MCFG_VIDEO_START_OVERRIDE(argus_state,butasan) MCFG_VIDEO_START_OVERRIDE(argus_state,butasan)
MCFG_VIDEO_RESET_OVERRIDE(argus_state,butasan) MCFG_VIDEO_RESET_OVERRIDE(argus_state,butasan)
@ -607,19 +607,19 @@ MACHINE_CONFIG_START(argus_state::butasan)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, 6000000 / 4) ym2203_device &ym1(YM2203(config, "ym1", 6000000 / 4));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.30) ym1.add_route(0, "mono", 0.30);
MCFG_SOUND_ROUTE(1, "mono", 0.30) ym1.add_route(1, "mono", 0.30);
MCFG_SOUND_ROUTE(2, "mono", 0.30) ym1.add_route(2, "mono", 0.30);
MCFG_SOUND_ROUTE(3, "mono", 1.0) ym1.add_route(3, "mono", 1.0);
MCFG_DEVICE_ADD("ym2", YM2203, 6000000 / 4) ym2203_device &ym2(YM2203(config, "ym2", 6000000 / 4));
MCFG_SOUND_ROUTE(0, "mono", 0.30) ym2.add_route(0, "mono", 0.30);
MCFG_SOUND_ROUTE(1, "mono", 0.30) ym2.add_route(1, "mono", 0.30);
MCFG_SOUND_ROUTE(2, "mono", 0.30) ym2.add_route(2, "mono", 0.30);
MCFG_SOUND_ROUTE(3, "mono", 1.0) ym2.add_route(3, "mono", 1.0);
MACHINE_CONFIG_END }
/*************************************************************************** /***************************************************************************

View File

@ -289,16 +289,16 @@ void blktiger_state::machine_reset()
m_i8751_latch = 0; m_i8751_latch = 0;
} }
MACHINE_CONFIG_START(blktiger_state::blktiger) void blktiger_state::blktiger(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/4) /* verified on pcb */ Z80(config, m_maincpu, XTAL(24'000'000)/4); /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(blktiger_map) m_maincpu->set_addrmap(AS_PROGRAM, &blktiger_state::blktiger_map);
MCFG_DEVICE_IO_MAP(blktiger_io_map) m_maincpu->set_addrmap(AS_IO, &blktiger_state::blktiger_io_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", blktiger_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(blktiger_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) /* verified on pcb */ Z80(config, m_audiocpu, XTAL(3'579'545)); /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(blktiger_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &blktiger_state::blktiger_sound_map);
I8751(config, m_mcu, XTAL(24'000'000)/4); /* ??? */ I8751(config, m_mcu, XTAL(24'000'000)/4); /* ??? */
m_mcu->port_in_cb<0>().set(FUNC(blktiger_state::blktiger_from_main_r)); m_mcu->port_in_cb<0>().set(FUNC(blktiger_state::blktiger_from_main_r));
@ -309,16 +309,16 @@ MACHINE_CONFIG_START(blktiger_state::blktiger)
WATCHDOG_TIMER(config, "watchdog"); WATCHDOG_TIMER(config, "watchdog");
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) screen.set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(blktiger_state, screen_update_blktiger) screen.set_screen_update(FUNC(blktiger_state::screen_update_blktiger));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising)) screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_blktiger) GFXDECODE(config, m_gfxdecode, m_palette, gfx_blktiger);
PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024); PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024);
@ -329,21 +329,21 @@ MACHINE_CONFIG_START(blktiger_state::blktiger)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(3'579'545)) /* verified on pcb */ ym2203_device &ym1(YM2203(config, "ym1", XTAL(3'579'545))); /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) ym1.add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(3'579'545)) /* verified on pcb */ ym2203_device &ym2(YM2203(config, "ym2", XTAL(3'579'545))); /* verified on pcb */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) ym2.add_route(ALL_OUTPUTS, "mono", 0.15);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(blktiger_state::blktigerbl) void blktiger_state::blktigerbl(machine_config &config)
{
blktiger(config); blktiger(config);
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_addrmap(AS_IO, &blktiger_state::blktigerbl_io_map);
MCFG_DEVICE_IO_MAP(blktigerbl_io_map)
MCFG_DEVICE_REMOVE("mcu") config.device_remove("mcu");
MACHINE_CONFIG_END }
/*************************************************************************** /***************************************************************************

View File

@ -571,26 +571,26 @@ void chinagat_state::machine_reset()
} }
MACHINE_CONFIG_START(chinagat_state::chinagat) void chinagat_state::chinagat(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", HD6309, MAIN_CLOCK / 2) /* 1.5 MHz (12MHz oscillator / 4 internally) */ HD6309(config, m_maincpu, MAIN_CLOCK / 2); /* 1.5 MHz (12MHz oscillator / 4 internally) */
MCFG_DEVICE_PROGRAM_MAP(main_map) m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chinagat_state, chinagat_scanline, "screen", 0, 1) TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::chinagat_scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("sub", HD6309, MAIN_CLOCK / 2) /* 1.5 MHz (12MHz oscillator / 4 internally) */ HD6309(config, m_subcpu, MAIN_CLOCK / 2); /* 1.5 MHz (12MHz oscillator / 4 internally) */
MCFG_DEVICE_PROGRAM_MAP(sub_map) m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map);
MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(3'579'545)) /* 3.579545 MHz */ Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz */
MCFG_DEVICE_PROGRAM_MAP(sound_map) m_soundcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sound_map);
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* heavy interleaving to sync up sprite<->main cpu's */ config.m_minimum_quantum = attotime::from_hz(6000); /* heavy interleaving to sync up sprite<->main cpu's */
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon) m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat); GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384);
@ -606,22 +606,22 @@ MACHINE_CONFIG_START(chinagat_state::chinagat)
ymsnd.add_route(0, "mono", 0.80); ymsnd.add_route(0, "mono", 0.80);
ymsnd.add_route(1, "mono", 0.80); ymsnd.add_route(1, "mono", 0.80);
MCFG_DEVICE_ADD("oki", OKIM6295, 1065000, okim6295_device::PIN7_HIGH) // pin 7 not verified, clock frequency estimated with recording okim6295_device &oki(OKIM6295(config, "oki", 1065000, okim6295_device::PIN7_HIGH)); // pin 7 not verified, clock frequency estimated with recording
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) oki.add_route(ALL_OUTPUTS, "mono", 0.80);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(chinagat_state::saiyugoub1)
void chinagat_state::saiyugoub1(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", MC6809E, MAIN_CLOCK / 8) /* 68B09EP 1.5 MHz (12MHz oscillator) */ MC6809E(config, m_maincpu, MAIN_CLOCK / 8); /* 68B09EP 1.5 MHz (12MHz oscillator) */
MCFG_DEVICE_PROGRAM_MAP(main_map) m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chinagat_state, chinagat_scanline, "screen", 0, 1) TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::chinagat_scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("sub", MC6809E, MAIN_CLOCK / 8) /* 68B09EP 1.5 MHz (12MHz oscillator) */ MC6809E(config, m_subcpu, MAIN_CLOCK / 8); /* 68B09EP 1.5 MHz (12MHz oscillator) */
MCFG_DEVICE_PROGRAM_MAP(sub_map) m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map);
MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(3'579'545)) /* 3.579545 MHz oscillator */ Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz oscillator */
MCFG_DEVICE_PROGRAM_MAP(saiyugoub1_sound_map) m_soundcpu->set_addrmap(AS_PROGRAM, &chinagat_state::saiyugoub1_sound_map);
i8748_device &mcu(I8748(config, "mcu", 9263750)); /* 9.263750 MHz oscillator, divided by 3*5 internally */ i8748_device &mcu(I8748(config, "mcu", 9263750)); /* 9.263750 MHz oscillator, divided by 3*5 internally */
mcu.set_addrmap(AS_PROGRAM, &chinagat_state::i8748_map); mcu.set_addrmap(AS_PROGRAM, &chinagat_state::i8748_map);
@ -631,14 +631,13 @@ MACHINE_CONFIG_START(chinagat_state::saiyugoub1)
mcu.p1_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_rom_addr_w)); mcu.p1_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_rom_addr_w));
mcu.p2_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_control_w)); mcu.p2_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_control_w));
config.m_minimum_quantum = attotime::from_hz(6000); /* heavy interleaving to sync up sprite<->main cpu's */
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* heavy interleaving to sync up sprite<->main cpu's */
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon) m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat); GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384);
@ -654,32 +653,32 @@ MACHINE_CONFIG_START(chinagat_state::saiyugoub1)
ymsnd.add_route(0, "mono", 0.80); ymsnd.add_route(0, "mono", 0.80);
ymsnd.add_route(1, "mono", 0.80); ymsnd.add_route(1, "mono", 0.80);
MCFG_DEVICE_ADD("adpcm", MSM5205, 9263750 / 24) MSM5205(config, m_adpcm, 9263750 / 24);
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, chinagat_state, saiyugoub1_m5205_irq_w)) /* Interrupt function */ m_adpcm->vck_legacy_callback().set(FUNC(chinagat_state::saiyugoub1_m5205_irq_w)); /* Interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* vclk input mode (6030Hz, 4-bit) */ m_adpcm->set_prescaler_selector(msm5205_device::S64_4B); /* vclk input mode (6030Hz, 4-bit) */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) m_adpcm->add_route(ALL_OUTPUTS, "mono", 0.60);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(chinagat_state::saiyugoub2)
void chinagat_state::saiyugoub2(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", MC6809E, MAIN_CLOCK / 8) /* 1.5 MHz (12MHz oscillator) */ MC6809E(config, m_maincpu, MAIN_CLOCK / 8); /* 1.5 MHz (12MHz oscillator) */
MCFG_DEVICE_PROGRAM_MAP(main_map) m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chinagat_state, chinagat_scanline, "screen", 0, 1) TIMER(config, "scantimer").configure_scanline(FUNC(chinagat_state::chinagat_scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("sub", MC6809E, MAIN_CLOCK / 8) /* 1.5 MHz (12MHz oscillator) */ MC6809E(config, m_subcpu, MAIN_CLOCK / 8); /* 1.5 MHz (12MHz oscillator) */
MCFG_DEVICE_PROGRAM_MAP(sub_map) m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map);
MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(3'579'545)) /* 3.579545 MHz oscillator */ Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz oscillator */
MCFG_DEVICE_PROGRAM_MAP(ym2203c_sound_map) m_soundcpu->set_addrmap(AS_PROGRAM, &chinagat_state::ym2203c_sound_map);
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* heavy interleaving to sync up sprite<->main cpu's */ config.m_minimum_quantum = attotime::from_hz(6000); /* heavy interleaving to sync up sprite<->main cpu's */
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon) m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat); GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 384);
@ -690,19 +689,19 @@ MACHINE_CONFIG_START(chinagat_state::saiyugoub2)
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI); m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
MCFG_DEVICE_ADD("ym1", YM2203, 3579545) ym2203_device &ym1(YM2203(config, "ym1", 3579545));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("soundcpu", 0)) ym1.irq_handler().set_inputline(m_soundcpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.50) ym1.add_route(0, "mono", 0.50);
MCFG_SOUND_ROUTE(1, "mono", 0.50) ym1.add_route(1, "mono", 0.50);
MCFG_SOUND_ROUTE(2, "mono", 0.50) ym1.add_route(2, "mono", 0.50);
MCFG_SOUND_ROUTE(3, "mono", 0.80) ym1.add_route(3, "mono", 0.80);
MCFG_DEVICE_ADD("ym2", YM2203, 3579545) ym2203_device &ym2(YM2203(config, "ym2", 3579545));
MCFG_SOUND_ROUTE(0, "mono", 0.50) ym2.add_route(0, "mono", 0.50);
MCFG_SOUND_ROUTE(1, "mono", 0.50) ym2.add_route(1, "mono", 0.50);
MCFG_SOUND_ROUTE(2, "mono", 0.50) ym2.add_route(2, "mono", 0.50);
MCFG_SOUND_ROUTE(3, "mono", 0.80) ym2.add_route(3, "mono", 0.80);
MACHINE_CONFIG_END }
/*************************************************************************** /***************************************************************************

View File

@ -344,36 +344,36 @@ TIMER_DEVICE_CALLBACK_MEMBER(deadang_state::sub_scanline)
/* Machine Drivers */ /* Machine Drivers */
MACHINE_CONFIG_START(deadang_state::deadang) void deadang_state::deadang(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", V30,XTAL(16'000'000)/2) /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */ V30(config, m_maincpu, XTAL(16'000'000)/2); /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */
MCFG_DEVICE_PROGRAM_MAP(main_map) m_maincpu->set_addrmap(AS_PROGRAM, &deadang_state::main_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer1", deadang_state, main_scanline, "screen", 0, 1) TIMER(config, "scantimer1").configure_scanline(FUNC(deadang_state::main_scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("sub", V30,XTAL(16'000'000)/2) /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */ V30(config, m_subcpu, XTAL(16'000'000)/2); /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */
MCFG_DEVICE_PROGRAM_MAP(sub_map) m_subcpu->set_addrmap(AS_PROGRAM, &deadang_state::sub_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer2", deadang_state, sub_scanline, "screen", 0, 1) TIMER(config, "scantimer2").configure_scanline(FUNC(deadang_state::sub_scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(14'318'181)/4) Z80(config, m_audiocpu, XTAL(14'318'181)/4);
MCFG_DEVICE_PROGRAM_MAP(sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &deadang_state::sound_map);
MCFG_DEVICE_OPCODES_MAP(sound_decrypted_opcodes_map) m_audiocpu->set_addrmap(AS_OPCODES, &deadang_state::sound_decrypted_opcodes_map);
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("seibu_sound", seibu_sound_device, im0_vector_cb) m_audiocpu->set_irq_acknowledge_callback("seibu_sound", FUNC(seibu_sound_device::im0_vector_cb));
SEI80BU(config, "sei80bu", 0).set_device_rom_tag("audiocpu"); SEI80BU(config, "sei80bu", 0).set_device_rom_tag("audiocpu");
MCFG_QUANTUM_TIME(attotime::from_hz(60)) // the game stops working with higher interleave rates.. config.m_minimum_quantum = attotime::from_hz(60); // the game stops working with higher interleave rates..
WATCHDOG_TIMER(config, "watchdog"); WATCHDOG_TIMER(config, "watchdog");
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(60) m_screen->set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(32*8, 32*8) m_screen->set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(deadang_state, screen_update) m_screen->set_screen_update(FUNC(deadang_state::screen_update));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_deadang); GFXDECODE(config, m_gfxdecode, m_palette, gfx_deadang);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 2048); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 2048);
@ -382,48 +382,45 @@ MACHINE_CONFIG_START(deadang_state::deadang)
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
SEIBU_SOUND(config, m_seibu_sound, 0); SEIBU_SOUND(config, m_seibu_sound, 0);
m_seibu_sound->int_callback().set_inputline("audiocpu", 0); m_seibu_sound->int_callback().set_inputline(m_audiocpu, 0);
m_seibu_sound->set_rom_tag("audiocpu"); m_seibu_sound->set_rom_tag("audiocpu");
m_seibu_sound->set_rombank_tag("seibu_bank1"); m_seibu_sound->set_rombank_tag("seibu_bank1");
m_seibu_sound->ym_read_callback().set("ym1", FUNC(ym2203_device::read)); m_seibu_sound->ym_read_callback().set("ym1", FUNC(ym2203_device::read));
m_seibu_sound->ym_write_callback().set("ym1", FUNC(ym2203_device::write)); m_seibu_sound->ym_write_callback().set("ym1", FUNC(ym2203_device::write));
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(14'318'181)/4) ym2203_device &ym1(YM2203(config, "ym1", XTAL(14'318'181)/4));
MCFG_YM2203_IRQ_HANDLER(WRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler)) ym1.irq_handler().set("seibu_sound", FUNC(seibu_sound_device::fm_irqhandler));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) ym1.add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(14'318'181)/4) ym2203_device &ym2(YM2203(config, "ym2", XTAL(14'318'181)/4));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) ym2.add_route(ALL_OUTPUTS, "mono", 0.15);
SEIBU_ADPCM(config, m_adpcm1, 8000).add_route(ALL_OUTPUTS, "mono", 0.40); SEIBU_ADPCM(config, m_adpcm1, 8000).add_route(ALL_OUTPUTS, "mono", 0.40);
SEIBU_ADPCM(config, m_adpcm2, 8000).add_route(ALL_OUTPUTS, "mono", 0.40); SEIBU_ADPCM(config, m_adpcm2, 8000).add_route(ALL_OUTPUTS, "mono", 0.40);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(popnrun_state::popnrun) void popnrun_state::popnrun(machine_config &config)
{
deadang(config); deadang(config);
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_main_map);
MCFG_DEVICE_PROGRAM_MAP(popnrun_main_map)
MCFG_DEVICE_MODIFY("sub") m_subcpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_sub_map);
MCFG_DEVICE_PROGRAM_MAP(popnrun_sub_map)
MCFG_DEVICE_MODIFY("audiocpu") m_audiocpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_sound_map);
MCFG_DEVICE_PROGRAM_MAP(popnrun_sound_map) m_audiocpu->set_addrmap(AS_OPCODES, &popnrun_state::sound_decrypted_opcodes_map);
MCFG_DEVICE_OPCODES_MAP(sound_decrypted_opcodes_map)
MCFG_SCREEN_MODIFY("screen") m_screen->set_screen_update(FUNC(popnrun_state::popnrun_screen_update));
MCFG_SCREEN_UPDATE_DRIVER(popnrun_state, popnrun_screen_update)
MCFG_DEVICE_REMOVE("watchdog") config.device_remove("watchdog");
MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_popnrun) m_gfxdecode->set_info(gfx_popnrun);
MCFG_DEVICE_REMOVE("ym1") config.device_remove("ym1");
MCFG_DEVICE_REMOVE("ym2") config.device_remove("ym2");
MCFG_DEVICE_REMOVE("adpcm1") config.device_remove("adpcm1");
MCFG_DEVICE_REMOVE("adpcm2") config.device_remove("adpcm2");
m_seibu_sound->ym_read_callback().set("ymsnd", FUNC(ym2151_device::read)); m_seibu_sound->ym_read_callback().set("ymsnd", FUNC(ym2151_device::read));
m_seibu_sound->ym_write_callback().set("ymsnd", FUNC(ym2151_device::write)); m_seibu_sound->ym_write_callback().set("ymsnd", FUNC(ym2151_device::write));
@ -432,7 +429,7 @@ MACHINE_CONFIG_START(popnrun_state::popnrun)
ymsnd.irq_handler().set(m_seibu_sound, FUNC(seibu_sound_device::fm_irqhandler)); ymsnd.irq_handler().set(m_seibu_sound, FUNC(seibu_sound_device::fm_irqhandler));
ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(0, "mono", 0.50);
ymsnd.add_route(1, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50);
MACHINE_CONFIG_END }
/* ROMs */ /* ROMs */

View File

@ -750,28 +750,27 @@ static GFXDECODE_START( gfx_drgnbowl )
GFXDECODE_END GFXDECODE_END
MACHINE_CONFIG_START(gaiden_state::shadoww) void gaiden_state::shadoww(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 18432000/2) /* 9.216 MHz */ M68000(config, m_maincpu, 18432000/2); /* 9.216 MHz */
MCFG_DEVICE_PROGRAM_MAP(gaiden_map) m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::gaiden_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaiden_state, irq5_line_assert) m_maincpu->set_vblank_int("screen", FUNC(gaiden_state::irq5_line_assert));
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz */ Z80(config, m_audiocpu, 4000000); /* 4 MHz */
MCFG_DEVICE_PROGRAM_MAP(sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &gaiden_state::sound_map); /* IRQs are triggered by the YM2203 */
/* IRQs are triggered by the YM2203 */
WATCHDOG_TIMER(config, "watchdog"); WATCHDOG_TIMER(config, "watchdog");
/* video hardware */ /* video hardware */
BUFFERED_SPRITERAM16(config, m_spriteram); BUFFERED_SPRITERAM16(config, m_spriteram);
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */ m_screen->set_refresh_hz(59.17); /* verified on pcb */
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) m_screen->set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) m_screen->set_visarea(0*8, 32*8-1, 4*8, 32*8-1);
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden) m_screen->set_screen_update(FUNC(gaiden_state::screen_update_gaiden));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaiden); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaiden);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 4096); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 4096);
@ -794,71 +793,67 @@ MACHINE_CONFIG_START(gaiden_state::shadoww)
GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
MCFG_DEVICE_ADD("ym1", YM2203, 4000000) ym2203_device &ym1(YM2203(config, "ym1", 4000000));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.60) ym1.add_route(3, "mono", 0.60);
MCFG_DEVICE_ADD("ym2", YM2203, 4000000) ym2203_device &ym2(YM2203(config, "ym2", 4000000));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym2.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym2.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym2.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.60) ym2.add_route(3, "mono", 0.60);
MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) oki.add_route(ALL_OUTPUTS, "mono", 0.20);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(gaiden_state::wildfang) void gaiden_state::wildfang(machine_config &config)
{
shadoww(config); shadoww(config);
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::wildfang_map);
MCFG_DEVICE_PROGRAM_MAP(wildfang_map)
MCFG_DEVICE_ADD("mcu", I8749, 4_MHz_XTAL) I8749(config, "mcu", 4_MHz_XTAL).set_disable();
MCFG_DEVICE_DISABLE() }
MACHINE_CONFIG_END
MACHINE_CONFIG_START(gaiden_state::raiga) void gaiden_state::raiga(machine_config &config)
{
shadoww(config); shadoww(config);
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::raiga_map);
MCFG_DEVICE_PROGRAM_MAP(raiga_map)
MCFG_DEVICE_ADD("mcu", I8749, 4_MHz_XTAL) I8749(config, "mcu", 4_MHz_XTAL).set_disable();
MCFG_DEVICE_DISABLE()
MCFG_MACHINE_RESET_OVERRIDE(gaiden_state,raiga) MCFG_MACHINE_RESET_OVERRIDE(gaiden_state,raiga)
MCFG_VIDEO_START_OVERRIDE(gaiden_state,raiga) MCFG_VIDEO_START_OVERRIDE(gaiden_state,raiga)
MCFG_SCREEN_MODIFY("screen") m_screen->set_screen_update(FUNC(gaiden_state::screen_update_raiga));
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_raiga) m_screen->screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) }
MACHINE_CONFIG_END
MACHINE_CONFIG_START(gaiden_state::drgnbowl)
void gaiden_state::drgnbowl(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 20000000/2) /* 10 MHz */ M68000(config, m_maincpu, 20000000/2); /* 10 MHz */
MCFG_DEVICE_PROGRAM_MAP(drgnbowl_map) m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::drgnbowl_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaiden_state, irq5_line_assert) m_maincpu->set_vblank_int("screen", FUNC(gaiden_state::irq5_line_assert));
MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/2) /* 6 MHz */ Z80(config, m_audiocpu, 12000000/2); /* 6 MHz */
MCFG_DEVICE_PROGRAM_MAP(drgnbowl_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &gaiden_state::drgnbowl_sound_map);
MCFG_DEVICE_IO_MAP(drgnbowl_sound_port_map) m_audiocpu->set_addrmap(AS_IO, &gaiden_state::drgnbowl_sound_port_map);
/* video hardware */ /* video hardware */
BUFFERED_SPRITERAM16(config, m_spriteram); BUFFERED_SPRITERAM16(config, m_spriteram);
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(60) m_screen->set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) m_screen->set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl) m_screen->set_screen_update(FUNC(gaiden_state::screen_update_drgnbowl));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_drgnbowl); GFXDECODE(config, m_gfxdecode, m_palette, gfx_drgnbowl);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 4096); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 4096);
@ -875,7 +870,7 @@ MACHINE_CONFIG_START(gaiden_state::drgnbowl)
YM2151(config, "ymsnd", 4000000).add_route(ALL_OUTPUTS, "mono", 0.40); YM2151(config, "ymsnd", 4000000).add_route(ALL_OUTPUTS, "mono", 0.40);
OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50);
MACHINE_CONFIG_END }
/* /*
Master Ninja Master Ninja
@ -991,15 +986,15 @@ void gaiden_state::mastninj_map(address_map &map)
map(0x07e000, 0x07e000).w(FUNC(gaiden_state::drgnbowl_irq_ack_w)); map(0x07e000, 0x07e000).w(FUNC(gaiden_state::drgnbowl_irq_ack_w));
} }
MACHINE_CONFIG_START(gaiden_state::mastninj) void gaiden_state::mastninj(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 10000000) /* 10 MHz? */ M68000(config, m_maincpu, 10000000); /* 10 MHz? */
MCFG_DEVICE_PROGRAM_MAP(mastninj_map) m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::mastninj_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaiden_state, irq5_line_assert) m_maincpu->set_vblank_int("screen", FUNC(gaiden_state::irq5_line_assert));
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* ?? MHz */ Z80(config, m_audiocpu, 4000000); /* ?? MHz */
MCFG_DEVICE_PROGRAM_MAP(mastninj_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &gaiden_state::mastninj_sound_map);
MCFG_MACHINE_START_OVERRIDE(gaiden_state,mastninj) MCFG_MACHINE_START_OVERRIDE(gaiden_state,mastninj)
@ -1008,13 +1003,13 @@ MACHINE_CONFIG_START(gaiden_state::mastninj)
/* video hardware */ /* video hardware */
BUFFERED_SPRITERAM16(config, m_spriteram); BUFFERED_SPRITERAM16(config, m_spriteram);
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(60) m_screen->set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) m_screen->set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl) m_screen->set_screen_update(FUNC(gaiden_state::screen_update_drgnbowl));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_mastninj); GFXDECODE(config, m_gfxdecode, m_palette, gfx_mastninj);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 4096); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 4096);
@ -1029,17 +1024,17 @@ MACHINE_CONFIG_START(gaiden_state::mastninj)
GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_audiocpu, 0); GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_audiocpu, 0);
// YM2203 clocks chosen by analogy with Automat; actual rate unknown, but 4 MHz is obviously too fast // YM2203 clocks chosen by analogy with Automat; actual rate unknown, but 4 MHz is obviously too fast
MCFG_DEVICE_ADD("ym1", YM2203, 1250000) ym2203_device &ym1(YM2203(config, "ym1", 1250000));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.60) ym1.add_route(3, "mono", 0.60);
MCFG_DEVICE_ADD("ym2", YM2203, 1250000) ym2203_device &ym2(YM2203(config, "ym2", 1250000));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym2.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym2.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym2.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.60) ym2.add_route(3, "mono", 0.60);
LS157(config, m_adpcm_select[0], 0); LS157(config, m_adpcm_select[0], 0);
m_adpcm_select[0]->out_callback().set("msm1", FUNC(msm5205_device::data_w)); m_adpcm_select[0]->out_callback().set("msm1", FUNC(msm5205_device::data_w));
@ -1056,7 +1051,7 @@ MACHINE_CONFIG_START(gaiden_state::mastninj)
MSM5205(config, m_msm[1], 384000); MSM5205(config, m_msm[1], 384000);
m_msm[1]->set_prescaler_selector(msm5205_device::SEX_4B); m_msm[1]->set_prescaler_selector(msm5205_device::SEX_4B);
m_msm[1]->add_route(ALL_OUTPUTS, "mono", 0.20); m_msm[1]->add_route(ALL_OUTPUTS, "mono", 0.20);
MACHINE_CONFIG_END }
/*************************************************************************** /***************************************************************************

View File

@ -296,27 +296,25 @@ void goal92_state::machine_reset()
m_adpcm_toggle = 0; m_adpcm_toggle = 0;
} }
MACHINE_CONFIG_START(goal92_state::goal92) void goal92_state::goal92(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000,12000000) M68000(config, m_maincpu, 12000000);
MCFG_DEVICE_PROGRAM_MAP(goal92_map) m_maincpu->set_addrmap(AS_PROGRAM, &goal92_state::goal92_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", goal92_state, irq6_line_hold) /* VBL */ m_maincpu->set_vblank_int("screen", FUNC(goal92_state::irq6_line_hold)); /* VBL */
MCFG_DEVICE_ADD("audiocpu", Z80, 2500000)
MCFG_DEVICE_PROGRAM_MAP(sound_cpu)
/* IRQs are triggered by the main CPU */
Z80(config, m_audiocpu, 2500000);
m_audiocpu->set_addrmap(AS_PROGRAM, &goal92_state::sound_cpu); /* IRQs are triggered by the main CPU */
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(40*8, 32*8) screen.set_size(40*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) // black border at bottom is a game bug... screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); // black border at bottom is a game bug...
MCFG_SCREEN_UPDATE_DRIVER(goal92_state, screen_update_goal92) screen.set_screen_update(FUNC(goal92_state::screen_update_goal92));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, goal92_state, screen_vblank_goal92)) screen.screen_vblank().set(FUNC(goal92_state::screen_vblank_goal92));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_goal92); GFXDECODE(config, m_gfxdecode, m_palette, gfx_goal92);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 128*16); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 128*16);
@ -326,18 +324,18 @@ MACHINE_CONFIG_START(goal92_state::goal92)
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
MCFG_DEVICE_ADD("ym1", YM2203, 2500000/2) ym2203_device &ym1(YM2203(config, "ym1", 2500000/2));
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, goal92_state, irqhandler)) ym1.irq_handler().set(FUNC(goal92_state::irqhandler));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) ym1.add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("ym2", YM2203, 2500000/2) ym2203_device &ym2(YM2203(config, "ym2", 2500000/2));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) ym2.add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("msm", MSM5205, 384000) MSM5205(config, m_msm, 384000);
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, goal92_state, goal92_adpcm_int)) /* interrupt function */ m_msm->vck_legacy_callback().set(FUNC(goal92_state::goal92_adpcm_int)); /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */ m_msm->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) m_msm->add_route(ALL_OUTPUTS, "mono", 0.60);
MACHINE_CONFIG_END }
/* /*

View File

@ -426,17 +426,17 @@ void himesiki_state::machine_reset()
m_flipscreen = 0; m_flipscreen = 0;
} }
MACHINE_CONFIG_START(himesiki_state::himesiki) void himesiki_state::himesiki(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, CLK2) /* it's a 6.000 MHz rated part, but near the 8 Mhz XTAL?? - Android skips lots of frames at 6, crashes at 4 */ Z80(config, m_maincpu, CLK2); /* it's a 6.000 MHz rated part, but near the 8 Mhz XTAL?? - Android skips lots of frames at 6, crashes at 4 */
MCFG_DEVICE_PROGRAM_MAP(himesiki_prm0) m_maincpu->set_addrmap(AS_PROGRAM, &himesiki_state::himesiki_prm0);
MCFG_DEVICE_IO_MAP(himesiki_iom0) m_maincpu->set_addrmap(AS_IO, &himesiki_state::himesiki_iom0);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", himesiki_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(himesiki_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80, CLK2/2) /* 4.000 MHz (4Mhz rated part, near the 8 Mhz XTAL) */ Z80(config, m_subcpu, CLK2/2); /* 4.000 MHz (4Mhz rated part, near the 8 Mhz XTAL) */
MCFG_DEVICE_PROGRAM_MAP(himesiki_prm1) m_subcpu->set_addrmap(AS_PROGRAM, &himesiki_state::himesiki_prm1);
MCFG_DEVICE_IO_MAP(himesiki_iom1) m_subcpu->set_addrmap(AS_IO, &himesiki_state::himesiki_iom1);
i8255_device &ppi0(I8255A(config, "ppi8255_0")); i8255_device &ppi0(I8255A(config, "ppi8255_0"));
ppi0.in_pa_callback().set_ioport("1P"); ppi0.in_pa_callback().set_ioport("1P");
@ -449,13 +449,13 @@ MACHINE_CONFIG_START(himesiki_state::himesiki)
ppi1.out_pc_callback().set(FUNC(himesiki_state::himesiki_rombank_w)); ppi1.out_pc_callback().set(FUNC(himesiki_state::himesiki_rombank_w));
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
MCFG_SCREEN_SIZE(32*8, 32*8) screen.set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) screen.set_visarea(0*8, 32*8-1, 0*8, 24*8-1);
MCFG_SCREEN_UPDATE_DRIVER(himesiki_state, screen_update_himesiki) screen.set_screen_update(FUNC(himesiki_state::screen_update_himesiki));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_himesiki); GFXDECODE(config, m_gfxdecode, m_palette, gfx_himesiki);
PALETTE(config, m_palette, palette_device::BLACK).set_format(palette_device::xRGB_555, 1024); PALETTE(config, m_palette, palette_device::BLACK).set_format(palette_device::xRGB_555, 1024);
@ -465,14 +465,14 @@ MACHINE_CONFIG_START(himesiki_state::himesiki)
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
MCFG_DEVICE_ADD("ym2203", YM2203, CLK2/4) // ?? ym2203_device &ym2203(YM2203(config, "ym2203", CLK2/4)); // ??
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("sub", 0)) ym2203.irq_handler().set_inputline("sub", 0);
MCFG_SOUND_ROUTE(0, "mono", 0.10) ym2203.add_route(0, "mono", 0.10);
MCFG_SOUND_ROUTE(1, "mono", 0.10) ym2203.add_route(1, "mono", 0.10);
MCFG_SOUND_ROUTE(2, "mono", 0.10) ym2203.add_route(2, "mono", 0.10);
MCFG_SOUND_ROUTE(3, "mono", 0.50) ym2203.add_route(3, "mono", 0.50);
}
MACHINE_CONFIG_END
/****************************************************************************/ /****************************************************************************/

View File

@ -514,33 +514,33 @@ void lastduel_state::machine_reset()
m_vctrl[i] = 0; m_vctrl[i] = 0;
} }
MACHINE_CONFIG_START(lastduel_state::lastduel) void lastduel_state::lastduel(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 10000000) // Unconfirmed - could be 8MHz M68000(config, m_maincpu, 10000000); // Unconfirmed - could be 8MHz
MCFG_DEVICE_PROGRAM_MAP(lastduel_map) m_maincpu->set_addrmap(AS_PROGRAM, &lastduel_state::lastduel_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", lastduel_state, irq2_line_hold) m_maincpu->set_vblank_int("screen", FUNC(lastduel_state::irq2_line_hold));
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_irq", lastduel_state, lastduel_timer_cb, attotime::from_hz(120)) TIMER(config, "timer_irq").configure_periodic(FUNC(lastduel_state::lastduel_timer_cb), attotime::from_hz(120));
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) Z80(config, m_audiocpu, XTAL(3'579'545));
MCFG_DEVICE_PROGRAM_MAP(sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &lastduel_state::sound_map);
MCFG_MACHINE_START_OVERRIDE(lastduel_state,lastduel) MCFG_MACHINE_START_OVERRIDE(lastduel_state,lastduel)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(64*8, 32*8) screen.set_size(64*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_lastduel) screen.set_screen_update(FUNC(lastduel_state::screen_update_lastduel));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
BUFFERED_SPRITERAM16(config, m_spriteram); BUFFERED_SPRITERAM16(config, m_spriteram);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_lastduel) GFXDECODE(config, m_gfxdecode, m_palette, gfx_lastduel);
PALETTE(config, m_palette).set_format(2, &lastduel_state::lastduel_RRRRGGGGBBBBIIII, 1024); PALETTE(config, m_palette).set_format(2, &lastduel_state::lastduel_RRRRGGGGBBBBIIII, 1024);
MCFG_VIDEO_START_OVERRIDE(lastduel_state,lastduel) MCFG_VIDEO_START_OVERRIDE(lastduel_state,lastduel)
@ -550,42 +550,41 @@ MACHINE_CONFIG_START(lastduel_state::lastduel)
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(3'579'545)) ym2203_device &ym1(YM2203(config, "ym1", XTAL(3'579'545)));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) ym1.add_route(ALL_OUTPUTS, "mono", 0.40);
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(3'579'545)) ym2203_device &ym2(YM2203(config, "ym2", XTAL(3'579'545)));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) ym2.add_route(ALL_OUTPUTS, "mono", 0.40);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(lastduel_state::madgear)
void lastduel_state::madgear(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(10'000'000)) M68000(config, m_maincpu, XTAL(10'000'000));
MCFG_DEVICE_PROGRAM_MAP(madgear_map) m_maincpu->set_addrmap(AS_PROGRAM, &lastduel_state::madgear_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", lastduel_state, irq5_line_hold) m_maincpu->set_vblank_int("screen", FUNC(lastduel_state::irq5_line_hold));
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_irq", lastduel_state, madgear_timer_cb, attotime::from_hz(120)) TIMER(config, "timer_irq").configure_periodic(FUNC(lastduel_state::madgear_timer_cb), attotime::from_hz(120));
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) Z80(config, m_audiocpu, XTAL(3'579'545));
MCFG_DEVICE_PROGRAM_MAP(madgear_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &lastduel_state::madgear_sound_map);
MCFG_MACHINE_START_OVERRIDE(lastduel_state,madgear) MCFG_MACHINE_START_OVERRIDE(lastduel_state,madgear)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
MCFG_SCREEN_REFRESH_RATE(57.4444) screen.set_refresh_hz(57.4444);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(64*8, 32*8) screen.set_size(64*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_madgear) screen.set_screen_update(FUNC(lastduel_state::screen_update_madgear));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
BUFFERED_SPRITERAM16(config, m_spriteram); BUFFERED_SPRITERAM16(config, m_spriteram);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_lastduel) GFXDECODE(config, m_gfxdecode, m_palette, gfx_lastduel);
PALETTE(config, m_palette).set_format(2, &lastduel_state::lastduel_RRRRGGGGBBBBIIII, 1024); PALETTE(config, m_palette).set_format(2, &lastduel_state::lastduel_RRRRGGGGBBBBIIII, 1024);
MCFG_VIDEO_START_OVERRIDE(lastduel_state,madgear) MCFG_VIDEO_START_OVERRIDE(lastduel_state,madgear)
@ -595,16 +594,16 @@ MACHINE_CONFIG_START(lastduel_state::madgear)
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(3'579'545)) ym2203_device &ym1(YM2203(config, "ym1", XTAL(3'579'545)));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) ym1.add_route(ALL_OUTPUTS, "mono", 0.40);
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(3'579'545)) ym2203_device &ym2(YM2203(config, "ym2", XTAL(3'579'545)));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) ym2.add_route(ALL_OUTPUTS, "mono", 0.40);
MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(10'000'000)/10, okim6295_device::PIN7_HIGH) okim6295_device &oki(OKIM6295(config, "oki", XTAL(10'000'000)/10, okim6295_device::PIN7_HIGH));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.98) oki.add_route(ALL_OUTPUTS, "mono", 0.98);
MACHINE_CONFIG_END }
/******************************************************************************/ /******************************************************************************/

View File

@ -488,34 +488,31 @@ void lkage_state::machine_reset()
m_soundnmi->in_w<1>(0); m_soundnmi->in_w<1>(0);
} }
MACHINE_CONFIG_START(lkage_state::lkage) void lkage_state::lkage(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK) Z80(config, m_maincpu, MAIN_CPU_CLOCK);
MCFG_DEVICE_PROGRAM_MAP(lkage_map_mcu) m_maincpu->set_addrmap(AS_PROGRAM, &lkage_state::lkage_map_mcu);
MCFG_DEVICE_IO_MAP(lkage_io_map) m_maincpu->set_addrmap(AS_IO, &lkage_state::lkage_io_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", lkage_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(lkage_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) Z80(config, m_audiocpu, SOUND_CPU_CLOCK);
MCFG_DEVICE_PROGRAM_MAP(lkage_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &lkage_state::lkage_sound_map); /* IRQs are triggered by the YM2203 */
/* IRQs are triggered by the YM2203 */
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU,MCU_CLOCK)
TAITO68705_MCU(config, m_bmcu, MCU_CLOCK);
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(32*8, 32*8) screen.set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1) screen.set_visarea(2*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage) screen.set_screen_update(FUNC(lkage_state::screen_update_lkage));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lkage); GFXDECODE(config, m_gfxdecode, m_palette, gfx_lkage);
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 1024); PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 1024);
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
@ -523,47 +520,43 @@ MACHINE_CONFIG_START(lkage_state::lkage)
INPUT_MERGER_ALL_HIGH(config, m_soundnmi).output_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI); INPUT_MERGER_ALL_HIGH(config, m_soundnmi).output_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI);
MCFG_DEVICE_ADD("ym1", YM2203, AUDIO_CLOCK ) ym2203_device &ym1(YM2203(config, "ym1", AUDIO_CLOCK));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.40) ym1.add_route(3, "mono", 0.40);
MCFG_DEVICE_ADD("ym2", YM2203, AUDIO_CLOCK ) ym2203_device &ym2(YM2203(config, "ym2", AUDIO_CLOCK));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym2.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym2.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym2.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.40) ym2.add_route(3, "mono", 0.40);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(lkage_state::lkageb)
void lkage_state::lkageb(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80,MAIN_CPU_CLOCK) Z80(config, m_maincpu, MAIN_CPU_CLOCK);
MCFG_DEVICE_PROGRAM_MAP(lkage_map_boot) m_maincpu->set_addrmap(AS_PROGRAM, &lkage_state::lkage_map_boot);
MCFG_DEVICE_IO_MAP(lkage_io_map) m_maincpu->set_addrmap(AS_IO, &lkage_state::lkage_io_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", lkage_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(lkage_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK)
MCFG_DEVICE_PROGRAM_MAP(lkage_sound_map)
/* IRQs are triggered by the YM2203 */
Z80(config, m_audiocpu, SOUND_CPU_CLOCK);
m_audiocpu->set_addrmap(AS_PROGRAM, &lkage_state::lkage_sound_map); /* IRQs are triggered by the YM2203 */
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(32*8, 32*8) screen.set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1) screen.set_visarea(2*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage) screen.set_screen_update(FUNC(lkage_state::screen_update_lkage));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lkage); GFXDECODE(config, m_gfxdecode, m_palette, gfx_lkage);
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 1024); PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 1024);
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
@ -571,19 +564,19 @@ MACHINE_CONFIG_START(lkage_state::lkageb)
INPUT_MERGER_ALL_HIGH(config, m_soundnmi).output_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI); INPUT_MERGER_ALL_HIGH(config, m_soundnmi).output_handler().set_inputline(m_audiocpu, INPUT_LINE_NMI);
MCFG_DEVICE_ADD("ym1", YM2203, AUDIO_CLOCK) ym2203_device &ym1(YM2203(config, "ym1", AUDIO_CLOCK));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline("audiocpu", 0);
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.40) ym1.add_route(3, "mono", 0.40);
MCFG_DEVICE_ADD("ym2", YM2203, AUDIO_CLOCK) ym2203_device &ym2(YM2203(config, "ym2", AUDIO_CLOCK));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym2.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym2.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym2.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.40) ym2.add_route(3, "mono", 0.40);
MACHINE_CONFIG_END }
ROM_START( lkage ) ROM_START( lkage )
ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 code (main CPU) */ ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 code (main CPU) */

View File

@ -1681,31 +1681,30 @@ GFXDECODE_END
/* Provided by Jim Hernandez: 3.5MHz for FM, 30KHz (!) for ADPCM */ /* Provided by Jim Hernandez: 3.5MHz for FM, 30KHz (!) for ADPCM */
MACHINE_CONFIG_START(megasys1_state::system_A) void megasys1_state::system_A(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, SYS_A_CPU_CLOCK) /* 6MHz verified */ M68000(config, m_maincpu, SYS_A_CPU_CLOCK); /* 6MHz verified */
MCFG_DEVICE_PROGRAM_MAP(megasys1A_map) m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1A_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1A_scanline, "screen", 0, 1) TIMER(config, m_scantimer).configure_scanline(FUNC(megasys1_state::megasys1A_scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("audiocpu", M68000, SOUND_CPU_CLOCK) /* 7MHz verified */ M68000(config, m_audiocpu, SOUND_CPU_CLOCK); /* 7MHz verified */
MCFG_DEVICE_PROGRAM_MAP(megasys1A_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1A_sound_map);
MCFG_QUANTUM_TIME(attotime::from_hz(120000)) config.m_minimum_quantum = attotime::from_hz(120000);
MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1) MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
//MCFG_SCREEN_REFRESH_RATE(56.18) // same as nmk16.cpp based on YT videos. //m_screen->set_refresh_hz(56.18); // same as nmk16.cpp based on YT videos.
MCFG_SCREEN_RAW_PARAMS(SYS_A_CPU_CLOCK,406,0,256,263,16,240) m_screen->set_raw(SYS_A_CPU_CLOCK,406,0,256,263,16,240);
m_screen->set_screen_update(FUNC(megasys1_state::screen_update));
m_screen->screen_vblank().set(FUNC(megasys1_state::screen_vblank));
m_screen->set_palette(m_palette);
m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update) GFXDECODE(config, m_gfxdecode, m_palette, gfx_abc);
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, megasys1_state, screen_vblank))
MCFG_SCREEN_PALETTE(m_palette)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_abc)
PALETTE(config, m_palette, FUNC(megasys1_state::megasys1_palette)).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); PALETTE(config, m_palette, FUNC(megasys1_state::megasys1_palette)).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1) MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
@ -1725,25 +1724,26 @@ MACHINE_CONFIG_START(megasys1_state::system_A)
ymsnd.add_route(0, "lspeaker", 0.80); ymsnd.add_route(0, "lspeaker", 0.80);
ymsnd.add_route(1, "rspeaker", 0.80); ymsnd.add_route(1, "rspeaker", 0.80);
MCFG_DEVICE_ADD("oki1", OKIM6295, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH) /* 4MHz verified */ OKIM6295(config, m_oki1, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH); /* 4MHz verified */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 0.30);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 0.30);
MCFG_DEVICE_ADD("oki2", OKIM6295, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH) /* 4MHz verified */ OKIM6295(config, m_oki2, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH); /* 4MHz verified */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.30);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.30);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(megasys1_state::system_A_hachoo) void megasys1_state::system_A_hachoo(machine_config &config)
{
system_A(config); system_A(config);
MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1_hachoo) MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1_hachoo)
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(megasys1_state::system_A_iganinju) void megasys1_state::system_A_iganinju(machine_config &config)
{
system_A(config); system_A(config);
config.device_remove("scantimer"); TIMER(config.replace(), m_scantimer).configure_scanline(FUNC(megasys1_state::megasys1A_iganinju_scanline), "screen", 0, 1);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1A_iganinju_scanline, "screen", 0, 1) }
MACHINE_CONFIG_END
void megasys1_state::system_A_soldam(machine_config &config) void megasys1_state::system_A_soldam(machine_config &config)
{ {
@ -1752,63 +1752,60 @@ void megasys1_state::system_A_soldam(machine_config &config)
m_tmap[1]->set_8x8_scroll_factor(4); m_tmap[1]->set_8x8_scroll_factor(4);
} }
MACHINE_CONFIG_START(megasys1_state::kickoffb) void megasys1_state::kickoffb(machine_config &config)
{
system_A(config); system_A(config);
MCFG_DEVICE_MODIFY("audiocpu") m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::kickoffb_sound_map);
MCFG_DEVICE_PROGRAM_MAP(kickoffb_sound_map)
config.device_remove("ymsnd"); config.device_remove("ymsnd");
config.device_remove("oki2"); config.device_remove("oki2");
MCFG_DEVICE_ADD("ymsnd", YM2203, SOUND_CPU_CLOCK / 2) ym2203_device &ymsnd(YM2203(config, "ymsnd", SOUND_CPU_CLOCK / 2));
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, megasys1_state, sound_irq)) // TODO: needs to be checked ymsnd.irq_handler().set(FUNC(megasys1_state::sound_irq)); // TODO: needs to be checked
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) ymsnd.add_route(0, "lspeaker", 0.80);
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) ymsnd.add_route(1, "rspeaker", 0.80);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(megasys1_state::system_B) void megasys1_state::system_B(machine_config &config)
{
system_A(config); system_A(config);
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_clock(SYS_B_CPU_CLOCK); /* 8MHz */
MCFG_DEVICE_CLOCK(SYS_B_CPU_CLOCK) /* 8MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_map);
MCFG_DEVICE_PROGRAM_MAP(megasys1B_map) m_scantimer->set_callback(FUNC(megasys1_state::megasys1B_scanline));
MCFG_TIMER_MODIFY("scantimer")
MCFG_TIMER_DRIVER_CALLBACK(megasys1_state, megasys1B_scanline)
MCFG_DEVICE_MODIFY("audiocpu") m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_sound_map);
MCFG_DEVICE_PROGRAM_MAP(megasys1B_sound_map) }
MACHINE_CONFIG_END
void megasys1_state::system_B_monkelf(machine_config &config)
MACHINE_CONFIG_START(megasys1_state::system_B_monkelf) {
system_B(config); system_B(config);
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_monkelf_map);
MCFG_DEVICE_PROGRAM_MAP(megasys1B_monkelf_map) }
MACHINE_CONFIG_END
MACHINE_CONFIG_START(megasys1_state::system_Bbl)
void megasys1_state::system_Bbl(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, SYS_B_CPU_CLOCK) M68000(config, m_maincpu, SYS_B_CPU_CLOCK);
MCFG_DEVICE_PROGRAM_MAP(megasys1B_edfbl_map) m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_edfbl_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1B_scanline, "screen", 0, 1) TIMER(config, m_scantimer).configure_scanline(FUNC(megasys1_state::megasys1B_scanline), "screen", 0, 1);
MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1) MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(56.18) // same as nmk16.cpp based on YT videos. m_screen->set_refresh_hz(56.18); // same as nmk16.cpp based on YT videos.
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) m_screen->set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update) m_screen->set_screen_update(FUNC(megasys1_state::screen_update));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, megasys1_state, screen_vblank)) m_screen->screen_vblank().set(FUNC(megasys1_state::screen_vblank));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_abc) GFXDECODE(config, m_gfxdecode, m_palette, gfx_abc);
PALETTE(config, m_palette, FUNC(megasys1_state::megasys1_palette)).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); PALETTE(config, m_palette, FUNC(megasys1_state::megasys1_palette)).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1) MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
@ -1821,39 +1818,37 @@ MACHINE_CONFIG_START(megasys1_state::system_Bbl)
SPEAKER(config, "rspeaker").front_right(); SPEAKER(config, "rspeaker").front_right();
/* just the one OKI, used for sound and music */ /* just the one OKI, used for sound and music */
MCFG_DEVICE_ADD("oki1", OKIM6295, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH) OKIM6295(config, m_oki1, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 0.30);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 0.30);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(megasys1_state::system_B_hayaosi1) void megasys1_state::system_B_hayaosi1(machine_config &config)
{
system_B(config); system_B(config);
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_REPLACE("oki1", OKIM6295, 2000000, okim6295_device::PIN7_HIGH) /* correct speed, but unknown OSC + divider combo */ OKIM6295(config.replace(), m_oki1, 2000000, okim6295_device::PIN7_HIGH); /* correct speed, but unknown OSC + divider combo */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 0.30);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 0.30);
MCFG_DEVICE_REPLACE("oki2", OKIM6295, 2000000, okim6295_device::PIN7_HIGH) /* correct speed, but unknown OSC + divider combo */ OKIM6295(config.replace(), m_oki2, 2000000, okim6295_device::PIN7_HIGH); /* correct speed, but unknown OSC + divider combo */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30) m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.30);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30) m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.30);
MACHINE_CONFIG_END }
void megasys1_state::system_C(machine_config &config)
MACHINE_CONFIG_START(megasys1_state::system_C) {
system_A(config); system_A(config);
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_clock(SYS_C_CPU_CLOCK); /* 12MHz */
MCFG_DEVICE_CLOCK(SYS_C_CPU_CLOCK) /* 12MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1C_map);
MCFG_DEVICE_PROGRAM_MAP(megasys1C_map) m_scantimer->set_callback(FUNC(megasys1_state::megasys1B_scanline));
MCFG_TIMER_MODIFY("scantimer")
MCFG_TIMER_DRIVER_CALLBACK(megasys1_state, megasys1B_scanline)
MCFG_DEVICE_MODIFY("audiocpu") m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_sound_map);
MCFG_DEVICE_PROGRAM_MAP(megasys1B_sound_map) }
MACHINE_CONFIG_END
/*************************************************************************** /***************************************************************************
@ -1867,26 +1862,26 @@ MACHINE_CONFIG_END
***************************************************************************/ ***************************************************************************/
MACHINE_CONFIG_START(megasys1_state::system_D) void megasys1_state::system_D(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, SYS_D_CPU_CLOCK) /* 8MHz */ M68000(config, m_maincpu, SYS_D_CPU_CLOCK); /* 8MHz */
MCFG_DEVICE_PROGRAM_MAP(megasys1D_map) m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1D_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", megasys1_state, megasys1D_irq) m_maincpu->set_vblank_int("screen", FUNC(megasys1_state::megasys1D_irq));
MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1) MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(56.18) // same as nmk16.cpp based on YT videos. m_screen->set_refresh_hz(56.18); // same as nmk16.cpp based on YT videos.
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) m_screen->set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update) m_screen->set_screen_update(FUNC(megasys1_state::screen_update));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, megasys1_state, screen_vblank)) m_screen->screen_vblank().set(FUNC(megasys1_state::screen_vblank));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_abc) GFXDECODE(config, m_gfxdecode, m_palette, gfx_abc);
PALETTE(config, m_palette, FUNC(megasys1_state::megasys1_palette)).set_format(palette_device::RGBx_555, 1024); PALETTE(config, m_palette, FUNC(megasys1_state::megasys1_palette)).set_format(palette_device::RGBx_555, 1024);
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1) MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
@ -1896,10 +1891,10 @@ MACHINE_CONFIG_START(megasys1_state::system_D)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("oki1", OKIM6295, SYS_D_CPU_CLOCK/4, okim6295_device::PIN7_HIGH) /* 2MHz (8MHz / 4) */ OKIM6295(config, m_oki1, SYS_D_CPU_CLOCK/4, okim6295_device::PIN7_HIGH); /* 2MHz (8MHz / 4) */
MCFG_DEVICE_ADDRESS_MAP(0, megasys1D_oki_map) m_oki1->set_addrmap(0, &megasys1_state::megasys1D_oki_map);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) m_oki1->add_route(ALL_OUTPUTS, "mono", 1.0);
MACHINE_CONFIG_END }
@ -1915,27 +1910,27 @@ MACHINE_CONFIG_END
***************************************************************************/ ***************************************************************************/
MACHINE_CONFIG_START(megasys1_state::system_Z) void megasys1_state::system_Z(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, SYS_A_CPU_CLOCK) /* 6MHz (12MHz / 2) */ M68000(config, m_maincpu, SYS_A_CPU_CLOCK); /* 6MHz (12MHz / 2) */
MCFG_DEVICE_PROGRAM_MAP(megasys1Z_map) m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1Z_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1A_scanline, "screen", 0, 1) TIMER(config, m_scantimer).configure_scanline(FUNC(megasys1_state::megasys1A_scanline), "screen", 0, 1);
MCFG_DEVICE_ADD("audiocpu", Z80, 3000000) /* OSC 12MHz divided by 4 ??? */ Z80(config, m_audiocpu, 3000000); /* OSC 12MHz divided by 4 ??? */
MCFG_DEVICE_PROGRAM_MAP(z80_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::z80_sound_map);
MCFG_DEVICE_IO_MAP(z80_sound_io_map) m_audiocpu->set_addrmap(AS_IO, &megasys1_state::z80_sound_io_map);
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(56.18) // same as nmk16.cpp based on YT videos. m_screen->set_refresh_hz(56.18); // same as nmk16.cpp based on YT videos.
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) m_screen->set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update) m_screen->set_screen_update(FUNC(megasys1_state::screen_update));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_z) GFXDECODE(config, m_gfxdecode, m_palette, gfx_z);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 768); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 768);
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1) MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
@ -1948,10 +1943,10 @@ MACHINE_CONFIG_START(megasys1_state::system_Z)
GENERIC_LATCH_8(config, m_soundlatch_z); GENERIC_LATCH_8(config, m_soundlatch_z);
MCFG_DEVICE_ADD("ymsnd", YM2203, 1500000) ym2203_device &ymsnd(YM2203(config, "ymsnd", 1500000));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) ymsnd.add_route(ALL_OUTPUTS, "mono", 0.50);
MACHINE_CONFIG_END }
/************************************* /*************************************

File diff suppressed because it is too large Load Diff

View File

@ -313,25 +313,25 @@ void pkscram_state::machine_reset()
m_scan_timer->adjust(m_screen->time_until_pos(interrupt_scanline), interrupt_scanline); m_scan_timer->adjust(m_screen->time_until_pos(interrupt_scanline), interrupt_scanline);
} }
MACHINE_CONFIG_START(pkscram_state::pkscramble) void pkscram_state::pkscramble(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 8000000 ) M68000(config, m_maincpu, 8000000);
MCFG_DEVICE_PROGRAM_MAP(pkscramble_map) m_maincpu->set_addrmap(AS_PROGRAM, &pkscram_state::pkscramble_map);
//MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pkscram_state, irq1_line_hold) /* only valid irq */ //m_maincpu->set_vblank_int("screen", FUNC(pkscram_state::irq1_line_hold)); /* only valid irq */
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
TIMER(config, m_scan_timer).configure_generic(FUNC(pkscram_state::scanline_callback));
MCFG_TIMER_DRIVER_ADD("scan_timer", pkscram_state, scanline_callback)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(60) m_screen->set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(32*8, 32*8) m_screen->set_size(32*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) m_screen->set_visarea(0*8, 32*8-1, 0*8, 24*8-1);
MCFG_SCREEN_UPDATE_DRIVER(pkscram_state, screen_update_pkscramble) m_screen->set_screen_update(FUNC(pkscram_state::screen_update_pkscramble));
MCFG_SCREEN_PALETTE("palette") m_screen->set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x800); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x800);
GFXDECODE(config, m_gfxdecode, "palette", gfx_pkscram); GFXDECODE(config, m_gfxdecode, "palette", gfx_pkscram);
@ -339,10 +339,10 @@ MACHINE_CONFIG_START(pkscram_state::pkscramble)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("ymsnd", YM2203, 12000000/4) ym2203_device &ymsnd(YM2203(config, "ymsnd", 12000000/4));
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, pkscram_state, irqhandler)) ymsnd.irq_handler().set(FUNC(pkscram_state::irqhandler));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) ymsnd.add_route(ALL_OUTPUTS, "mono", 0.60);
MACHINE_CONFIG_END }
ROM_START( pkscram ) ROM_START( pkscram )

View File

@ -287,25 +287,25 @@ MACHINE_START_MEMBER(powerins_state, powerinsa)
m_okibank->configure_entries(0, 5, memregion("oki1")->base() + 0x30000, 0x10000); m_okibank->configure_entries(0, 5, memregion("oki1")->base() + 0x30000, 0x10000);
} }
MACHINE_CONFIG_START(powerins_state::powerins) void powerins_state::powerins(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12MHz */ M68000(config, m_maincpu, 12000000); /* 12MHz */
MCFG_DEVICE_PROGRAM_MAP(powerins_map) m_maincpu->set_addrmap(AS_PROGRAM, &powerins_state::powerins_map);
MCFG_DEVICE_ADD("soundcpu", Z80, 6000000) /* 6 MHz */ Z80(config, m_soundcpu, 6000000); /* 6 MHz */
MCFG_DEVICE_PROGRAM_MAP(powerins_sound_map) m_soundcpu->set_addrmap(AS_PROGRAM, &powerins_state::powerins_sound_map);
MCFG_DEVICE_IO_MAP(powerins_sound_io_map) m_soundcpu->set_addrmap(AS_IO, &powerins_state::powerins_sound_io_map);
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
MCFG_SCREEN_REFRESH_RATE(56) m_screen->set_refresh_hz(56);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
MCFG_SCREEN_SIZE(320, 256) m_screen->set_size(320, 256);
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+16, 256-16-1) m_screen->set_visarea(0, 320-1, 0+16, 256-16-1);
MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update) m_screen->set_screen_update(FUNC(powerins_state::screen_update));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, powerins_state, screen_vblank)) m_screen->screen_vblank().set(FUNC(powerins_state::screen_vblank));
MCFG_SCREEN_PALETTE(m_palette) m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerins); GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerins);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 2048); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 2048);
@ -315,59 +315,57 @@ MACHINE_CONFIG_START(powerins_state::powerins)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("oki1", OKIM6295, 4000000, okim6295_device::PIN7_LOW) okim6295_device &oki1(OKIM6295(config, "oki1", 4000000, okim6295_device::PIN7_LOW));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) oki1.add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_DEVICE_ADD("oki2", OKIM6295, 4000000, okim6295_device::PIN7_LOW) okim6295_device &oki2(OKIM6295(config, "oki2", 4000000, okim6295_device::PIN7_LOW));
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15) oki2.add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_DEVICE_ADD("ym2203", YM2203, 12000000 / 8) ym2203_device &ym2203(YM2203(config, "ym2203", 12000000 / 8));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("soundcpu", 0)) ym2203.irq_handler().set_inputline(m_soundcpu, 0);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0) ym2203.add_route(ALL_OUTPUTS, "mono", 2.0);
nmk112_device &nmk112(NMK112(config, "nmk112", 0)); nmk112_device &nmk112(NMK112(config, "nmk112", 0));
nmk112.set_rom0_tag("oki1"); nmk112.set_rom0_tag("oki1");
nmk112.set_rom1_tag("oki2"); nmk112.set_rom1_tag("oki2");
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(powerins_state::powerinsa) void powerins_state::powerinsa(machine_config &config)
{
powerins(config); powerins(config);
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_addrmap(AS_PROGRAM, &powerins_state::powerinsa_map);
MCFG_DEVICE_PROGRAM_MAP(powerinsa_map)
MCFG_SCREEN_MODIFY("screen") m_screen->set_refresh_hz(60);
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_DEVICE_REMOVE("soundcpu") config.device_remove("soundcpu");
MCFG_MACHINE_START_OVERRIDE(powerins_state, powerinsa) MCFG_MACHINE_START_OVERRIDE(powerins_state, powerinsa)
MCFG_DEVICE_REPLACE("oki1", OKIM6295, 990000, okim6295_device::PIN7_LOW) // pin7 not verified okim6295_device &oki1(OKIM6295(config.replace(), "oki1", 990000, okim6295_device::PIN7_LOW)); // pin7 not verified
MCFG_DEVICE_ADDRESS_MAP(0, powerinsa_oki_map) oki1.set_addrmap(0, &powerins_state::powerinsa_oki_map);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) oki1.add_route(ALL_OUTPUTS, "mono", 1.0);
MCFG_DEVICE_REMOVE("oki2") config.device_remove("oki2");
MCFG_DEVICE_REMOVE("ym2203") config.device_remove("ym2203");
config.device_remove("nmk112"); config.device_remove("nmk112");
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(powerins_state::powerinsb) void powerins_state::powerinsb(machine_config &config)
{
powerins(config); powerins(config);
/* basic machine hardware */ /* basic machine hardware */
MCFG_SCREEN_MODIFY("screen") m_screen->set_refresh_hz(60);
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_DEVICE_MODIFY("soundcpu") /* 6 MHz */ m_soundcpu->set_addrmap(AS_IO, &powerins_state::powerinsb_sound_io_map);
MCFG_DEVICE_IO_MAP(powerinsb_sound_io_map) m_soundcpu->set_periodic_int(FUNC(powerins_state::irq0_line_hold), attotime::from_hz(120)); // YM2203 rate is at 150??
MCFG_DEVICE_PERIODIC_INT_DRIVER(powerins_state, irq0_line_hold, 120) // YM2203 rate is at 150??
MCFG_DEVICE_REMOVE("ym2203") // Sound code talks to one, but it's not fitted on the board config.device_remove("ym2203"); // Sound code talks to one, but it's not fitted on the board
MACHINE_CONFIG_END }
/*************************************************************************** /***************************************************************************

View File

@ -720,32 +720,32 @@ static GFXDECODE_START( gfx_bombsa )
GFXDECODE_END GFXDECODE_END
MACHINE_CONFIG_START(psychic5_state::psychic5) void psychic5_state::psychic5(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) Z80(config, m_maincpu, XTAL(12'000'000)/2);
MCFG_DEVICE_PROGRAM_MAP(psychic5_main_map) m_maincpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_main_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", psychic5_state, scanline, "screen", 0, 1) TIMER(config, "scantimer").configure_scanline(FUNC(psychic5_state::scanline), "screen", 0, 1);
ADDRESS_MAP_BANK(config, "vrambank").set_map(&psychic5_state::psychic5_vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 14, 0x2000); ADDRESS_MAP_BANK(config, "vrambank").set_map(&psychic5_state::psychic5_vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 14, 0x2000);
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(5'000'000)) Z80(config, m_audiocpu, XTAL(5'000'000));
MCFG_DEVICE_PROGRAM_MAP(psychic5_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_sound_map);
MCFG_DEVICE_IO_MAP(psychic5_soundport_map) m_audiocpu->set_addrmap(AS_IO, &psychic5_state::psychic5_soundport_map);
MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* Allow time for 2nd cpu to interleave */ config.m_minimum_quantum = attotime::from_hz(600); /* Allow time for 2nd cpu to interleave */
MCFG_MACHINE_START_OVERRIDE(psychic5_state,psychic5) MCFG_MACHINE_START_OVERRIDE(psychic5_state,psychic5)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240) // was 53.8 Hz before, assume same as Bombs Away screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); // was 53.8 Hz before, assume same as Bombs Away
MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_psychic5) screen.set_screen_update(FUNC(psychic5_state::screen_update_psychic5));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_psychic5) GFXDECODE(config, m_gfxdecode, m_palette, gfx_psychic5);
MCFG_PALETTE_ADD("palette", 768) PALETTE(config, m_palette).set_entries(768);
MCFG_DEVICE_ADD("blend", JALECO_BLEND, 0) JALECO_BLEND(config, m_blend, 0);
MCFG_VIDEO_START_OVERRIDE(psychic5_state,psychic5) MCFG_VIDEO_START_OVERRIDE(psychic5_state,psychic5)
MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5) MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5)
@ -755,44 +755,44 @@ MACHINE_CONFIG_START(psychic5_state::psychic5)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(12'000'000)/8) ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000)/8));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.50) ym1.add_route(3, "mono", 0.50);
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(12'000'000)/8) ym2203_device &ym2(YM2203(config, "ym2", XTAL(12'000'000)/8));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym2.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym2.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym2.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.50) ym2.add_route(3, "mono", 0.50);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(psychic5_state::bombsa)
void psychic5_state::bombsa(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2 ) /* 6 MHz */ Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz */
MCFG_DEVICE_PROGRAM_MAP(bombsa_main_map) m_maincpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_main_map);
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", psychic5_state, scanline, "screen", 0, 1) TIMER(config, "scantimer").configure_scanline(FUNC(psychic5_state::scanline), "screen", 0, 1);
ADDRESS_MAP_BANK(config, "vrambank").set_map(&psychic5_state::bombsa_vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 14, 0x2000); ADDRESS_MAP_BANK(config, "vrambank").set_map(&psychic5_state::bombsa_vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 14, 0x2000);
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(5'000'000) ) Z80(config, m_audiocpu, XTAL(5'000'000));
MCFG_DEVICE_PROGRAM_MAP(bombsa_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_sound_map);
MCFG_DEVICE_IO_MAP(bombsa_soundport_map) m_audiocpu->set_addrmap(AS_IO, &psychic5_state::bombsa_soundport_map);
MCFG_QUANTUM_TIME(attotime::from_hz(600)) config.m_minimum_quantum = attotime::from_hz(600);
MCFG_MACHINE_START_OVERRIDE(psychic5_state,bombsa) MCFG_MACHINE_START_OVERRIDE(psychic5_state,bombsa)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240) /* Guru says : VSync - 54Hz . HSync - 15.25kHz */ screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); /* Measured as: VSync 54Hz, HSync 15.25kHz */
MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_bombsa) screen.set_screen_update(FUNC(psychic5_state::screen_update_bombsa));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bombsa) GFXDECODE(config, m_gfxdecode, m_palette, gfx_bombsa);
MCFG_PALETTE_ADD("palette", 768) PALETTE(config, m_palette).set_entries(768);
MCFG_VIDEO_START_OVERRIDE(psychic5_state,bombsa) MCFG_VIDEO_START_OVERRIDE(psychic5_state,bombsa)
MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5) MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5)
@ -802,19 +802,19 @@ MACHINE_CONFIG_START(psychic5_state::bombsa)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(12'000'000)/8) ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000)/8));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.30) ym1.add_route(0, "mono", 0.30);
MCFG_SOUND_ROUTE(1, "mono", 0.30) ym1.add_route(1, "mono", 0.30);
MCFG_SOUND_ROUTE(2, "mono", 0.30) ym1.add_route(2, "mono", 0.30);
MCFG_SOUND_ROUTE(3, "mono", 1.0) ym1.add_route(3, "mono", 1.0);
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(12'000'000)/8) ym2203_device &ym2(YM2203(config, "ym2", XTAL(12'000'000)/8));
MCFG_SOUND_ROUTE(0, "mono", 0.30) ym2.add_route(0, "mono", 0.30);
MCFG_SOUND_ROUTE(1, "mono", 0.30) ym2.add_route(1, "mono", 0.30);
MCFG_SOUND_ROUTE(2, "mono", 0.30) ym2.add_route(2, "mono", 0.30);
MCFG_SOUND_ROUTE(3, "mono", 1.0) ym2.add_route(3, "mono", 1.0);
MACHINE_CONFIG_END }
/*************************************************************************** /***************************************************************************

View File

@ -591,17 +591,17 @@ WRITE_LINE_MEMBER(sfkick_state::irqhandler)
m_soundcpu->set_input_line_and_vector(0, state ? ASSERT_LINE : CLEAR_LINE, 0xff); m_soundcpu->set_input_line_and_vector(0, state ? ASSERT_LINE : CLEAR_LINE, 0xff);
} }
MACHINE_CONFIG_START(sfkick_state::sfkick) void sfkick_state::sfkick(machine_config &config)
{
Z80(config, m_maincpu, MASTER_CLOCK/6);
m_maincpu->set_addrmap(AS_PROGRAM, &sfkick_state::sfkick_map);
m_maincpu->set_addrmap(AS_IO, &sfkick_state::sfkick_io_map);
MCFG_DEVICE_ADD("maincpu",Z80,MASTER_CLOCK/6) config.m_minimum_quantum = attotime::from_hz(60000);
MCFG_DEVICE_PROGRAM_MAP(sfkick_map)
MCFG_DEVICE_IO_MAP(sfkick_io_map)
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) Z80(config, m_soundcpu, MASTER_CLOCK/6);
m_soundcpu->set_addrmap(AS_PROGRAM, &sfkick_state::sfkick_sound_map);
MCFG_DEVICE_ADD("soundcpu",Z80,MASTER_CLOCK/6) m_soundcpu->set_addrmap(AS_IO, &sfkick_state::sfkick_sound_io_map);
MCFG_DEVICE_PROGRAM_MAP(sfkick_sound_map)
MCFG_DEVICE_IO_MAP(sfkick_sound_io_map)
v9938_device &v9938(V9938(config, "v9938", MASTER_CLOCK)); v9938_device &v9938(V9938(config, "v9938", MASTER_CLOCK));
v9938.set_screen_ntsc("screen"); v9938.set_screen_ntsc("screen");
@ -618,15 +618,13 @@ MACHINE_CONFIG_START(sfkick_state::sfkick)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, MASTER_CLOCK/6) ym2203_device &ym1(YM2203(config, "ym1", MASTER_CLOCK/6));
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, sfkick_state, irqhandler)) ym1.irq_handler().set(FUNC(sfkick_state::irqhandler));
ym1.add_route(0, "mono", 0.25);
MCFG_SOUND_ROUTE(0, "mono", 0.25) ym1.add_route(1, "mono", 0.25);
MCFG_SOUND_ROUTE(1, "mono", 0.25) ym1.add_route(2, "mono", 0.25);
MCFG_SOUND_ROUTE(2, "mono", 0.25) ym1.add_route(3, "mono", 0.50);
MCFG_SOUND_ROUTE(3, "mono", 0.50) }
MACHINE_CONFIG_END
void sfkick_state::init_sfkick() void sfkick_state::init_sfkick()
{ {

View File

@ -599,32 +599,31 @@ static GFXDECODE_START( gfx_turtship )
GFXDECODE_END GFXDECODE_END
MACHINE_CONFIG_START(sidearms_state::sidearms) void sidearms_state::sidearms(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */
MCFG_DEVICE_PROGRAM_MAP(sidearms_map) m_maincpu->set_addrmap(AS_PROGRAM, &sidearms_state::sidearms_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sidearms_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(sidearms_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz (?) */ Z80(config, m_audiocpu, 4000000); /* 4 MHz (?) */
MCFG_DEVICE_PROGRAM_MAP(sidearms_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &sidearms_state::sidearms_sound_map);
WATCHDOG_TIMER(config, "watchdog"); WATCHDOG_TIMER(config, "watchdog");
/* video hardware */ /* video hardware */
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM8) BUFFERED_SPRITERAM8(config, m_spriteram);
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 32*8) screen.set_size(64*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update) screen.set_screen_update(FUNC(sidearms_state::screen_update));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising)) screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sidearms)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_sidearms);
PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024); PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024);
/* sound hardware */ /* sound hardware */
@ -632,47 +631,45 @@ MACHINE_CONFIG_START(sidearms_state::sidearms)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, 4000000) ym2203_device &ym1(YM2203(config, "ym1", 4000000));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.25) ym1.add_route(3, "mono", 0.25);
MCFG_DEVICE_ADD("ym2", YM2203, 4000000) ym2203_device &ym2(YM2203(config, "ym2", 4000000));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym2.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym2.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym2.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.25) ym2.add_route(3, "mono", 0.25);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(sidearms_state::turtship)
void sidearms_state::turtship(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */
MCFG_DEVICE_PROGRAM_MAP(turtship_map) m_maincpu->set_addrmap(AS_PROGRAM, &sidearms_state::turtship_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sidearms_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(sidearms_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz (?) */ Z80(config, m_audiocpu, 4000000); /* 4 MHz (?) */
MCFG_DEVICE_PROGRAM_MAP(sidearms_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &sidearms_state::sidearms_sound_map);
WATCHDOG_TIMER(config, "watchdog"); WATCHDOG_TIMER(config, "watchdog");
/* video hardware */ /* video hardware */
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM8) BUFFERED_SPRITERAM8(config, m_spriteram);
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 32*8) screen.set_size(64*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising)) screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update) screen.set_screen_update(FUNC(sidearms_state::screen_update));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_turtship)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_turtship);
PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024); PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024);
/* sound hardware */ /* sound hardware */
@ -680,50 +677,49 @@ MACHINE_CONFIG_START(sidearms_state::turtship)
GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD("ym1", YM2203, 4000000) ym2203_device &ym1(YM2203(config, "ym1", 4000000));
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ym1.irq_handler().set_inputline(m_audiocpu, 0);
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym1.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym1.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym1.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.25) ym1.add_route(3, "mono", 0.25);
MCFG_DEVICE_ADD("ym2", YM2203, 4000000) ym2203_device &ym2(YM2203(config, "ym2", 4000000));
MCFG_SOUND_ROUTE(0, "mono", 0.15) ym2.add_route(0, "mono", 0.15);
MCFG_SOUND_ROUTE(1, "mono", 0.15) ym2.add_route(1, "mono", 0.15);
MCFG_SOUND_ROUTE(2, "mono", 0.15) ym2.add_route(2, "mono", 0.15);
MCFG_SOUND_ROUTE(3, "mono", 0.25) ym2.add_route(3, "mono", 0.25);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(sidearms_state::whizz)
void sidearms_state::whizz(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */ Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */
MCFG_DEVICE_PROGRAM_MAP(whizz_map) m_maincpu->set_addrmap(AS_PROGRAM, &sidearms_state::whizz_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sidearms_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(sidearms_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) Z80(config, m_audiocpu, 4000000);
MCFG_DEVICE_PROGRAM_MAP(whizz_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &sidearms_state::whizz_sound_map);
MCFG_DEVICE_IO_MAP(whizz_io_map) m_audiocpu->set_addrmap(AS_IO, &sidearms_state::whizz_io_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sidearms_state, irq0_line_hold) m_audiocpu->set_vblank_int("screen", FUNC(sidearms_state::irq0_line_hold));
MCFG_QUANTUM_TIME(attotime::from_hz(60000)) config.m_minimum_quantum = attotime::from_hz(60000);
WATCHDOG_TIMER(config, "watchdog"); WATCHDOG_TIMER(config, "watchdog");
/* video hardware */ /* video hardware */
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM8) BUFFERED_SPRITERAM8(config, m_spriteram);
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 32*8) screen.set_size(64*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update) screen.set_screen_update(FUNC(sidearms_state::screen_update));
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising)) screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_turtship)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_turtship);
PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024); PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024);
/* sound hardware */ /* sound hardware */
@ -735,7 +731,7 @@ MACHINE_CONFIG_START(sidearms_state::whizz)
ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
ymsnd.add_route(0, "mono", 1.0); ymsnd.add_route(0, "mono", 1.0);
ymsnd.add_route(1, "mono", 1.0); ymsnd.add_route(1, "mono", 1.0);
MACHINE_CONFIG_END }

View File

@ -485,16 +485,16 @@ MACHINE_RESET_MEMBER(splash_state,splash)
m_ret = 0x100; m_ret = 0x100;
} }
MACHINE_CONFIG_START(splash_state::splash) void splash_state::splash(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12MHz (24/2) */ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12MHz (24/2) */
MCFG_DEVICE_PROGRAM_MAP(splash_map) m_maincpu->set_addrmap(AS_PROGRAM, &splash_state::splash_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", splash_state, irq6_line_hold) m_maincpu->set_vblank_int("screen", FUNC(splash_state::irq6_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(30'000'000)/8) /* 3.75MHz (30/8) */ Z80(config, m_audiocpu, XTAL(30'000'000)/8); /* 3.75MHz (30/8) */
MCFG_DEVICE_PROGRAM_MAP(splash_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &splash_state::splash_sound_map);
MCFG_DEVICE_PERIODIC_INT_DRIVER(splash_state, nmi_line_pulse, 60*64) /* needed for the msm5205 to play the samples */ m_audiocpu->set_periodic_int(FUNC(splash_state::nmi_line_pulse), attotime::from_hz(60*64)); /* needed for the msm5205 to play the samples */
LS259(config, m_outlatch); // A8 LS259(config, m_outlatch); // A8
m_outlatch->q_out_cb<0>().set(FUNC(splash_state::coin1_lockout_w)); m_outlatch->q_out_cb<0>().set(FUNC(splash_state::coin1_lockout_w));
@ -503,15 +503,15 @@ MACHINE_CONFIG_START(splash_state::splash)
m_outlatch->q_out_cb<3>().set(FUNC(splash_state::coin2_counter_w)); m_outlatch->q_out_cb<3>().set(FUNC(splash_state::coin2_counter_w));
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(58) screen.set_refresh_hz(58);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 64*8) screen.set_size(64*8, 64*8);
MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1) screen.set_visarea(2*8, 48*8-1, 2*8, 32*8-1);
MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update) screen.set_screen_update(FUNC(splash_state::screen_update));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_splash) GFXDECODE(config, m_gfxdecode, m_palette, gfx_splash);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
MCFG_MACHINE_START_OVERRIDE(splash_state, splash ) MCFG_MACHINE_START_OVERRIDE(splash_state, splash )
@ -523,14 +523,13 @@ MACHINE_CONFIG_START(splash_state::splash)
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0);
MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(30'000'000)/8) /* 3.75MHz (30/8) */ YM3812(config, "ymsnd", XTAL(30'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.80); /* 3.75MHz (30/8) */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000)) MSM5205(config, m_msm, XTAL(384'000));
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, splash_state, splash_msm5205_int)) /* IRQ handler */ m_msm->vck_legacy_callback().set(FUNC(splash_state::splash_msm5205_int)); /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ /* Sample rate = 384kHz/48 */ m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8KHz */ /* Sample rate = 384kHz/48 */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) m_msm->add_route(ALL_OUTPUTS, "mono", 0.80);
MACHINE_CONFIG_END }
MACHINE_START_MEMBER(splash_state, roldfrog) MACHINE_START_MEMBER(splash_state, roldfrog)
@ -546,17 +545,17 @@ INTERRUPT_GEN_MEMBER(splash_state::roldfrog_interrupt)
roldfrog_update_irq(); roldfrog_update_irq();
} }
MACHINE_CONFIG_START(splash_state::roldfrog) void splash_state::roldfrog(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz - verified */ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz - verified */
MCFG_DEVICE_PROGRAM_MAP(roldfrog_map) m_maincpu->set_addrmap(AS_PROGRAM, &splash_state::roldfrog_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", splash_state, irq6_line_hold) m_maincpu->set_vblank_int("screen", FUNC(splash_state::irq6_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/8) /* 3 MHz - verified */ Z80(config, m_audiocpu, XTAL(24'000'000)/8); /* 3 MHz - verified */
MCFG_DEVICE_PROGRAM_MAP(roldfrog_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &splash_state::roldfrog_sound_map);
MCFG_DEVICE_IO_MAP(roldfrog_sound_io_map) m_audiocpu->set_addrmap(AS_IO, &splash_state::roldfrog_sound_io_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", splash_state, roldfrog_interrupt) m_audiocpu->set_vblank_int("screen", FUNC(splash_state::roldfrog_interrupt));
LS259(config, m_outlatch); LS259(config, m_outlatch);
m_outlatch->q_out_cb<1>().set(FUNC(splash_state::coin1_lockout_w)); m_outlatch->q_out_cb<1>().set(FUNC(splash_state::coin1_lockout_w));
@ -565,15 +564,15 @@ MACHINE_CONFIG_START(splash_state::roldfrog)
m_outlatch->q_out_cb<3>().set(FUNC(splash_state::coin2_counter_w)); m_outlatch->q_out_cb<3>().set(FUNC(splash_state::coin2_counter_w));
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 64*8) screen.set_size(64*8, 64*8);
MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1) screen.set_visarea(2*8, 48*8-1, 2*8, 32*8-1);
MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update) screen.set_screen_update(FUNC(splash_state::screen_update));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_splash) GFXDECODE(config, m_gfxdecode, m_palette, gfx_splash);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
MCFG_MACHINE_START_OVERRIDE(splash_state, roldfrog ) MCFG_MACHINE_START_OVERRIDE(splash_state, roldfrog )
@ -586,13 +585,13 @@ MACHINE_CONFIG_START(splash_state::roldfrog)
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_soundlatch->set_separate_acknowledge(true); m_soundlatch->set_separate_acknowledge(true);
MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(24'000'000) / 8) ym2203_device &ymsnd(YM2203(config, "ymsnd", XTAL(24'000'000) / 8));
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, splash_state, ym_irq)) ymsnd.irq_handler().set(FUNC(splash_state::ym_irq));
MCFG_SOUND_ROUTE(0, "mono", 0.20) ymsnd.add_route(0, "mono", 0.20);
MCFG_SOUND_ROUTE(1, "mono", 0.20) ymsnd.add_route(1, "mono", 0.20);
MCFG_SOUND_ROUTE(2, "mono", 0.20) ymsnd.add_route(2, "mono", 0.20);
MCFG_SOUND_ROUTE(3, "mono", 1.0) ymsnd.add_route(3, "mono", 1.0);
MACHINE_CONFIG_END }
WRITE_LINE_MEMBER(funystrp_state::adpcm_int1) WRITE_LINE_MEMBER(funystrp_state::adpcm_int1)
{ {
@ -639,29 +638,29 @@ void funystrp_state::machine_start()
save_item(NAME(m_snd_interrupt_enable2)); save_item(NAME(m_snd_interrupt_enable2));
} }
MACHINE_CONFIG_START(funystrp_state::funystrp) void funystrp_state::funystrp(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz (24/2) */ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz (24/2) */
MCFG_DEVICE_PROGRAM_MAP(funystrp_map) m_maincpu->set_addrmap(AS_PROGRAM, &funystrp_state::funystrp_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", funystrp_state, irq6_line_hold) m_maincpu->set_vblank_int("screen", FUNC(funystrp_state::irq6_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/4) /* 6MHz (24/4) */ Z80(config, m_audiocpu, XTAL(24'000'000)/4); /* 6MHz (24/4) */
MCFG_DEVICE_PROGRAM_MAP(funystrp_sound_map) m_audiocpu->set_addrmap(AS_PROGRAM, &funystrp_state::funystrp_sound_map);
MCFG_DEVICE_IO_MAP(funystrp_sound_io_map) m_audiocpu->set_addrmap(AS_IO, &funystrp_state::funystrp_sound_io_map);
EEPROM_93C46_16BIT(config, "eeprom"); EEPROM_93C46_16BIT(config, m_eeprom);
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(60) screen.set_refresh_hz(60);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 64*8) screen.set_size(64*8, 64*8);
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 32*8-1) screen.set_visarea(0*8, 48*8-1, 2*8, 32*8-1);
MCFG_SCREEN_UPDATE_DRIVER(funystrp_state, screen_update_funystrp) screen.set_screen_update(FUNC(funystrp_state::screen_update_funystrp));
MCFG_SCREEN_PALETTE(m_palette) screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_splash) GFXDECODE(config, m_gfxdecode, m_palette, gfx_splash);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048);
/* sound hardware */ /* sound hardware */
@ -670,16 +669,16 @@ MACHINE_CONFIG_START(funystrp_state::funystrp)
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
MCFG_DEVICE_ADD("msm1", MSM5205, XTAL(400'000)) MSM5205(config, m_msm1, XTAL(400'000));
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, funystrp_state, adpcm_int1)) /* interrupt function */ m_msm1->vck_legacy_callback().set(FUNC(funystrp_state::adpcm_int1)); /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 1 / 48 */ /* Sample rate = 400kHz/64 */ m_msm1->set_prescaler_selector(msm5205_device::S48_4B); /* 1 / 48 */ /* Sample rate = 400kHz/64 */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) m_msm1->add_route(ALL_OUTPUTS, "mono", 0.80);
MCFG_DEVICE_ADD("msm2", MSM5205, XTAL(400'000)) MSM5205(config, m_msm2, XTAL(400'000));
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, funystrp_state, adpcm_int2)) /* interrupt function */ m_msm2->vck_legacy_callback().set(FUNC(funystrp_state::adpcm_int2)); /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 1 / 96 */ /* Sample rate = 400kHz/96 */ m_msm2->set_prescaler_selector(msm5205_device::S96_4B); /* 1 / 96 */ /* Sample rate = 400kHz/96 */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) m_msm2->add_route(ALL_OUTPUTS, "mono", 0.80);
MACHINE_CONFIG_END }
/*************************************************************************** /***************************************************************************

View File

@ -480,32 +480,32 @@ static GFXDECODE_START( gfx_kikcubic )
GFXDECODE_END GFXDECODE_END
MACHINE_CONFIG_START(vigilant_state::vigilant) void vigilant_state::vigilant(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 3.579545_MHz_XTAL) Z80(config, m_maincpu, 3.579545_MHz_XTAL);
MCFG_DEVICE_PROGRAM_MAP(vigilant_map) m_maincpu->set_addrmap(AS_PROGRAM, &vigilant_state::vigilant_map);
MCFG_DEVICE_IO_MAP(vigilant_io_map) m_maincpu->set_addrmap(AS_IO, &vigilant_state::vigilant_io_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vigilant_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(vigilant_state::irq0_line_hold));
MCFG_DEVICE_ADD("soundcpu", Z80, 3.579545_MHz_XTAL) z80_device &soundcpu(Z80(config, "soundcpu", 3.579545_MHz_XTAL));
MCFG_DEVICE_PROGRAM_MAP(sound_map) soundcpu.set_addrmap(AS_PROGRAM, &vigilant_state::sound_map);
MCFG_DEVICE_IO_MAP(sound_io_map) soundcpu.set_addrmap(AS_IO, &vigilant_state::sound_io_map);
MCFG_DEVICE_PERIODIC_INT_DRIVER(vigilant_state, nmi_line_pulse, 128*55) /* clocked by V1 */ soundcpu.set_periodic_int(FUNC(vigilant_state::nmi_line_pulse), attotime::from_hz(128*55)); /* clocked by V1 */
/* IRQs are generated by main Z80 and YM2151 */ /* IRQs are generated by main Z80 and YM2151 */
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("soundirq", rst_neg_buffer_device, inta_cb) soundcpu.set_irq_acknowledge_callback("soundirq", FUNC(rst_neg_buffer_device::inta_cb));
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(55) screen.set_refresh_hz(55);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 32*8) screen.set_size(64*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA((16*8)-1, (64-16)*8-4, 0*8, 32*8-1 ) screen.set_visarea((16*8)-1, (64-16)*8-4, 0*8, 32*8-1);
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant) screen.set_screen_update(FUNC(vigilant_state::screen_update_vigilant));
MCFG_SCREEN_PALETTE("palette") screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_vigilant) GFXDECODE(config, m_gfxdecode, m_palette, gfx_vigilant);
MCFG_PALETTE_ADD("palette", 512+32) /* 512 real palette, 32 virtual palette */ PALETTE(config, m_palette).set_entries(512+32); /* 512 real palette, 32 virtual palette */
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
@ -517,45 +517,48 @@ MACHINE_CONFIG_START(vigilant_state::vigilant)
RST_NEG_BUFFER(config, "soundirq", 0).int_callback().set_inputline("soundcpu", 0); RST_NEG_BUFFER(config, "soundirq", 0).int_callback().set_inputline("soundcpu", 0);
MCFG_DEVICE_ADD("m72", IREM_M72_AUDIO) IREM_M72_AUDIO(config, m_audio);
ym2151_device &ymsnd(YM2151(config, "ymsnd", 3.579545_MHz_XTAL)); ym2151_device &ymsnd(YM2151(config, "ymsnd", 3.579545_MHz_XTAL));
ymsnd.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w)); ymsnd.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w));
ymsnd.add_route(0, "lspeaker", 0.55); ymsnd.add_route(0, "lspeaker", 0.55);
ymsnd.add_route(1, "rspeaker", 0.55); ymsnd.add_route(1, "rspeaker", 0.55);
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC dac_8bit_r2r_device &dac(DAC_8BIT_R2R(config, "dac", 0)); // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) dac.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) dac.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
MACHINE_CONFIG_END voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
MACHINE_CONFIG_START(vigilant_state::buccanrs) vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
void vigilant_state::buccanrs(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 5688800) /* 5.688800 MHz */ Z80(config, m_maincpu, 5688800); /* 5.688800 MHz */
MCFG_DEVICE_PROGRAM_MAP(vigilant_map) m_maincpu->set_addrmap(AS_PROGRAM, &vigilant_state::vigilant_map);
MCFG_DEVICE_IO_MAP(vigilant_io_map) m_maincpu->set_addrmap(AS_IO, &vigilant_state::vigilant_io_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vigilant_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(vigilant_state::irq0_line_hold));
MCFG_DEVICE_ADD("soundcpu", Z80, 18432000/6) /* 3.072000 MHz */ z80_device &soundcpu(Z80(config, "soundcpu", 18432000/6)); /* 3.072000 MHz */
MCFG_DEVICE_PROGRAM_MAP(sound_map) soundcpu.set_addrmap(AS_PROGRAM, &vigilant_state::sound_map);
MCFG_DEVICE_IO_MAP(buccanrs_sound_io_map) soundcpu.set_addrmap(AS_IO, &vigilant_state::buccanrs_sound_io_map);
MCFG_DEVICE_PERIODIC_INT_DRIVER(vigilant_state, nmi_line_pulse, 128*55) /* clocked by V1 */ soundcpu.set_periodic_int(FUNC(vigilant_state::nmi_line_pulse), attotime::from_hz(128*55)); /* clocked by V1 */
/* IRQs are generated by main Z80 and YM2151 */ /* IRQs are generated by main Z80 and YM2151 */
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("soundirq", rst_neg_buffer_device, inta_cb) soundcpu.set_irq_acknowledge_callback("soundirq", FUNC(rst_neg_buffer_device::inta_cb));
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(55) screen.set_refresh_hz(55);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 32*8) screen.set_size(64*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 ) screen.set_visarea(16*8, (64-16)*8-1, 0*8, 32*8-1);
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant) screen.set_screen_update(FUNC(vigilant_state::screen_update_vigilant));
MCFG_SCREEN_PALETTE("palette") screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_buccanrs)
MCFG_PALETTE_ADD("palette", 512+32) /* 512 real palette, 32 virtual palette */
GFXDECODE(config, m_gfxdecode, m_palette, gfx_buccanrs);
PALETTE(config, m_palette).set_entries(512+32); /* 512 real palette, 32 virtual palette */
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
@ -567,60 +570,64 @@ MACHINE_CONFIG_START(vigilant_state::buccanrs)
RST_NEG_BUFFER(config, "soundirq", 0).int_callback().set_inputline("soundcpu", 0); RST_NEG_BUFFER(config, "soundirq", 0).int_callback().set_inputline("soundcpu", 0);
MCFG_DEVICE_ADD("m72", IREM_M72_AUDIO) IREM_M72_AUDIO(config, m_audio);
MCFG_DEVICE_ADD("ym1", YM2203, 18432000/6) ym2203_device &ym1(YM2203(config, "ym1", 18432000/6));
MCFG_YM2203_IRQ_HANDLER(WRITELINE("soundirq", rst_neg_buffer_device, rst28_w)) ym1.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w));
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35) ym1.add_route(0, "lspeaker", 0.35);
MCFG_SOUND_ROUTE(0, "rspeaker", 0.35) ym1.add_route(0, "rspeaker", 0.35);
MCFG_SOUND_ROUTE(1, "lspeaker", 0.35) ym1.add_route(1, "lspeaker", 0.35);
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35) ym1.add_route(1, "rspeaker", 0.35);
MCFG_SOUND_ROUTE(2, "lspeaker", 0.35) ym1.add_route(2, "lspeaker", 0.35);
MCFG_SOUND_ROUTE(2, "rspeaker", 0.35) ym1.add_route(2, "rspeaker", 0.35);
MCFG_SOUND_ROUTE(3, "lspeaker", 0.50) ym1.add_route(3, "lspeaker", 0.50);
MCFG_SOUND_ROUTE(3, "rspeaker", 0.50) ym1.add_route(3, "rspeaker", 0.50);
MCFG_DEVICE_ADD("ym2", YM2203, 18432000/6) ym2203_device &ym2(YM2203(config, "ym2", 18432000/6));;
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35) ym2.add_route(0, "lspeaker", 0.35);
MCFG_SOUND_ROUTE(0, "rspeaker", 0.35) ym2.add_route(0, "rspeaker", 0.35);
MCFG_SOUND_ROUTE(1, "lspeaker", 0.35) ym2.add_route(1, "lspeaker", 0.35);
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35) ym2.add_route(1, "rspeaker", 0.35);
MCFG_SOUND_ROUTE(2, "lspeaker", 0.35) ym2.add_route(2, "lspeaker", 0.35);
MCFG_SOUND_ROUTE(2, "rspeaker", 0.35) ym2.add_route(2, "rspeaker", 0.35);
MCFG_SOUND_ROUTE(3, "lspeaker", 0.50) ym2.add_route(3, "lspeaker", 0.50);
MCFG_SOUND_ROUTE(3, "rspeaker", 0.50) ym2.add_route(3, "rspeaker", 0.50);
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35) // unknown DAC dac_8bit_r2r_device &dac(DAC_8BIT_R2R(config, "dac", 0)); // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) dac.add_route(ALL_OUTPUTS, "lspeaker", 0.35);
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) dac.add_route(ALL_OUTPUTS, "rspeaker", 0.35);
MACHINE_CONFIG_END voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
MACHINE_CONFIG_START(vigilant_state::kikcubic) vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
void vigilant_state::kikcubic(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 3.579545_MHz_XTAL) Z80(config, m_maincpu, 3.579545_MHz_XTAL);
MCFG_DEVICE_PROGRAM_MAP(kikcubic_map) m_maincpu->set_addrmap(AS_PROGRAM, &vigilant_state::kikcubic_map);
MCFG_DEVICE_IO_MAP(kikcubic_io_map) m_maincpu->set_addrmap(AS_IO, &vigilant_state::kikcubic_io_map);
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vigilant_state, irq0_line_hold) m_maincpu->set_vblank_int("screen", FUNC(vigilant_state::irq0_line_hold));
MCFG_DEVICE_ADD("soundcpu", Z80, 3.579545_MHz_XTAL) z80_device &soundcpu(Z80(config, "soundcpu", 3.579545_MHz_XTAL));
MCFG_DEVICE_PROGRAM_MAP(sound_map) soundcpu.set_addrmap(AS_PROGRAM, &vigilant_state::sound_map);
MCFG_DEVICE_IO_MAP(sound_io_map) soundcpu.set_addrmap(AS_IO, &vigilant_state::sound_io_map);
MCFG_DEVICE_PERIODIC_INT_DRIVER(vigilant_state, nmi_line_pulse, 128*55) /* clocked by V1 */ soundcpu.set_periodic_int(FUNC(vigilant_state::nmi_line_pulse), attotime::from_hz(128*55)); /* clocked by V1 */
/* IRQs are generated by main Z80 and YM2151 */ /* IRQs are generated by main Z80 and YM2151 */
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("soundirq", rst_neg_buffer_device, inta_cb) soundcpu.set_irq_acknowledge_callback("soundirq", FUNC(rst_neg_buffer_device::inta_cb));
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
MCFG_SCREEN_REFRESH_RATE(55) screen.set_refresh_hz(55);
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
MCFG_SCREEN_SIZE(64*8, 32*8) screen.set_size(64*8, 32*8);
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 ) screen.set_visarea(8*8, (64-8)*8-1, 0*8, 32*8-1);
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_kikcubic) screen.set_screen_update(FUNC(vigilant_state::screen_update_kikcubic));
MCFG_SCREEN_PALETTE("palette") screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_kikcubic) GFXDECODE(config, m_gfxdecode, m_palette, gfx_kikcubic);
MCFG_PALETTE_ADD("palette", 256) PALETTE(config, m_palette).set_entries(256);
/* sound hardware */ /* sound hardware */
SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "lspeaker").front_left();
@ -632,17 +639,21 @@ MACHINE_CONFIG_START(vigilant_state::kikcubic)
RST_NEG_BUFFER(config, "soundirq", 0).int_callback().set_inputline("soundcpu", 0); RST_NEG_BUFFER(config, "soundirq", 0).int_callback().set_inputline("soundcpu", 0);
MCFG_DEVICE_ADD("m72", IREM_M72_AUDIO) IREM_M72_AUDIO(config, m_audio);
ym2151_device &ymsnd(YM2151(config, "ymsnd", 3.579545_MHz_XTAL)); ym2151_device &ymsnd(YM2151(config, "ymsnd", 3.579545_MHz_XTAL));
ymsnd.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w)); ymsnd.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w));
ymsnd.add_route(0, "lspeaker", 0.55); ymsnd.add_route(0, "lspeaker", 0.55);
ymsnd.add_route(1, "rspeaker", 0.55); ymsnd.add_route(1, "rspeaker", 0.55);
MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) // unknown DAC dac_8bit_r2r_device &dac(DAC_8BIT_R2R(config, "dac", 0)); // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) dac.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) dac.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
MACHINE_CONFIG_END voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}

View File

@ -9,6 +9,7 @@
#include "machine/timer.h" #include "machine/timer.h"
#include "sound/ym2151.h" #include "sound/ym2151.h"
#include "emupal.h" #include "emupal.h"
#include "screen.h"
class deadang_state : public driver_device class deadang_state : public driver_device
{ {
@ -20,10 +21,12 @@ public:
m_video_data(*this, "video_data"), m_video_data(*this, "video_data"),
m_spriteram(*this, "spriteram"), m_spriteram(*this, "spriteram"),
m_gfxdecode(*this, "gfxdecode"), m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"), m_palette(*this, "palette"),
m_seibu_sound(*this, "seibu_sound"), m_seibu_sound(*this, "seibu_sound"),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_subcpu(*this, "sub"), m_subcpu(*this, "sub"),
m_audiocpu(*this, "audiocpu"),
m_adpcm1(*this, "adpcm1"), m_adpcm1(*this, "adpcm1"),
m_adpcm2(*this, "adpcm2") m_adpcm2(*this, "adpcm2")
{ } { }
@ -51,6 +54,7 @@ protected:
required_shared_ptr<uint16_t> m_video_data; required_shared_ptr<uint16_t> m_video_data;
required_shared_ptr<uint16_t> m_spriteram; required_shared_ptr<uint16_t> m_spriteram;
required_device<gfxdecode_device> m_gfxdecode; required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;
required_device<seibu_sound_device> m_seibu_sound; required_device<seibu_sound_device> m_seibu_sound;
@ -68,9 +72,9 @@ protected:
void sound_decrypted_opcodes_map(address_map &map); void sound_decrypted_opcodes_map(address_map &map);
void sound_map(address_map &map); void sound_map(address_map &map);
private:
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu; required_device<cpu_device> m_subcpu;
required_device<cpu_device> m_audiocpu;
optional_device<seibu_adpcm_device> m_adpcm1; optional_device<seibu_adpcm_device> m_adpcm1;
optional_device<seibu_adpcm_device> m_adpcm2; optional_device<seibu_adpcm_device> m_adpcm2;

View File

@ -38,6 +38,7 @@ public:
m_soundlatch(*this, "soundlatch"), m_soundlatch(*this, "soundlatch"),
m_soundlatch2(*this, "soundlatch2"), m_soundlatch2(*this, "soundlatch2"),
m_soundlatch_z(*this, "soundlatch_z"), m_soundlatch_z(*this, "soundlatch_z"),
m_scantimer(*this, "scantimer"),
m_rom_maincpu(*this, "maincpu"), m_rom_maincpu(*this, "maincpu"),
m_io_system(*this, "SYSTEM"), m_io_system(*this, "SYSTEM"),
m_io_p1(*this, "P1"), m_io_p1(*this, "P1"),
@ -100,6 +101,7 @@ private:
optional_device<generic_latch_16_device> m_soundlatch; optional_device<generic_latch_16_device> m_soundlatch;
optional_device<generic_latch_16_device> m_soundlatch2; optional_device<generic_latch_16_device> m_soundlatch2;
optional_device<generic_latch_8_device> m_soundlatch_z; optional_device<generic_latch_8_device> m_soundlatch_z;
optional_device<timer_device> m_scantimer;
required_region_ptr<uint16_t> m_rom_maincpu; required_region_ptr<uint16_t> m_rom_maincpu;
required_ioport m_io_system; required_ioport m_io_system;
required_ioport m_io_p1; required_ioport m_io_p1;

View File

@ -6,14 +6,15 @@
#pragma once #pragma once
#include "sound/okim6295.h"
#include "audio/seibu.h" #include "audio/seibu.h"
#include "machine/nmk004.h"
#include "machine/gen_latch.h" #include "machine/gen_latch.h"
#include "machine/nmk004.h"
#include "machine/timer.h" #include "machine/timer.h"
#include "sound/okim6295.h"
#include "emupal.h" #include "emupal.h"
#include "screen.h"
class nmk16_state : public driver_device, protected seibu_sound_common class nmk16_state : public driver_device, public seibu_sound_common
{ {
public: public:
nmk16_state(const machine_config &mconfig, device_type type, const char *tag) : nmk16_state(const machine_config &mconfig, device_type type, const char *tag) :
@ -22,6 +23,7 @@ public:
m_audiocpu(*this, "audiocpu"), m_audiocpu(*this, "audiocpu"),
m_oki(*this, "oki%u", 1U), m_oki(*this, "oki%u", 1U),
m_gfxdecode(*this, "gfxdecode"), m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"), m_palette(*this, "palette"),
m_nmk004(*this, "nmk004"), m_nmk004(*this, "nmk004"),
m_soundlatch(*this, "soundlatch"), m_soundlatch(*this, "soundlatch"),
@ -106,6 +108,7 @@ protected:
optional_device<cpu_device> m_audiocpu; optional_device<cpu_device> m_audiocpu;
optional_device_array<okim6295_device, 2> m_oki; optional_device_array<okim6295_device, 2> m_oki;
required_device<gfxdecode_device> m_gfxdecode; required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;
optional_device<nmk004_device> m_nmk004; optional_device<nmk004_device> m_nmk004;
optional_device<generic_latch_8_device> m_soundlatch; optional_device<generic_latch_8_device> m_soundlatch;
@ -171,6 +174,10 @@ protected:
DECLARE_WRITE16_MEMBER(nmk16_bioship_x0016_w); DECLARE_WRITE16_MEMBER(nmk16_bioship_x0016_w);
void save_protregs(); void save_protregs();
void set_hacky_interrupt_timing(machine_config &config);
void set_hacky_screen_lowres(machine_config &config);
void set_hacky_screen_hires(machine_config &config);
TILEMAP_MAPPER_MEMBER(tilemap_scan_pages); TILEMAP_MAPPER_MEMBER(tilemap_scan_pages);
template<int Layer, int Gfx> TILE_GET_INFO_MEMBER(common_get_bg_tile_info); template<int Layer, int Gfx> TILE_GET_INFO_MEMBER(common_get_bg_tile_info);
TILE_GET_INFO_MEMBER(common_get_tx_tile_info); TILE_GET_INFO_MEMBER(common_get_tx_tile_info);

View File

@ -12,6 +12,7 @@ public:
powerins_state(const machine_config &mconfig, device_type type, const char *tag) : powerins_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu"),
m_gfxdecode(*this, "gfxdecode"), m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"), m_screen(*this, "screen"),
m_palette(*this, "palette"), m_palette(*this, "palette"),
@ -27,6 +28,7 @@ public:
private: private:
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_soundcpu;
required_device<gfxdecode_device> m_gfxdecode; required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen; required_device<screen_device> m_screen;
required_device<palette_device> m_palette; required_device<palette_device> m_palette;