mirror of
https://github.com/holub/mame
synced 2025-10-06 09:00:04 +03:00
-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:
parent
8b0b606eb5
commit
48a83d5c2f
@ -11,9 +11,6 @@
|
||||
struct ssg_callbacks;
|
||||
|
||||
|
||||
#define MCFG_YM2203_IRQ_HANDLER(cb) \
|
||||
downcast<ym2203_device &>(*device).set_irq_handler((DEVCB_##cb));
|
||||
|
||||
class ym2203_device : public ay8910_device
|
||||
{
|
||||
public:
|
||||
|
@ -517,16 +517,16 @@ void angelkds_state::machine_reset()
|
||||
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))
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
MCFG_DEVICE_IO_MAP(main_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)
|
||||
Z80(config, m_subcpu, XTAL(4'000'000));
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &angelkds_state::sub_map);
|
||||
m_subcpu->set_addrmap(AS_IO, &angelkds_state::sub_portmap);
|
||||
|
||||
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
|
||||
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_pc_callback().set_ioport("I82");
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||
config.m_minimum_quantum = attotime::from_hz(6000);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(angelkds_state, screen_update_angelkds)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(32*8, 32*8);
|
||||
screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
|
||||
screen.set_screen_update(FUNC(angelkds_state::screen_update_angelkds));
|
||||
screen.set_palette("palette");
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, "palette", gfx_angelkds);
|
||||
PALETTE(config, "palette").set_format(palette_device::xBGR_444, 0x100);
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(4'000'000))
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("sub", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.65)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.65)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.65)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.45)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", XTAL(4'000'000)));
|
||||
ym1.irq_handler().set_inputline(m_subcpu, 0);
|
||||
ym1.add_route(0, "mono", 0.65);
|
||||
ym1.add_route(1, "mono", 0.65);
|
||||
ym1.add_route(2, "mono", 0.65);
|
||||
ym1.add_route(3, "mono", 0.45);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(4'000'000))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.65)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.65)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.65)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.45)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ym2(YM2203(config, "ym2", XTAL(4'000'000)));
|
||||
ym2.add_route(0, "mono", 0.65);
|
||||
ym2.add_route(1, "mono", 0.65);
|
||||
ym2.add_route(2, "mono", 0.65);
|
||||
ym2.add_route(3, "mono", 0.45);
|
||||
}
|
||||
|
||||
void angelkds_state::spcpostn(machine_config &config)
|
||||
{
|
||||
|
@ -483,31 +483,31 @@ static GFXDECODE_START( gfx_butasan )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(argus_state::argus)
|
||||
|
||||
void argus_state::argus(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 4 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(argus_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", argus_state, scanline, "screen", 0, 1)
|
||||
Z80(config, m_maincpu, 5000000); /* 4 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &argus_state::argus_map);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(argus_state::scanline), "screen", 0, 1);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 5000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map_a)
|
||||
MCFG_DEVICE_IO_MAP(sound_portmap_1)
|
||||
Z80(config, m_audiocpu, 5000000);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_a);
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(54)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */)
|
||||
MCFG_SCREEN_SIZE(32*16, 32*16)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_argus)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(54);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is referred to psychic5 driver */
|
||||
m_screen->set_size(32*16, 32*16);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(argus_state::screen_update_argus));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_argus)
|
||||
MCFG_PALETTE_ADD("palette", 896)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_argus);
|
||||
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_RESET_OVERRIDE(argus_state,argus)
|
||||
@ -517,39 +517,39 @@ MACHINE_CONFIG_START(argus_state::argus)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 6000000 / 4)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(argus_state::valtric)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 6000000 / 4));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.50);
|
||||
}
|
||||
|
||||
void argus_state::valtric(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 5 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(valtric_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", argus_state, scanline, "screen", 0, 1)
|
||||
Z80(config, m_maincpu, 5000000); /* 5 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &argus_state::valtric_map);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(argus_state::scanline), "screen", 0, 1);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 5000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map_a)
|
||||
MCFG_DEVICE_IO_MAP(sound_portmap_2)
|
||||
Z80(config, m_audiocpu, 5000000);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_a);
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(54)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */)
|
||||
MCFG_SCREEN_SIZE(32*16, 32*16)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_valtric)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(54);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is referred to psychic5 driver */
|
||||
m_screen->set_size(32*16, 32*16);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(argus_state::screen_update_valtric));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_valtric)
|
||||
MCFG_PALETTE_ADD("palette", 768)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_valtric);
|
||||
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_RESET_OVERRIDE(argus_state,valtric)
|
||||
@ -559,45 +559,45 @@ MACHINE_CONFIG_START(argus_state::valtric)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 6000000 / 4)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.50)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 6000000 / 4));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.50);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 6000000 / 4)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(argus_state::butasan)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 6000000 / 4));
|
||||
ym2.add_route(0, "mono", 0.15);
|
||||
ym2.add_route(1, "mono", 0.15);
|
||||
ym2.add_route(2, "mono", 0.15);
|
||||
ym2.add_route(3, "mono", 0.50);
|
||||
}
|
||||
|
||||
void argus_state::butasan(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 5000000) /* 5 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(butasan_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", argus_state, butasan_scanline, "screen", 0, 1)
|
||||
Z80(config, m_maincpu, 5000000); /* 5 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &argus_state::butasan_map);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(argus_state::butasan_scanline), "screen", 0, 1);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 5000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map_b)
|
||||
MCFG_DEVICE_IO_MAP(sound_portmap_2)
|
||||
Z80(config, m_audiocpu, 5000000);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_b);
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(54)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is taken from psychic5 driver */)
|
||||
MCFG_SCREEN_SIZE(32*16, 32*16)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_butasan)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(54);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is taken from psychic5 driver */
|
||||
m_screen->set_size(32*16, 32*16);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
|
||||
m_screen->set_screen_update(FUNC(argus_state::screen_update_butasan));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_butasan)
|
||||
MCFG_PALETTE_ADD("palette", 768)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_butasan);
|
||||
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_RESET_OVERRIDE(argus_state,butasan)
|
||||
@ -607,19 +607,19 @@ MACHINE_CONFIG_START(argus_state::butasan)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 6000000 / 4)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 1.0)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 6000000 / 4));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.30);
|
||||
ym1.add_route(1, "mono", 0.30);
|
||||
ym1.add_route(2, "mono", 0.30);
|
||||
ym1.add_route(3, "mono", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 6000000 / 4)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 6000000 / 4));
|
||||
ym2.add_route(0, "mono", 0.30);
|
||||
ym2.add_route(1, "mono", 0.30);
|
||||
ym2.add_route(2, "mono", 0.30);
|
||||
ym2.add_route(3, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -289,16 +289,16 @@ void blktiger_state::machine_reset()
|
||||
m_i8751_latch = 0;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(blktiger_state::blktiger)
|
||||
|
||||
void blktiger_state::blktiger(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000)/4) /* verified on pcb */
|
||||
MCFG_DEVICE_PROGRAM_MAP(blktiger_map)
|
||||
MCFG_DEVICE_IO_MAP(blktiger_io_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", blktiger_state, irq0_line_hold)
|
||||
Z80(config, m_maincpu, XTAL(24'000'000)/4); /* verified on pcb */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &blktiger_state::blktiger_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &blktiger_state::blktiger_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(blktiger_state::irq0_line_hold));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(3'579'545)) /* verified on pcb */
|
||||
MCFG_DEVICE_PROGRAM_MAP(blktiger_sound_map)
|
||||
Z80(config, m_audiocpu, XTAL(3'579'545)); /* verified on pcb */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &blktiger_state::blktiger_sound_map);
|
||||
|
||||
I8751(config, m_mcu, XTAL(24'000'000)/4); /* ??? */
|
||||
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");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(blktiger_state, screen_update_blktiger)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(32*8, 32*8);
|
||||
screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
screen.set_screen_update(FUNC(blktiger_state::screen_update_blktiger));
|
||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
||||
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);
|
||||
|
||||
@ -329,21 +329,21 @@ MACHINE_CONFIG_START(blktiger_state::blktiger)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(3'579'545)) /* verified on pcb */
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", XTAL(3'579'545))); /* verified on pcb */
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(3'579'545)) /* verified on pcb */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ym2(YM2203(config, "ym2", XTAL(3'579'545))); /* verified on pcb */
|
||||
ym2.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(blktiger_state::blktigerbl)
|
||||
void blktiger_state::blktigerbl(machine_config &config)
|
||||
{
|
||||
blktiger(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_IO_MAP(blktigerbl_io_map)
|
||||
m_maincpu->set_addrmap(AS_IO, &blktiger_state::blktigerbl_io_map);
|
||||
|
||||
MCFG_DEVICE_REMOVE("mcu")
|
||||
MACHINE_CONFIG_END
|
||||
config.device_remove("mcu");
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -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 */
|
||||
MCFG_DEVICE_ADD("maincpu", HD6309, MAIN_CLOCK / 2) /* 1.5 MHz (12MHz oscillator / 4 internally) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chinagat_state, chinagat_scanline, "screen", 0, 1)
|
||||
HD6309(config, m_maincpu, MAIN_CLOCK / 2); /* 1.5 MHz (12MHz oscillator / 4 internally) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map);
|
||||
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) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sub_map)
|
||||
HD6309(config, m_subcpu, MAIN_CLOCK / 2); /* 1.5 MHz (12MHz oscillator / 4 internally) */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map);
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(3'579'545)) /* 3.579545 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz */
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */
|
||||
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */
|
||||
m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat);
|
||||
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(1, "mono", 0.80);
|
||||
|
||||
MCFG_DEVICE_ADD("oki", OKIM6295, 1065000, okim6295_device::PIN7_HIGH) // pin 7 not verified, clock frequency estimated with recording
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(chinagat_state::saiyugoub1)
|
||||
okim6295_device &oki(OKIM6295(config, "oki", 1065000, okim6295_device::PIN7_HIGH)); // pin 7 not verified, clock frequency estimated with recording
|
||||
oki.add_route(ALL_OUTPUTS, "mono", 0.80);
|
||||
}
|
||||
|
||||
void chinagat_state::saiyugoub1(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, MAIN_CLOCK / 8) /* 68B09EP 1.5 MHz (12MHz oscillator) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chinagat_state, chinagat_scanline, "screen", 0, 1)
|
||||
MC6809E(config, m_maincpu, MAIN_CLOCK / 8); /* 68B09EP 1.5 MHz (12MHz oscillator) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map);
|
||||
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) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sub_map)
|
||||
MC6809E(config, m_subcpu, MAIN_CLOCK / 8); /* 68B09EP 1.5 MHz (12MHz oscillator) */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map);
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(3'579'545)) /* 3.579545 MHz oscillator */
|
||||
MCFG_DEVICE_PROGRAM_MAP(saiyugoub1_sound_map)
|
||||
Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz oscillator */
|
||||
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 */
|
||||
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.p2_out_cb().set(FUNC(chinagat_state::saiyugoub1_adpcm_control_w));
|
||||
|
||||
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */
|
||||
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */
|
||||
m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat);
|
||||
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(1, "mono", 0.80);
|
||||
|
||||
MCFG_DEVICE_ADD("adpcm", MSM5205, 9263750 / 24)
|
||||
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, chinagat_state, saiyugoub1_m5205_irq_w)) /* Interrupt function */
|
||||
MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* vclk input mode (6030Hz, 4-bit) */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(chinagat_state::saiyugoub2)
|
||||
MSM5205(config, m_adpcm, 9263750 / 24);
|
||||
m_adpcm->vck_legacy_callback().set(FUNC(chinagat_state::saiyugoub1_m5205_irq_w)); /* Interrupt function */
|
||||
m_adpcm->set_prescaler_selector(msm5205_device::S64_4B); /* vclk input mode (6030Hz, 4-bit) */
|
||||
m_adpcm->add_route(ALL_OUTPUTS, "mono", 0.60);
|
||||
}
|
||||
|
||||
void chinagat_state::saiyugoub2(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", MC6809E, MAIN_CLOCK / 8) /* 1.5 MHz (12MHz oscillator) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chinagat_state, chinagat_scanline, "screen", 0, 1)
|
||||
MC6809E(config, m_maincpu, MAIN_CLOCK / 8); /* 1.5 MHz (12MHz oscillator) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &chinagat_state::main_map);
|
||||
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) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sub_map)
|
||||
MC6809E(config, m_subcpu, MAIN_CLOCK / 8); /* 1.5 MHz (12MHz oscillator) */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &chinagat_state::sub_map);
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(3'579'545)) /* 3.579545 MHz oscillator */
|
||||
MCFG_DEVICE_PROGRAM_MAP(ym2203c_sound_map)
|
||||
Z80(config, m_soundcpu, XTAL(3'579'545)); /* 3.579545 MHz oscillator */
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */
|
||||
MCFG_SCREEN_UPDATE_DRIVER(chinagat_state, screen_update_ddragon)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240); /* based on ddragon driver */
|
||||
m_screen->set_screen_update(FUNC(chinagat_state::screen_update_ddragon));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_chinagat);
|
||||
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);
|
||||
m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, INPUT_LINE_NMI);
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 3579545)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("soundcpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.80)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 3579545));
|
||||
ym1.irq_handler().set_inputline(m_soundcpu, 0);
|
||||
ym1.add_route(0, "mono", 0.50);
|
||||
ym1.add_route(1, "mono", 0.50);
|
||||
ym1.add_route(2, "mono", 0.50);
|
||||
ym1.add_route(3, "mono", 0.80);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 3579545)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.50)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.50)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.50)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 3579545));
|
||||
ym2.add_route(0, "mono", 0.50);
|
||||
ym2.add_route(1, "mono", 0.50);
|
||||
ym2.add_route(2, "mono", 0.50);
|
||||
ym2.add_route(3, "mono", 0.80);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -344,36 +344,36 @@ TIMER_DEVICE_CALLBACK_MEMBER(deadang_state::sub_scanline)
|
||||
|
||||
/* Machine Drivers */
|
||||
|
||||
MACHINE_CONFIG_START(deadang_state::deadang)
|
||||
|
||||
void deadang_state::deadang(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", V30,XTAL(16'000'000)/2) /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(main_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer1", deadang_state, main_scanline, "screen", 0, 1)
|
||||
V30(config, m_maincpu, XTAL(16'000'000)/2); /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &deadang_state::main_map);
|
||||
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) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sub_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer2", deadang_state, sub_scanline, "screen", 0, 1)
|
||||
V30(config, m_subcpu, XTAL(16'000'000)/2); /* Sony 8623h9 CXQ70116D-8 (V30 compatible) */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &deadang_state::sub_map);
|
||||
TIMER(config, "scantimer2").configure_scanline(FUNC(deadang_state::sub_scanline), "screen", 0, 1);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(14'318'181)/4)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
MCFG_DEVICE_OPCODES_MAP(sound_decrypted_opcodes_map)
|
||||
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("seibu_sound", seibu_sound_device, im0_vector_cb)
|
||||
Z80(config, m_audiocpu, XTAL(14'318'181)/4);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &deadang_state::sound_map);
|
||||
m_audiocpu->set_addrmap(AS_OPCODES, &deadang_state::sound_decrypted_opcodes_map);
|
||||
m_audiocpu->set_irq_acknowledge_callback("seibu_sound", FUNC(seibu_sound_device::im0_vector_cb));
|
||||
|
||||
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");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(deadang_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(deadang_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_deadang);
|
||||
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();
|
||||
|
||||
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_rombank_tag("seibu_bank1");
|
||||
m_seibu_sound->ym_read_callback().set("ym1", FUNC(ym2203_device::read));
|
||||
m_seibu_sound->ym_write_callback().set("ym1", FUNC(ym2203_device::write));
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(14'318'181)/4)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE("seibu_sound", seibu_sound_device, fm_irqhandler))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", XTAL(14'318'181)/4));
|
||||
ym1.irq_handler().set("seibu_sound", FUNC(seibu_sound_device::fm_irqhandler));
|
||||
ym1.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(14'318'181)/4)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", XTAL(14'318'181)/4));
|
||||
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_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);
|
||||
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(popnrun_main_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_main_map);
|
||||
|
||||
MCFG_DEVICE_MODIFY("sub")
|
||||
MCFG_DEVICE_PROGRAM_MAP(popnrun_sub_map)
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_sub_map);
|
||||
|
||||
MCFG_DEVICE_MODIFY("audiocpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(popnrun_sound_map)
|
||||
MCFG_DEVICE_OPCODES_MAP(sound_decrypted_opcodes_map)
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_sound_map);
|
||||
m_audiocpu->set_addrmap(AS_OPCODES, &popnrun_state::sound_decrypted_opcodes_map);
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(popnrun_state, popnrun_screen_update)
|
||||
m_screen->set_screen_update(FUNC(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")
|
||||
MCFG_DEVICE_REMOVE("ym2")
|
||||
MCFG_DEVICE_REMOVE("adpcm1")
|
||||
MCFG_DEVICE_REMOVE("adpcm2")
|
||||
config.device_remove("ym1");
|
||||
config.device_remove("ym2");
|
||||
config.device_remove("adpcm1");
|
||||
config.device_remove("adpcm2");
|
||||
|
||||
m_seibu_sound->ym_read_callback().set("ymsnd", FUNC(ym2151_device::read));
|
||||
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.add_route(0, "mono", 0.50);
|
||||
ymsnd.add_route(1, "mono", 0.50);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
/* ROMs */
|
||||
|
@ -750,28 +750,27 @@ static GFXDECODE_START( gfx_drgnbowl )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(gaiden_state::shadoww)
|
||||
|
||||
void gaiden_state::shadoww(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, 18432000/2) /* 9.216 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(gaiden_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaiden_state, irq5_line_assert)
|
||||
M68000(config, m_maincpu, 18432000/2); /* 9.216 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::gaiden_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(gaiden_state::irq5_line_assert));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
/* IRQs are triggered by the YM2203 */
|
||||
Z80(config, m_audiocpu, 4000000); /* 4 MHz */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &gaiden_state::sound_map); /* IRQs are triggered by the YM2203 */
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
BUFFERED_SPRITERAM16(config, m_spriteram);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(59.17); /* verified on pcb */
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 4*8, 32*8-1);
|
||||
m_screen->set_screen_update(FUNC(gaiden_state::screen_update_gaiden));
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_gaiden);
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 4000000)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.60)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 4000000));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.60);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 4000000)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.60)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 4000000));
|
||||
ym2.add_route(0, "mono", 0.15);
|
||||
ym2.add_route(1, "mono", 0.15);
|
||||
ym2.add_route(2, "mono", 0.15);
|
||||
ym2.add_route(3, "mono", 0.60);
|
||||
|
||||
MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
|
||||
MACHINE_CONFIG_END
|
||||
okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH));
|
||||
oki.add_route(ALL_OUTPUTS, "mono", 0.20);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(gaiden_state::wildfang)
|
||||
void gaiden_state::wildfang(machine_config &config)
|
||||
{
|
||||
shadoww(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(wildfang_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::wildfang_map);
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", I8749, 4_MHz_XTAL)
|
||||
MCFG_DEVICE_DISABLE()
|
||||
MACHINE_CONFIG_END
|
||||
I8749(config, "mcu", 4_MHz_XTAL).set_disable();
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(gaiden_state::raiga)
|
||||
void gaiden_state::raiga(machine_config &config)
|
||||
{
|
||||
shadoww(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(raiga_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::raiga_map);
|
||||
|
||||
MCFG_DEVICE_ADD("mcu", I8749, 4_MHz_XTAL)
|
||||
MCFG_DEVICE_DISABLE()
|
||||
I8749(config, "mcu", 4_MHz_XTAL).set_disable();
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(gaiden_state,raiga)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(gaiden_state,raiga)
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_raiga)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising))
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(gaiden_state::drgnbowl)
|
||||
m_screen->set_screen_update(FUNC(gaiden_state::screen_update_raiga));
|
||||
m_screen->screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
||||
}
|
||||
|
||||
void gaiden_state::drgnbowl(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, 20000000/2) /* 10 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(drgnbowl_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaiden_state, irq5_line_assert)
|
||||
M68000(config, m_maincpu, 20000000/2); /* 10 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::drgnbowl_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(gaiden_state::irq5_line_assert));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/2) /* 6 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(drgnbowl_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(drgnbowl_sound_port_map)
|
||||
Z80(config, m_audiocpu, 12000000/2); /* 6 MHz */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &gaiden_state::drgnbowl_sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &gaiden_state::drgnbowl_sound_port_map);
|
||||
|
||||
/* video hardware */
|
||||
BUFFERED_SPRITERAM16(config, m_spriteram);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(gaiden_state::screen_update_drgnbowl));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_drgnbowl);
|
||||
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);
|
||||
|
||||
OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/*
|
||||
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));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(gaiden_state::mastninj)
|
||||
|
||||
void gaiden_state::mastninj(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, 10000000) /* 10 MHz? */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mastninj_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaiden_state, irq5_line_assert)
|
||||
M68000(config, m_maincpu, 10000000); /* 10 MHz? */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &gaiden_state::mastninj_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(gaiden_state::irq5_line_assert));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* ?? MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(mastninj_sound_map)
|
||||
Z80(config, m_audiocpu, 4000000); /* ?? MHz */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &gaiden_state::mastninj_sound_map);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(gaiden_state,mastninj)
|
||||
|
||||
@ -1008,13 +1003,13 @@ MACHINE_CONFIG_START(gaiden_state::mastninj)
|
||||
/* video hardware */
|
||||
BUFFERED_SPRITERAM16(config, m_spriteram);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(gaiden_state::screen_update_drgnbowl));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_mastninj);
|
||||
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);
|
||||
|
||||
// YM2203 clocks chosen by analogy with Automat; actual rate unknown, but 4 MHz is obviously too fast
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 1250000)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.60)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 1250000));
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.60);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 1250000)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.60)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 1250000));
|
||||
ym2.add_route(0, "mono", 0.15);
|
||||
ym2.add_route(1, "mono", 0.15);
|
||||
ym2.add_route(2, "mono", 0.15);
|
||||
ym2.add_route(3, "mono", 0.60);
|
||||
|
||||
LS157(config, m_adpcm_select[0], 0);
|
||||
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);
|
||||
m_msm[1]->set_prescaler_selector(msm5205_device::SEX_4B);
|
||||
m_msm[1]->add_route(ALL_OUTPUTS, "mono", 0.20);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -296,27 +296,25 @@ void goal92_state::machine_reset()
|
||||
m_adpcm_toggle = 0;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(goal92_state::goal92)
|
||||
|
||||
void goal92_state::goal92(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000,12000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(goal92_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", 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 */
|
||||
M68000(config, m_maincpu, 12000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &goal92_state::goal92_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(goal92_state::irq6_line_hold)); /* VBL */
|
||||
|
||||
Z80(config, m_audiocpu, 2500000);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &goal92_state::sound_cpu); /* IRQs are triggered by the main CPU */
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_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...
|
||||
MCFG_SCREEN_UPDATE_DRIVER(goal92_state, screen_update_goal92)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, goal92_state, screen_vblank_goal92))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(40*8, 32*8);
|
||||
screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); // black border at bottom is a game bug...
|
||||
screen.set_screen_update(FUNC(goal92_state::screen_update_goal92));
|
||||
screen.screen_vblank().set(FUNC(goal92_state::screen_vblank_goal92));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_goal92);
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 2500000/2)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, goal92_state, irqhandler))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 2500000/2));
|
||||
ym1.irq_handler().set(FUNC(goal92_state::irqhandler));
|
||||
ym1.add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 2500000/2)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 2500000/2));
|
||||
ym2.add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
|
||||
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
|
||||
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, goal92_state, goal92_adpcm_int)) /* interrupt function */
|
||||
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
MACHINE_CONFIG_END
|
||||
MSM5205(config, m_msm, 384000);
|
||||
m_msm->vck_legacy_callback().set(FUNC(goal92_state::goal92_adpcm_int)); /* interrupt function */
|
||||
m_msm->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */
|
||||
m_msm->add_route(ALL_OUTPUTS, "mono", 0.60);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
|
@ -426,17 +426,17 @@ void himesiki_state::machine_reset()
|
||||
m_flipscreen = 0;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(himesiki_state::himesiki)
|
||||
|
||||
void himesiki_state::himesiki(machine_config &config)
|
||||
{
|
||||
/* 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 */
|
||||
MCFG_DEVICE_PROGRAM_MAP(himesiki_prm0)
|
||||
MCFG_DEVICE_IO_MAP(himesiki_iom0)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", himesiki_state, irq0_line_hold)
|
||||
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 */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &himesiki_state::himesiki_prm0);
|
||||
m_maincpu->set_addrmap(AS_IO, &himesiki_state::himesiki_iom0);
|
||||
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) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(himesiki_prm1)
|
||||
MCFG_DEVICE_IO_MAP(himesiki_iom1)
|
||||
Z80(config, m_subcpu, CLK2/2); /* 4.000 MHz (4Mhz rated part, near the 8 Mhz XTAL) */
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &himesiki_state::himesiki_prm1);
|
||||
m_subcpu->set_addrmap(AS_IO, &himesiki_state::himesiki_iom1);
|
||||
|
||||
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
|
||||
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));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(himesiki_state, screen_update_himesiki)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
|
||||
screen.set_size(32*8, 32*8);
|
||||
screen.set_visarea(0*8, 32*8-1, 0*8, 24*8-1);
|
||||
screen.set_screen_update(FUNC(himesiki_state::screen_update_himesiki));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_himesiki);
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2203", YM2203, CLK2/4) // ??
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("sub", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.10)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.10)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.10)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.50)
|
||||
ym2203_device &ym2203(YM2203(config, "ym2203", CLK2/4)); // ??
|
||||
ym2203.irq_handler().set_inputline("sub", 0);
|
||||
ym2203.add_route(0, "mono", 0.10);
|
||||
ym2203.add_route(1, "mono", 0.10);
|
||||
ym2203.add_route(2, "mono", 0.10);
|
||||
ym2203.add_route(3, "mono", 0.50);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
@ -514,33 +514,33 @@ void lastduel_state::machine_reset()
|
||||
m_vctrl[i] = 0;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(lastduel_state::lastduel)
|
||||
|
||||
void lastduel_state::lastduel(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, 10000000) // Unconfirmed - could be 8MHz
|
||||
MCFG_DEVICE_PROGRAM_MAP(lastduel_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", lastduel_state, irq2_line_hold)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_irq", lastduel_state, lastduel_timer_cb, attotime::from_hz(120))
|
||||
M68000(config, m_maincpu, 10000000); // Unconfirmed - could be 8MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &lastduel_state::lastduel_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(lastduel_state::irq2_line_hold));
|
||||
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))
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
Z80(config, m_audiocpu, XTAL(3'579'545));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &lastduel_state::sound_map);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(lastduel_state,lastduel)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_lastduel)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
|
||||
screen.set_screen_update(FUNC(lastduel_state::screen_update_lastduel));
|
||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
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);
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(lastduel_state,lastduel)
|
||||
@ -550,42 +550,41 @@ MACHINE_CONFIG_START(lastduel_state::lastduel)
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(3'579'545))
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", XTAL(3'579'545)));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(ALL_OUTPUTS, "mono", 0.40);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(3'579'545))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(lastduel_state::madgear)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", XTAL(3'579'545)));
|
||||
ym2.add_route(ALL_OUTPUTS, "mono", 0.40);
|
||||
}
|
||||
|
||||
void lastduel_state::madgear(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(10'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(madgear_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", lastduel_state, irq5_line_hold)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_irq", lastduel_state, madgear_timer_cb, attotime::from_hz(120))
|
||||
M68000(config, m_maincpu, XTAL(10'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &lastduel_state::madgear_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(lastduel_state::irq5_line_hold));
|
||||
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))
|
||||
MCFG_DEVICE_PROGRAM_MAP(madgear_sound_map)
|
||||
Z80(config, m_audiocpu, XTAL(3'579'545));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &lastduel_state::madgear_sound_map);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(lastduel_state,madgear)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
||||
MCFG_SCREEN_REFRESH_RATE(57.4444)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_madgear)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
|
||||
screen.set_refresh_hz(57.4444);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(8*8, (64-8)*8-1, 1*8, 31*8-1);
|
||||
screen.set_screen_update(FUNC(lastduel_state::screen_update_madgear));
|
||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
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);
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(lastduel_state,madgear)
|
||||
@ -595,16 +594,16 @@ MACHINE_CONFIG_START(lastduel_state::madgear)
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(3'579'545))
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", XTAL(3'579'545)));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(ALL_OUTPUTS, "mono", 0.40);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(3'579'545))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", XTAL(3'579'545)));
|
||||
ym2.add_route(ALL_OUTPUTS, "mono", 0.40);
|
||||
|
||||
MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(10'000'000)/10, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.98)
|
||||
MACHINE_CONFIG_END
|
||||
okim6295_device &oki(OKIM6295(config, "oki", XTAL(10'000'000)/10, okim6295_device::PIN7_HIGH));
|
||||
oki.add_route(ALL_OUTPUTS, "mono", 0.98);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
|
@ -488,34 +488,31 @@ void lkage_state::machine_reset()
|
||||
m_soundnmi->in_w<1>(0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(lkage_state::lkage)
|
||||
|
||||
void lkage_state::lkage(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(lkage_map_mcu)
|
||||
MCFG_DEVICE_IO_MAP(lkage_io_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", lkage_state, irq0_line_hold)
|
||||
Z80(config, m_maincpu, MAIN_CPU_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &lkage_state::lkage_map_mcu);
|
||||
m_maincpu->set_addrmap(AS_IO, &lkage_state::lkage_io_map);
|
||||
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 */
|
||||
|
||||
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU,MCU_CLOCK)
|
||||
Z80(config, m_audiocpu, SOUND_CPU_CLOCK);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &lkage_state::lkage_sound_map); /* IRQs are triggered by the YM2203 */
|
||||
|
||||
TAITO68705_MCU(config, m_bmcu, MCU_CLOCK);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(32*8, 32*8);
|
||||
screen.set_visarea(2*8, 32*8-1, 2*8, 30*8-1);
|
||||
screen.set_screen_update(FUNC(lkage_state::screen_update_lkage));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lkage);
|
||||
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 1024);
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, AUDIO_CLOCK )
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.40)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", AUDIO_CLOCK));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.40);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, AUDIO_CLOCK )
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.40)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(lkage_state::lkageb)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", AUDIO_CLOCK));
|
||||
ym2.add_route(0, "mono", 0.15);
|
||||
ym2.add_route(1, "mono", 0.15);
|
||||
ym2.add_route(2, "mono", 0.15);
|
||||
ym2.add_route(3, "mono", 0.40);
|
||||
}
|
||||
|
||||
void lkage_state::lkageb(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80,MAIN_CPU_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(lkage_map_boot)
|
||||
MCFG_DEVICE_IO_MAP(lkage_io_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", 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_maincpu, MAIN_CPU_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &lkage_state::lkage_map_boot);
|
||||
m_maincpu->set_addrmap(AS_IO, &lkage_state::lkage_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(lkage_state::irq0_line_hold));
|
||||
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(32*8, 32*8);
|
||||
screen.set_visarea(2*8, 32*8-1, 2*8, 30*8-1);
|
||||
screen.set_screen_update(FUNC(lkage_state::screen_update_lkage));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_lkage);
|
||||
PALETTE(config, m_palette).set_format(palette_device::xRGB_444, 1024);
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, AUDIO_CLOCK)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.40)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", AUDIO_CLOCK));
|
||||
ym1.irq_handler().set_inputline("audiocpu", 0);
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.40);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, AUDIO_CLOCK)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.40)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ym2(YM2203(config, "ym2", AUDIO_CLOCK));
|
||||
ym2.add_route(0, "mono", 0.15);
|
||||
ym2.add_route(1, "mono", 0.15);
|
||||
ym2.add_route(2, "mono", 0.15);
|
||||
ym2.add_route(3, "mono", 0.40);
|
||||
}
|
||||
|
||||
ROM_START( lkage )
|
||||
ROM_REGION( 0x14000, "maincpu", 0 ) /* Z80 code (main CPU) */
|
||||
|
@ -1681,31 +1681,30 @@ GFXDECODE_END
|
||||
|
||||
/* 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 */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, SYS_A_CPU_CLOCK) /* 6MHz verified */
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1A_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1A_scanline, "screen", 0, 1)
|
||||
M68000(config, m_maincpu, SYS_A_CPU_CLOCK); /* 6MHz verified */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1A_map);
|
||||
TIMER(config, m_scantimer).configure_scanline(FUNC(megasys1_state::megasys1A_scanline), "screen", 0, 1);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", M68000, SOUND_CPU_CLOCK) /* 7MHz verified */
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1A_sound_map)
|
||||
M68000(config, m_audiocpu, SOUND_CPU_CLOCK); /* 7MHz verified */
|
||||
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)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
//MCFG_SCREEN_REFRESH_RATE(56.18) // same as nmk16.cpp based on YT videos.
|
||||
MCFG_SCREEN_RAW_PARAMS(SYS_A_CPU_CLOCK,406,0,256,263,16,240)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
//m_screen->set_refresh_hz(56.18); // same as nmk16.cpp based on YT videos.
|
||||
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)
|
||||
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)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_abc);
|
||||
PALETTE(config, m_palette, FUNC(megasys1_state::megasys1_palette)).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
|
||||
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(1, "rspeaker", 0.80);
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH) /* 4MHz verified */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
|
||||
OKIM6295(config, m_oki1, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH); /* 4MHz verified */
|
||||
m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 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 */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki2, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH); /* 4MHz verified */
|
||||
m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.30);
|
||||
m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.30);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(megasys1_state::system_A_hachoo)
|
||||
void megasys1_state::system_A_hachoo(machine_config &config)
|
||||
{
|
||||
system_A(config);
|
||||
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);
|
||||
config.device_remove("scantimer");
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1A_iganinju_scanline, "screen", 0, 1)
|
||||
MACHINE_CONFIG_END
|
||||
TIMER(config.replace(), m_scantimer).configure_scanline(FUNC(megasys1_state::megasys1A_iganinju_scanline), "screen", 0, 1);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(megasys1_state::kickoffb)
|
||||
void megasys1_state::kickoffb(machine_config &config)
|
||||
{
|
||||
system_A(config);
|
||||
MCFG_DEVICE_MODIFY("audiocpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(kickoffb_sound_map)
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::kickoffb_sound_map);
|
||||
|
||||
config.device_remove("ymsnd");
|
||||
config.device_remove("oki2");
|
||||
|
||||
MCFG_DEVICE_ADD("ymsnd", YM2203, SOUND_CPU_CLOCK / 2)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, megasys1_state, sound_irq)) // TODO: needs to be checked
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.80)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ymsnd(YM2203(config, "ymsnd", SOUND_CPU_CLOCK / 2));
|
||||
ymsnd.irq_handler().set(FUNC(megasys1_state::sound_irq)); // TODO: needs to be checked
|
||||
ymsnd.add_route(0, "lspeaker", 0.80);
|
||||
ymsnd.add_route(1, "rspeaker", 0.80);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(megasys1_state::system_B)
|
||||
void megasys1_state::system_B(machine_config &config)
|
||||
{
|
||||
system_A(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_CLOCK(SYS_B_CPU_CLOCK) /* 8MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1B_map)
|
||||
MCFG_TIMER_MODIFY("scantimer")
|
||||
MCFG_TIMER_DRIVER_CALLBACK(megasys1_state, megasys1B_scanline)
|
||||
m_maincpu->set_clock(SYS_B_CPU_CLOCK); /* 8MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_map);
|
||||
m_scantimer->set_callback(FUNC(megasys1_state::megasys1B_scanline));
|
||||
|
||||
MCFG_DEVICE_MODIFY("audiocpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1B_sound_map)
|
||||
MACHINE_CONFIG_END
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_sound_map);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(megasys1_state::system_B_monkelf)
|
||||
void megasys1_state::system_B_monkelf(machine_config &config)
|
||||
{
|
||||
system_B(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1B_monkelf_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(megasys1_state::system_Bbl)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_monkelf_map);
|
||||
}
|
||||
|
||||
void megasys1_state::system_Bbl(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, SYS_B_CPU_CLOCK)
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1B_edfbl_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1B_scanline, "screen", 0, 1)
|
||||
M68000(config, m_maincpu, SYS_B_CPU_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_edfbl_map);
|
||||
TIMER(config, m_scantimer).configure_scanline(FUNC(megasys1_state::megasys1B_scanline), "screen", 0, 1);
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(56.18) // same as nmk16.cpp based on YT videos.
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, megasys1_state, screen_vblank))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(56.18); // same as nmk16.cpp based on YT videos.
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
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_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);
|
||||
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
|
||||
|
||||
@ -1821,39 +1818,37 @@ MACHINE_CONFIG_START(megasys1_state::system_Bbl)
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
/* just the one OKI, used for sound and music */
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki1, OKI4_SOUND_CLOCK, okim6295_device::PIN7_HIGH);
|
||||
m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 0.30);
|
||||
m_oki1->add_route(ALL_OUTPUTS, "rspeaker", 0.30);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(megasys1_state::system_B_hayaosi1)
|
||||
void megasys1_state::system_B_hayaosi1(machine_config &config)
|
||||
{
|
||||
system_B(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
MCFG_DEVICE_REPLACE("oki1", OKIM6295, 2000000, okim6295_device::PIN7_HIGH) /* correct speed, but unknown OSC + divider combo */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
|
||||
OKIM6295(config.replace(), m_oki1, 2000000, okim6295_device::PIN7_HIGH); /* correct speed, but unknown OSC + divider combo */
|
||||
m_oki1->add_route(ALL_OUTPUTS, "lspeaker", 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 */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config.replace(), m_oki2, 2000000, okim6295_device::PIN7_HIGH); /* correct speed, but unknown OSC + divider combo */
|
||||
m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.30);
|
||||
m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.30);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(megasys1_state::system_C)
|
||||
void megasys1_state::system_C(machine_config &config)
|
||||
{
|
||||
system_A(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_CLOCK(SYS_C_CPU_CLOCK) /* 12MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1C_map)
|
||||
MCFG_TIMER_MODIFY("scantimer")
|
||||
MCFG_TIMER_DRIVER_CALLBACK(megasys1_state, megasys1B_scanline)
|
||||
m_maincpu->set_clock(SYS_C_CPU_CLOCK); /* 12MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1C_map);
|
||||
m_scantimer->set_callback(FUNC(megasys1_state::megasys1B_scanline));
|
||||
|
||||
MCFG_DEVICE_MODIFY("audiocpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1B_sound_map)
|
||||
MACHINE_CONFIG_END
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1B_sound_map);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -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 */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, SYS_D_CPU_CLOCK) /* 8MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1D_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", megasys1_state, megasys1D_irq)
|
||||
M68000(config, m_maincpu, SYS_D_CPU_CLOCK); /* 8MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1D_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(megasys1_state::megasys1D_irq));
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(megasys1_state,megasys1)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(56.18) // same as nmk16.cpp based on YT videos.
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, megasys1_state, screen_vblank))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(56.18); // same as nmk16.cpp based on YT videos.
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
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);
|
||||
|
||||
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);
|
||||
MCFG_VIDEO_START_OVERRIDE(megasys1_state,megasys1)
|
||||
|
||||
@ -1896,10 +1891,10 @@ MACHINE_CONFIG_START(megasys1_state::system_D)
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, SYS_D_CPU_CLOCK/4, okim6295_device::PIN7_HIGH) /* 2MHz (8MHz / 4) */
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, megasys1D_oki_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
OKIM6295(config, m_oki1, SYS_D_CPU_CLOCK/4, okim6295_device::PIN7_HIGH); /* 2MHz (8MHz / 4) */
|
||||
m_oki1->set_addrmap(0, &megasys1_state::megasys1D_oki_map);
|
||||
m_oki1->add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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 */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, SYS_A_CPU_CLOCK) /* 6MHz (12MHz / 2) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(megasys1Z_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", megasys1_state, megasys1A_scanline, "screen", 0, 1)
|
||||
M68000(config, m_maincpu, SYS_A_CPU_CLOCK); /* 6MHz (12MHz / 2) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &megasys1_state::megasys1Z_map);
|
||||
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 ??? */
|
||||
MCFG_DEVICE_PROGRAM_MAP(z80_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(z80_sound_io_map)
|
||||
Z80(config, m_audiocpu, 3000000); /* OSC 12MHz divided by 4 ??? */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &megasys1_state::z80_sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &megasys1_state::z80_sound_io_map);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(56.18) // same as nmk16.cpp based on YT videos.
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(56.18); // same as nmk16.cpp based on YT videos.
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(megasys1_state::screen_update));
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("ymsnd", YM2203, 1500000)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ymsnd(YM2203(config, "ymsnd", 1500000));
|
||||
ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ymsnd.add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -313,25 +313,25 @@ void pkscram_state::machine_reset()
|
||||
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 */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, 8000000 )
|
||||
MCFG_DEVICE_PROGRAM_MAP(pkscramble_map)
|
||||
//MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pkscram_state, irq1_line_hold) /* only valid irq */
|
||||
M68000(config, m_maincpu, 8000000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &pkscram_state::pkscramble_map);
|
||||
//m_maincpu->set_vblank_int("screen", FUNC(pkscram_state::irq1_line_hold)); /* only valid irq */
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD("scan_timer", pkscram_state, scanline_callback)
|
||||
TIMER(config, m_scan_timer).configure_generic(FUNC(pkscram_state::scanline_callback));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(pkscram_state, screen_update_pkscramble)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 0*8, 24*8-1);
|
||||
m_screen->set_screen_update(FUNC(pkscram_state::screen_update_pkscramble));
|
||||
m_screen->set_palette("palette");
|
||||
|
||||
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x800);
|
||||
GFXDECODE(config, m_gfxdecode, "palette", gfx_pkscram);
|
||||
@ -339,10 +339,10 @@ MACHINE_CONFIG_START(pkscram_state::pkscramble)
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
MCFG_DEVICE_ADD("ymsnd", YM2203, 12000000/4)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, pkscram_state, irqhandler))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ymsnd(YM2203(config, "ymsnd", 12000000/4));
|
||||
ymsnd.irq_handler().set(FUNC(pkscram_state::irqhandler));
|
||||
ymsnd.add_route(ALL_OUTPUTS, "mono", 0.60);
|
||||
}
|
||||
|
||||
|
||||
ROM_START( pkscram )
|
||||
|
@ -287,25 +287,25 @@ MACHINE_START_MEMBER(powerins_state, powerinsa)
|
||||
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 */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(powerins_map)
|
||||
M68000(config, m_maincpu, 12000000); /* 12MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &powerins_state::powerins_map);
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", Z80, 6000000) /* 6 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(powerins_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(powerins_sound_io_map)
|
||||
Z80(config, m_soundcpu, 6000000); /* 6 MHz */
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &powerins_state::powerins_sound_map);
|
||||
m_soundcpu->set_addrmap(AS_IO, &powerins_state::powerins_sound_io_map);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(56)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(320, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+16, 256-16-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, powerins_state, screen_vblank))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(56);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(320, 256);
|
||||
m_screen->set_visarea(0, 320-1, 0+16, 256-16-1);
|
||||
m_screen->set_screen_update(FUNC(powerins_state::screen_update));
|
||||
m_screen->screen_vblank().set(FUNC(powerins_state::screen_vblank));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerins);
|
||||
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");
|
||||
|
||||
MCFG_DEVICE_ADD("oki1", OKIM6295, 4000000, okim6295_device::PIN7_LOW)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
|
||||
okim6295_device &oki1(OKIM6295(config, "oki1", 4000000, okim6295_device::PIN7_LOW));
|
||||
oki1.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
|
||||
MCFG_DEVICE_ADD("oki2", OKIM6295, 4000000, okim6295_device::PIN7_LOW)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
|
||||
okim6295_device &oki2(OKIM6295(config, "oki2", 4000000, okim6295_device::PIN7_LOW));
|
||||
oki2.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2203", YM2203, 12000000 / 8)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("soundcpu", 0))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0)
|
||||
ym2203_device &ym2203(YM2203(config, "ym2203", 12000000 / 8));
|
||||
ym2203.irq_handler().set_inputline(m_soundcpu, 0);
|
||||
ym2203.add_route(ALL_OUTPUTS, "mono", 2.0);
|
||||
|
||||
nmk112_device &nmk112(NMK112(config, "nmk112", 0));
|
||||
nmk112.set_rom0_tag("oki1");
|
||||
nmk112.set_rom1_tag("oki2");
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(powerins_state::powerinsa)
|
||||
void powerins_state::powerinsa(machine_config &config)
|
||||
{
|
||||
powerins(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(powerinsa_map)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &powerins_state::powerinsa_map);
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
m_screen->set_refresh_hz(60);
|
||||
|
||||
MCFG_DEVICE_REMOVE("soundcpu")
|
||||
config.device_remove("soundcpu");
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(powerins_state, powerinsa)
|
||||
|
||||
MCFG_DEVICE_REPLACE("oki1", OKIM6295, 990000, okim6295_device::PIN7_LOW) // pin7 not verified
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, powerinsa_oki_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
okim6295_device &oki1(OKIM6295(config.replace(), "oki1", 990000, okim6295_device::PIN7_LOW)); // pin7 not verified
|
||||
oki1.set_addrmap(0, &powerins_state::powerinsa_oki_map);
|
||||
oki1.add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
|
||||
MCFG_DEVICE_REMOVE("oki2")
|
||||
MCFG_DEVICE_REMOVE("ym2203")
|
||||
config.device_remove("oki2");
|
||||
config.device_remove("ym2203");
|
||||
config.device_remove("nmk112");
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(powerins_state::powerinsb)
|
||||
void powerins_state::powerinsb(machine_config &config)
|
||||
{
|
||||
powerins(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
m_screen->set_refresh_hz(60);
|
||||
|
||||
MCFG_DEVICE_MODIFY("soundcpu") /* 6 MHz */
|
||||
MCFG_DEVICE_IO_MAP(powerinsb_sound_io_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(powerins_state, irq0_line_hold, 120) // YM2203 rate is at 150??
|
||||
m_soundcpu->set_addrmap(AS_IO, &powerins_state::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_REMOVE("ym2203") // Sound code talks to one, but it's not fitted on the board
|
||||
MACHINE_CONFIG_END
|
||||
config.device_remove("ym2203"); // Sound code talks to one, but it's not fitted on the board
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -720,32 +720,32 @@ static GFXDECODE_START( gfx_bombsa )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(psychic5_state::psychic5)
|
||||
|
||||
void psychic5_state::psychic5(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2)
|
||||
MCFG_DEVICE_PROGRAM_MAP(psychic5_main_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", psychic5_state, scanline, "screen", 0, 1)
|
||||
Z80(config, m_maincpu, XTAL(12'000'000)/2);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_main_map);
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(5'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(psychic5_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(psychic5_soundport_map)
|
||||
Z80(config, m_audiocpu, XTAL(5'000'000));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_sound_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)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", 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
|
||||
MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_psychic5)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); // was 53.8 Hz before, assume same as Bombs Away
|
||||
screen.set_screen_update(FUNC(psychic5_state::screen_update_psychic5));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_psychic5)
|
||||
MCFG_PALETTE_ADD("palette", 768)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_psychic5);
|
||||
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_RESET_OVERRIDE(psychic5_state,psychic5)
|
||||
@ -755,44 +755,44 @@ MACHINE_CONFIG_START(psychic5_state::psychic5)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(12'000'000)/8)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.50)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000)/8));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.50);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(12'000'000)/8)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(psychic5_state::bombsa)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", XTAL(12'000'000)/8));
|
||||
ym2.add_route(0, "mono", 0.15);
|
||||
ym2.add_route(1, "mono", 0.15);
|
||||
ym2.add_route(2, "mono", 0.15);
|
||||
ym2.add_route(3, "mono", 0.50);
|
||||
}
|
||||
|
||||
void psychic5_state::bombsa(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2 ) /* 6 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(bombsa_main_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", psychic5_state, scanline, "screen", 0, 1)
|
||||
Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_main_map);
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(5'000'000) )
|
||||
MCFG_DEVICE_PROGRAM_MAP(bombsa_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(bombsa_soundport_map)
|
||||
Z80(config, m_audiocpu, XTAL(5'000'000));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_sound_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)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240) /* Guru says : VSync - 54Hz . HSync - 15.25kHz */
|
||||
MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_bombsa)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); /* Measured as: VSync 54Hz, HSync 15.25kHz */
|
||||
screen.set_screen_update(FUNC(psychic5_state::screen_update_bombsa));
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bombsa)
|
||||
MCFG_PALETTE_ADD("palette", 768)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bombsa);
|
||||
PALETTE(config, m_palette).set_entries(768);
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(psychic5_state,bombsa)
|
||||
MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5)
|
||||
@ -802,19 +802,19 @@ MACHINE_CONFIG_START(psychic5_state::bombsa)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, XTAL(12'000'000)/8)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 1.0)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000)/8));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.30);
|
||||
ym1.add_route(1, "mono", 0.30);
|
||||
ym1.add_route(2, "mono", 0.30);
|
||||
ym1.add_route(3, "mono", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, XTAL(12'000'000)/8)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.30)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ym2(YM2203(config, "ym2", XTAL(12'000'000)/8));
|
||||
ym2.add_route(0, "mono", 0.30);
|
||||
ym2.add_route(1, "mono", 0.30);
|
||||
ym2.add_route(2, "mono", 0.30);
|
||||
ym2.add_route(3, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -591,17 +591,17 @@ WRITE_LINE_MEMBER(sfkick_state::irqhandler)
|
||||
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)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sfkick_map)
|
||||
MCFG_DEVICE_IO_MAP(sfkick_io_map)
|
||||
config.m_minimum_quantum = attotime::from_hz(60000);
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60000))
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu",Z80,MASTER_CLOCK/6)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sfkick_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(sfkick_sound_io_map)
|
||||
Z80(config, m_soundcpu, MASTER_CLOCK/6);
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &sfkick_state::sfkick_sound_map);
|
||||
m_soundcpu->set_addrmap(AS_IO, &sfkick_state::sfkick_sound_io_map);
|
||||
|
||||
v9938_device &v9938(V9938(config, "v9938", MASTER_CLOCK));
|
||||
v9938.set_screen_ntsc("screen");
|
||||
@ -618,15 +618,13 @@ MACHINE_CONFIG_START(sfkick_state::sfkick)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, MASTER_CLOCK/6)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, sfkick_state, irqhandler))
|
||||
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.25)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.25)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.25)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.50)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ym1(YM2203(config, "ym1", MASTER_CLOCK/6));
|
||||
ym1.irq_handler().set(FUNC(sfkick_state::irqhandler));
|
||||
ym1.add_route(0, "mono", 0.25);
|
||||
ym1.add_route(1, "mono", 0.25);
|
||||
ym1.add_route(2, "mono", 0.25);
|
||||
ym1.add_route(3, "mono", 0.50);
|
||||
}
|
||||
|
||||
void sfkick_state::init_sfkick()
|
||||
{
|
||||
|
@ -599,32 +599,31 @@ static GFXDECODE_START( gfx_turtship )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(sidearms_state::sidearms)
|
||||
|
||||
void sidearms_state::sidearms(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sidearms_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sidearms_state, irq0_line_hold)
|
||||
Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &sidearms_state::sidearms_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(sidearms_state::irq0_line_hold));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz (?) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sidearms_sound_map)
|
||||
Z80(config, m_audiocpu, 4000000); /* 4 MHz (?) */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &sidearms_state::sidearms_sound_map);
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM8)
|
||||
BUFFERED_SPRITERAM8(config, m_spriteram);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sidearms)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
|
||||
screen.set_screen_update(FUNC(sidearms_state::screen_update));
|
||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_sidearms);
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024);
|
||||
|
||||
/* sound hardware */
|
||||
@ -632,47 +631,45 @@ MACHINE_CONFIG_START(sidearms_state::sidearms)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 4000000)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.25)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 4000000));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.25);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 4000000)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(sidearms_state::turtship)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 4000000));
|
||||
ym2.add_route(0, "mono", 0.15);
|
||||
ym2.add_route(1, "mono", 0.15);
|
||||
ym2.add_route(2, "mono", 0.15);
|
||||
ym2.add_route(3, "mono", 0.25);
|
||||
}
|
||||
|
||||
void sidearms_state::turtship(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(turtship_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sidearms_state, irq0_line_hold)
|
||||
Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &sidearms_state::turtship_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(sidearms_state::irq0_line_hold));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4 MHz (?) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sidearms_sound_map)
|
||||
Z80(config, m_audiocpu, 4000000); /* 4 MHz (?) */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &sidearms_state::sidearms_sound_map);
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM8)
|
||||
BUFFERED_SPRITERAM8(config, m_spriteram);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising))
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_turtship)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
|
||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
||||
screen.set_screen_update(FUNC(sidearms_state::screen_update));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_turtship);
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024);
|
||||
|
||||
/* sound hardware */
|
||||
@ -680,50 +677,49 @@ MACHINE_CONFIG_START(sidearms_state::turtship)
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch");
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 4000000)
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.25)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 4000000));
|
||||
ym1.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ym1.add_route(0, "mono", 0.15);
|
||||
ym1.add_route(1, "mono", 0.15);
|
||||
ym1.add_route(2, "mono", 0.15);
|
||||
ym1.add_route(3, "mono", 0.25);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 4000000)
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(sidearms_state::whizz)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 4000000));
|
||||
ym2.add_route(0, "mono", 0.15);
|
||||
ym2.add_route(1, "mono", 0.15);
|
||||
ym2.add_route(2, "mono", 0.15);
|
||||
ym2.add_route(3, "mono", 0.25);
|
||||
}
|
||||
|
||||
void sidearms_state::whizz(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(whizz_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sidearms_state, irq0_line_hold)
|
||||
Z80(config, m_maincpu, 4000000); /* 4 MHz (?) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &sidearms_state::whizz_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(sidearms_state::irq0_line_hold));
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, 4000000)
|
||||
MCFG_DEVICE_PROGRAM_MAP(whizz_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(whizz_io_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", sidearms_state, irq0_line_hold)
|
||||
Z80(config, m_audiocpu, 4000000);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &sidearms_state::whizz_sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &sidearms_state::whizz_io_map);
|
||||
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");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM8)
|
||||
BUFFERED_SPRITERAM8(config, m_spriteram);
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram8_device, vblank_copy_rising))
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_turtship)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
|
||||
screen.set_screen_update(FUNC(sidearms_state::screen_update));
|
||||
screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram8_device::vblank_copy_rising));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_turtship);
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBRG_444, 1024);
|
||||
|
||||
/* sound hardware */
|
||||
@ -735,7 +731,7 @@ MACHINE_CONFIG_START(sidearms_state::whizz)
|
||||
ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
|
||||
ymsnd.add_route(0, "mono", 1.0);
|
||||
ymsnd.add_route(1, "mono", 1.0);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -485,16 +485,16 @@ MACHINE_RESET_MEMBER(splash_state,splash)
|
||||
m_ret = 0x100;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(splash_state::splash)
|
||||
|
||||
void splash_state::splash(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12MHz (24/2) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(splash_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", splash_state, irq6_line_hold)
|
||||
M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12MHz (24/2) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &splash_state::splash_map);
|
||||
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) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(splash_sound_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(splash_state, nmi_line_pulse, 60*64) /* needed for the msm5205 to play the samples */
|
||||
Z80(config, m_audiocpu, XTAL(30'000'000)/8); /* 3.75MHz (30/8) */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &splash_state::splash_sound_map);
|
||||
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
|
||||
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));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(58)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 64*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(58);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 64*8);
|
||||
screen.set_visarea(2*8, 48*8-1, 2*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(splash_state::screen_update));
|
||||
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);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(splash_state, splash )
|
||||
@ -523,14 +523,13 @@ MACHINE_CONFIG_START(splash_state::splash)
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0);
|
||||
|
||||
MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(30'000'000)/8) /* 3.75MHz (30/8) */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
YM3812(config, "ymsnd", XTAL(30'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.80); /* 3.75MHz (30/8) */
|
||||
|
||||
MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000))
|
||||
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, splash_state, splash_msm5205_int)) /* IRQ handler */
|
||||
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8KHz */ /* Sample rate = 384kHz/48 */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
MSM5205(config, m_msm, XTAL(384'000));
|
||||
m_msm->vck_legacy_callback().set(FUNC(splash_state::splash_msm5205_int)); /* IRQ handler */
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8KHz */ /* Sample rate = 384kHz/48 */
|
||||
m_msm->add_route(ALL_OUTPUTS, "mono", 0.80);
|
||||
}
|
||||
|
||||
|
||||
MACHINE_START_MEMBER(splash_state, roldfrog)
|
||||
@ -546,17 +545,17 @@ INTERRUPT_GEN_MEMBER(splash_state::roldfrog_interrupt)
|
||||
roldfrog_update_irq();
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(splash_state::roldfrog)
|
||||
|
||||
void splash_state::roldfrog(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz - verified */
|
||||
MCFG_DEVICE_PROGRAM_MAP(roldfrog_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", splash_state, irq6_line_hold)
|
||||
M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz - verified */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &splash_state::roldfrog_map);
|
||||
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 */
|
||||
MCFG_DEVICE_PROGRAM_MAP(roldfrog_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(roldfrog_sound_io_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", splash_state, roldfrog_interrupt)
|
||||
Z80(config, m_audiocpu, XTAL(24'000'000)/8); /* 3 MHz - verified */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &splash_state::roldfrog_sound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &splash_state::roldfrog_sound_io_map);
|
||||
m_audiocpu->set_vblank_int("screen", FUNC(splash_state::roldfrog_interrupt));
|
||||
|
||||
LS259(config, m_outlatch);
|
||||
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));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 64*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 64*8);
|
||||
screen.set_visarea(2*8, 48*8-1, 2*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(splash_state::screen_update));
|
||||
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);
|
||||
|
||||
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->set_separate_acknowledge(true);
|
||||
|
||||
MCFG_DEVICE_ADD("ymsnd", YM2203, XTAL(24'000'000) / 8)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(*this, splash_state, ym_irq))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.20)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.20)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.20)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
ym2203_device &ymsnd(YM2203(config, "ymsnd", XTAL(24'000'000) / 8));
|
||||
ymsnd.irq_handler().set(FUNC(splash_state::ym_irq));
|
||||
ymsnd.add_route(0, "mono", 0.20);
|
||||
ymsnd.add_route(1, "mono", 0.20);
|
||||
ymsnd.add_route(2, "mono", 0.20);
|
||||
ymsnd.add_route(3, "mono", 1.0);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(funystrp_state::adpcm_int1)
|
||||
{
|
||||
@ -639,29 +638,29 @@ void funystrp_state::machine_start()
|
||||
save_item(NAME(m_snd_interrupt_enable2));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(funystrp_state::funystrp)
|
||||
|
||||
void funystrp_state::funystrp(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz (24/2) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(funystrp_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", funystrp_state, irq6_line_hold)
|
||||
M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz (24/2) */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &funystrp_state::funystrp_map);
|
||||
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) */
|
||||
MCFG_DEVICE_PROGRAM_MAP(funystrp_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(funystrp_sound_io_map)
|
||||
Z80(config, m_audiocpu, XTAL(24'000'000)/4); /* 6MHz (24/4) */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &funystrp_state::funystrp_sound_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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 64*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 32*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(funystrp_state, screen_update_funystrp)
|
||||
MCFG_SCREEN_PALETTE(m_palette)
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 64*8);
|
||||
screen.set_visarea(0*8, 48*8-1, 2*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(funystrp_state::screen_update_funystrp));
|
||||
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);
|
||||
|
||||
/* sound hardware */
|
||||
@ -670,16 +669,16 @@ MACHINE_CONFIG_START(funystrp_state::funystrp)
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
|
||||
|
||||
MCFG_DEVICE_ADD("msm1", MSM5205, XTAL(400'000))
|
||||
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, funystrp_state, adpcm_int1)) /* interrupt function */
|
||||
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 1 / 48 */ /* Sample rate = 400kHz/64 */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MSM5205(config, m_msm1, XTAL(400'000));
|
||||
m_msm1->vck_legacy_callback().set(FUNC(funystrp_state::adpcm_int1)); /* interrupt function */
|
||||
m_msm1->set_prescaler_selector(msm5205_device::S48_4B); /* 1 / 48 */ /* Sample rate = 400kHz/64 */
|
||||
m_msm1->add_route(ALL_OUTPUTS, "mono", 0.80);
|
||||
|
||||
MCFG_DEVICE_ADD("msm2", MSM5205, XTAL(400'000))
|
||||
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, funystrp_state, adpcm_int2)) /* interrupt function */
|
||||
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 1 / 96 */ /* Sample rate = 400kHz/96 */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
MSM5205(config, m_msm2, XTAL(400'000));
|
||||
m_msm2->vck_legacy_callback().set(FUNC(funystrp_state::adpcm_int2)); /* interrupt function */
|
||||
m_msm2->set_prescaler_selector(msm5205_device::S96_4B); /* 1 / 96 */ /* Sample rate = 400kHz/96 */
|
||||
m_msm2->add_route(ALL_OUTPUTS, "mono", 0.80);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -480,32 +480,32 @@ static GFXDECODE_START( gfx_kikcubic )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(vigilant_state::vigilant)
|
||||
|
||||
void vigilant_state::vigilant(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 3.579545_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(vigilant_map)
|
||||
MCFG_DEVICE_IO_MAP(vigilant_io_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vigilant_state, irq0_line_hold)
|
||||
Z80(config, m_maincpu, 3.579545_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vigilant_state::vigilant_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vigilant_state::vigilant_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vigilant_state::irq0_line_hold));
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", Z80, 3.579545_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
MCFG_DEVICE_IO_MAP(sound_io_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(vigilant_state, nmi_line_pulse, 128*55) /* clocked by V1 */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("soundirq", rst_neg_buffer_device, inta_cb)
|
||||
z80_device &soundcpu(Z80(config, "soundcpu", 3.579545_MHz_XTAL));
|
||||
soundcpu.set_addrmap(AS_PROGRAM, &vigilant_state::sound_map);
|
||||
soundcpu.set_addrmap(AS_IO, &vigilant_state::sound_io_map);
|
||||
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 */
|
||||
soundcpu.set_irq_acknowledge_callback("soundirq", FUNC(rst_neg_buffer_device::inta_cb));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(55)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA((16*8)-1, (64-16)*8-4, 0*8, 32*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(55);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea((16*8)-1, (64-16)*8-4, 0*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(vigilant_state::screen_update_vigilant));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_vigilant)
|
||||
MCFG_PALETTE_ADD("palette", 512+32) /* 512 real palette, 32 virtual palette */
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_vigilant);
|
||||
PALETTE(config, m_palette).set_entries(512+32); /* 512 real palette, 32 virtual palette */
|
||||
|
||||
/* sound hardware */
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("m72", IREM_M72_AUDIO)
|
||||
IREM_M72_AUDIO(config, m_audio);
|
||||
|
||||
ym2151_device &ymsnd(YM2151(config, "ymsnd", 3.579545_MHz_XTAL));
|
||||
ymsnd.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w));
|
||||
ymsnd.add_route(0, "lspeaker", 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
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(vigilant_state::buccanrs)
|
||||
dac_8bit_r2r_device &dac(DAC_8BIT_R2R(config, "dac", 0)); // unknown DAC
|
||||
dac.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
dac.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
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);
|
||||
}
|
||||
|
||||
void vigilant_state::buccanrs(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 5688800) /* 5.688800 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(vigilant_map)
|
||||
MCFG_DEVICE_IO_MAP(vigilant_io_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vigilant_state, irq0_line_hold)
|
||||
Z80(config, m_maincpu, 5688800); /* 5.688800 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vigilant_state::vigilant_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vigilant_state::vigilant_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vigilant_state::irq0_line_hold));
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", Z80, 18432000/6) /* 3.072000 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
MCFG_DEVICE_IO_MAP(buccanrs_sound_io_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(vigilant_state, nmi_line_pulse, 128*55) /* clocked by V1 */
|
||||
z80_device &soundcpu(Z80(config, "soundcpu", 18432000/6)); /* 3.072000 MHz */
|
||||
soundcpu.set_addrmap(AS_PROGRAM, &vigilant_state::sound_map);
|
||||
soundcpu.set_addrmap(AS_IO, &vigilant_state::buccanrs_sound_io_map);
|
||||
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 */
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(55)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_buccanrs)
|
||||
MCFG_PALETTE_ADD("palette", 512+32) /* 512 real palette, 32 virtual palette */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(55);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(16*8, (64-16)*8-1, 0*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(vigilant_state::screen_update_vigilant));
|
||||
screen.set_palette(m_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 */
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("m72", IREM_M72_AUDIO)
|
||||
IREM_M72_AUDIO(config, m_audio);
|
||||
|
||||
MCFG_DEVICE_ADD("ym1", YM2203, 18432000/6)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE("soundirq", rst_neg_buffer_device, rst28_w))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(0, "rspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(1, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(2, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(2, "rspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(3, "lspeaker", 0.50)
|
||||
MCFG_SOUND_ROUTE(3, "rspeaker", 0.50)
|
||||
ym2203_device &ym1(YM2203(config, "ym1", 18432000/6));
|
||||
ym1.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w));
|
||||
ym1.add_route(0, "lspeaker", 0.35);
|
||||
ym1.add_route(0, "rspeaker", 0.35);
|
||||
ym1.add_route(1, "lspeaker", 0.35);
|
||||
ym1.add_route(1, "rspeaker", 0.35);
|
||||
ym1.add_route(2, "lspeaker", 0.35);
|
||||
ym1.add_route(2, "rspeaker", 0.35);
|
||||
ym1.add_route(3, "lspeaker", 0.50);
|
||||
ym1.add_route(3, "rspeaker", 0.50);
|
||||
|
||||
MCFG_DEVICE_ADD("ym2", YM2203, 18432000/6)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(0, "rspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(1, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(2, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(2, "rspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(3, "lspeaker", 0.50)
|
||||
MCFG_SOUND_ROUTE(3, "rspeaker", 0.50)
|
||||
ym2203_device &ym2(YM2203(config, "ym2", 18432000/6));;
|
||||
ym2.add_route(0, "lspeaker", 0.35);
|
||||
ym2.add_route(0, "rspeaker", 0.35);
|
||||
ym2.add_route(1, "lspeaker", 0.35);
|
||||
ym2.add_route(1, "rspeaker", 0.35);
|
||||
ym2.add_route(2, "lspeaker", 0.35);
|
||||
ym2.add_route(2, "rspeaker", 0.35);
|
||||
ym2.add_route(3, "lspeaker", 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
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(vigilant_state::kikcubic)
|
||||
dac_8bit_r2r_device &dac(DAC_8BIT_R2R(config, "dac", 0)); // unknown DAC
|
||||
dac.add_route(ALL_OUTPUTS, "lspeaker", 0.35);
|
||||
dac.add_route(ALL_OUTPUTS, "rspeaker", 0.35);
|
||||
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);
|
||||
}
|
||||
|
||||
void vigilant_state::kikcubic(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 3.579545_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(kikcubic_map)
|
||||
MCFG_DEVICE_IO_MAP(kikcubic_io_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vigilant_state, irq0_line_hold)
|
||||
Z80(config, m_maincpu, 3.579545_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vigilant_state::kikcubic_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vigilant_state::kikcubic_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vigilant_state::irq0_line_hold));
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", Z80, 3.579545_MHz_XTAL)
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
MCFG_DEVICE_IO_MAP(sound_io_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(vigilant_state, nmi_line_pulse, 128*55) /* clocked by V1 */
|
||||
z80_device &soundcpu(Z80(config, "soundcpu", 3.579545_MHz_XTAL));
|
||||
soundcpu.set_addrmap(AS_PROGRAM, &vigilant_state::sound_map);
|
||||
soundcpu.set_addrmap(AS_IO, &vigilant_state::sound_io_map);
|
||||
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 */
|
||||
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 */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(55)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_kikcubic)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(55);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(8*8, (64-8)*8-1, 0*8, 32*8-1);
|
||||
screen.set_screen_update(FUNC(vigilant_state::screen_update_kikcubic));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_kikcubic)
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_kikcubic);
|
||||
PALETTE(config, m_palette).set_entries(256);
|
||||
|
||||
/* sound hardware */
|
||||
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);
|
||||
|
||||
MCFG_DEVICE_ADD("m72", IREM_M72_AUDIO)
|
||||
IREM_M72_AUDIO(config, m_audio);
|
||||
|
||||
ym2151_device &ymsnd(YM2151(config, "ymsnd", 3.579545_MHz_XTAL));
|
||||
ymsnd.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w));
|
||||
ymsnd.add_route(0, "lspeaker", 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
|
||||
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
|
||||
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
|
||||
MACHINE_CONFIG_END
|
||||
dac_8bit_r2r_device &dac(DAC_8BIT_R2R(config, "dac", 0)); // unknown DAC
|
||||
dac.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
dac.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include "machine/timer.h"
|
||||
#include "sound/ym2151.h"
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
|
||||
class deadang_state : public driver_device
|
||||
{
|
||||
@ -20,10 +21,12 @@ public:
|
||||
m_video_data(*this, "video_data"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_seibu_sound(*this, "seibu_sound"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_subcpu(*this, "sub"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_adpcm1(*this, "adpcm1"),
|
||||
m_adpcm2(*this, "adpcm2")
|
||||
{ }
|
||||
@ -51,6 +54,7 @@ protected:
|
||||
required_shared_ptr<uint16_t> m_video_data;
|
||||
required_shared_ptr<uint16_t> m_spriteram;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<seibu_sound_device> m_seibu_sound;
|
||||
|
||||
@ -68,9 +72,9 @@ protected:
|
||||
void sound_decrypted_opcodes_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
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_adpcm2;
|
||||
|
||||
|
@ -38,6 +38,7 @@ public:
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_soundlatch2(*this, "soundlatch2"),
|
||||
m_soundlatch_z(*this, "soundlatch_z"),
|
||||
m_scantimer(*this, "scantimer"),
|
||||
m_rom_maincpu(*this, "maincpu"),
|
||||
m_io_system(*this, "SYSTEM"),
|
||||
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_soundlatch2;
|
||||
optional_device<generic_latch_8_device> m_soundlatch_z;
|
||||
optional_device<timer_device> m_scantimer;
|
||||
required_region_ptr<uint16_t> m_rom_maincpu;
|
||||
required_ioport m_io_system;
|
||||
required_ioport m_io_p1;
|
||||
|
@ -6,14 +6,15 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "sound/okim6295.h"
|
||||
#include "audio/seibu.h"
|
||||
#include "machine/nmk004.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/nmk004.h"
|
||||
#include "machine/timer.h"
|
||||
#include "sound/okim6295.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:
|
||||
nmk16_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
@ -22,6 +23,7 @@ public:
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_oki(*this, "oki%u", 1U),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_nmk004(*this, "nmk004"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
@ -106,6 +108,7 @@ protected:
|
||||
optional_device<cpu_device> m_audiocpu;
|
||||
optional_device_array<okim6295_device, 2> m_oki;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
optional_device<nmk004_device> m_nmk004;
|
||||
optional_device<generic_latch_8_device> m_soundlatch;
|
||||
@ -171,6 +174,10 @@ protected:
|
||||
DECLARE_WRITE16_MEMBER(nmk16_bioship_x0016_w);
|
||||
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);
|
||||
template<int Layer, int Gfx> TILE_GET_INFO_MEMBER(common_get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(common_get_tx_tile_info);
|
||||
|
@ -12,6 +12,7 @@ public:
|
||||
powerins_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_soundcpu(*this, "soundcpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
@ -27,6 +28,7 @@ public:
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<cpu_device> m_soundcpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
|
Loading…
Reference in New Issue
Block a user