-2203intf: Removed MCFG macro, nw

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

View File

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

View File

@ -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)
{

View File

@ -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);
}
/***************************************************************************

View File

@ -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");
}
/***************************************************************************

View File

@ -571,26 +571,26 @@ void chinagat_state::machine_reset()
}
MACHINE_CONFIG_START(chinagat_state::chinagat)
void chinagat_state::chinagat(machine_config &config)
{
/* basic machine hardware */
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);
}
/***************************************************************************

View File

@ -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 */

View File

@ -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
}
/***************************************************************************

View File

@ -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);
}
/*

View File

@ -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
/****************************************************************************/

View File

@ -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);
}
/******************************************************************************/

View File

@ -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) */

View File

@ -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

View File

@ -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 )

View File

@ -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
}
/***************************************************************************

View File

@ -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);
}
/***************************************************************************

View File

@ -591,17 +591,17 @@ WRITE_LINE_MEMBER(sfkick_state::irqhandler)
m_soundcpu->set_input_line_and_vector(0, state ? ASSERT_LINE : CLEAR_LINE, 0xff);
}
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()
{

View File

@ -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
}

View File

@ -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);
}
/***************************************************************************

View File

@ -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 */
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((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);
}

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;