-drivers/discoboy, docastle, drmicro, dynax, fcrash, firetrap, fromance, gladiatr, gsword, hnayayoi, hyperspt, jangout: Removed MACHINE_CONFIG macros, nw

This commit is contained in:
mooglyguy 2019-01-03 18:35:58 +01:00
parent 294317d096
commit 471288048d
12 changed files with 653 additions and 672 deletions

View File

@ -456,31 +456,30 @@ WRITE_LINE_MEMBER(discoboy_state::yunsung8_adpcm_int)
m_audiocpu->set_input_line(INPUT_LINE_NMI, m_toggle);
}
MACHINE_CONFIG_START(discoboy_state::discoboy)
void discoboy_state::discoboy(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* 6 MHz? */
MCFG_DEVICE_PROGRAM_MAP(discoboy_map)
MCFG_DEVICE_IO_MAP(io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", discoboy_state, irq0_line_hold)
Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz? */
m_maincpu->set_addrmap(AS_PROGRAM, &discoboy_state::discoboy_map);
m_maincpu->set_addrmap(AS_IO, &discoboy_state::io_map);
m_maincpu->set_vblank_int("screen", FUNC(discoboy_state::irq0_line_hold));
MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(10'000'000)/2) /* 5 MHz? */
MCFG_DEVICE_PROGRAM_MAP(sound_map)
Z80(config, m_audiocpu, XTAL(10'000'000)/2); /* 5 MHz? */
m_audiocpu->set_addrmap(AS_PROGRAM, &discoboy_state::sound_map);
ADDRESS_MAP_BANK(config, "rambank1").set_map(&discoboy_state::rambank1_map).set_options(ENDIANNESS_BIG, 8, 13, 0x800);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(8*8, 512-1-8*8, 0+8, 256-1-8)
MCFG_SCREEN_UPDATE_DRIVER(discoboy_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_discoboy)
MCFG_PALETTE_ADD("palette", 0x1000)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(512, 256);
screen.set_visarea(8*8, 512-1-8*8, 0+8, 256-1-8);
screen.set_screen_update(FUNC(discoboy_state::screen_update));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_discoboy);
PALETTE(config, m_palette).set_entries(0x1000);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@ -489,19 +488,19 @@ MACHINE_CONFIG_START(discoboy_state::discoboy)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0);
MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(10'000'000)/4) /* 2.5 MHz? */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.6)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.6)
ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(10'000'000)/4)); /* 2.5 MHz? */
ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.6);
ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.6);
LS157(config, m_adpcm_select, 0);
m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w));
MCFG_DEVICE_ADD("msm", MSM5205, XTAL(400'000))
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, discoboy_state, yunsung8_adpcm_int)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz, 4 Bits */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.80)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
MACHINE_CONFIG_END
MSM5205(config, m_msm, XTAL(400'000));
m_msm->vck_legacy_callback().set(FUNC(discoboy_state::yunsung8_adpcm_int)); /* interrupt function */
m_msm->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz, 4 Bits */
m_msm->add_route(ALL_OUTPUTS, "lspeaker", 0.80);
m_msm->add_route(ALL_OUTPUTS, "rspeaker", 0.80);
}
ROM_START( discoboy )

View File

@ -580,18 +580,18 @@ void docastle_state::machine_start()
save_item(NAME(m_buffer1));
}
MACHINE_CONFIG_START(docastle_state::docastle)
void docastle_state::docastle(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000))
MCFG_DEVICE_PROGRAM_MAP(docastle_map)
MCFG_DEVICE_IO_MAP(docastle_io_map)
Z80(config, m_maincpu, XTAL(4'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &docastle_state::docastle_map);
m_maincpu->set_addrmap(AS_IO, &docastle_state::docastle_io_map);
MCFG_DEVICE_ADD("slave", Z80, XTAL(4'000'000))
MCFG_DEVICE_PROGRAM_MAP(docastle_map2)
Z80(config, m_slave, XTAL(4'000'000));
m_slave->set_addrmap(AS_PROGRAM, &docastle_state::docastle_map2);
MCFG_DEVICE_ADD("cpu3", Z80, XTAL(4'000'000))
MCFG_DEVICE_PROGRAM_MAP(docastle_map3)
Z80(config, m_cpu3, XTAL(4'000'000));
m_cpu3->set_addrmap(AS_PROGRAM, &docastle_state::docastle_map3);
TMS1025(config, m_inp[0]);
m_inp[0]->read_port1_callback().set_ioport("DSW2");
@ -625,10 +625,10 @@ MACHINE_CONFIG_START(docastle_state::docastle)
m_crtc->out_vsync_callback().append_inputline(m_cpu3, INPUT_LINE_NMI);
m_crtc->out_hsync_callback().set(FUNC(docastle_state::docastle_tint));
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL(9'828'000)/2, 0x138, 8, 0x100-8, 0x108, 0, 0xc0) // from CRTC
MCFG_SCREEN_UPDATE_DRIVER(docastle_state, screen_update_docastle)
MCFG_SCREEN_PALETTE(m_palette)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(XTAL(9'828'000)/2, 0x138, 8, 0x100-8, 0x108, 0, 0xc0); // from CRTC
screen.set_screen_update(FUNC(docastle_state::screen_update_docastle));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_docastle);
PALETTE(config, m_palette, FUNC(docastle_state::docastle_palette), 512);
@ -640,28 +640,26 @@ MACHINE_CONFIG_START(docastle_state::docastle)
SN76489A(config, "sn2", 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.25);
SN76489A(config, "sn3", 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.25);
SN76489A(config, "sn4", 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 0.25);
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(docastle_state::dorunrun)
void docastle_state::dorunrun(machine_config &config)
{
docastle(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(dorunrun_map)
MCFG_DEVICE_MODIFY("slave")
MCFG_DEVICE_PROGRAM_MAP(dorunrun_map2)
m_maincpu->set_addrmap(AS_PROGRAM, &docastle_state::dorunrun_map);
m_slave->set_addrmap(AS_PROGRAM, &docastle_state::dorunrun_map2);
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(docastle_state,dorunrun)
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(docastle_state::idsoccer)
void docastle_state::idsoccer(machine_config &config)
{
docastle(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(idsoccer_map)
m_maincpu->set_addrmap(AS_PROGRAM, &docastle_state::idsoccer_map);
m_inp[0]->read_port4_callback().set_ioport("JOYS_RIGHT");
m_inp[1]->read_port4_callback().set_ioport("JOYS_RIGHT").rshift(4);
@ -670,11 +668,11 @@ MACHINE_CONFIG_START(docastle_state::idsoccer)
MCFG_VIDEO_START_OVERRIDE(docastle_state,dorunrun)
/* sound hardware */
MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000)) // Crystal verified on American Soccer board.
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, docastle_state, idsoccer_adpcm_int)) // interrupt function
MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) // 6 kHz ???
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
MSM5205(config, m_msm, XTAL(384'000)); // Crystal verified on American Soccer board.
m_msm->vck_legacy_callback().set(FUNC(docastle_state::idsoccer_adpcm_int)); // interrupt function
m_msm->set_prescaler_selector(msm5205_device::S64_4B); // 6 kHz ???
m_msm->add_route(ALL_OUTPUTS, "mono", 0.40);
}
/* ROMs */

View File

@ -240,25 +240,24 @@ void drmicro_state::machine_reset()
}
MACHINE_CONFIG_START(drmicro_state::drmicro)
void drmicro_state::drmicro(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80,MCLK/6) /* 3.072MHz? */
MCFG_DEVICE_PROGRAM_MAP(drmicro_map)
MCFG_DEVICE_IO_MAP(io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", drmicro_state, drmicro_interrupt)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
Z80(config, m_maincpu, MCLK/6); /* 3.072MHz? */
m_maincpu->set_addrmap(AS_PROGRAM, &drmicro_state::drmicro_map);
m_maincpu->set_addrmap(AS_IO, &drmicro_state::io_map);
m_maincpu->set_vblank_int("screen", FUNC(drmicro_state::drmicro_interrupt));
config.m_minimum_quantum = attotime::from_hz(60);
/* 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(drmicro_state, screen_update_drmicro)
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(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_screen_update(FUNC(drmicro_state::screen_update_drmicro));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_drmicro);
PALETTE(config, m_palette, FUNC(drmicro_state::drmicro_palette), 512, 32);
@ -266,20 +265,15 @@ MACHINE_CONFIG_START(drmicro_state::drmicro)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("sn1", SN76496, MCLK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
SN76496(config, "sn1", MCLK/4).add_route(ALL_OUTPUTS, "mono", 0.50);
SN76496(config, "sn2", MCLK/4).add_route(ALL_OUTPUTS, "mono", 0.50);
SN76496(config, "sn3", MCLK/4).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("sn2", SN76496, MCLK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("sn3", SN76496, MCLK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, drmicro_state, pcm_w)) /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S64_4B) /* 6 KHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MACHINE_CONFIG_END
MSM5205(config, m_msm, 384000);
m_msm->vck_legacy_callback().set(FUNC(drmicro_state::pcm_w)); /* IRQ handler */
m_msm->set_prescaler_selector(msm5205_device::S64_4B); /* 6 KHz */
m_msm->add_route(ALL_OUTPUTS, "mono", 0.75);
}
/*************************************
*

View File

@ -4192,13 +4192,13 @@ MACHINE_START_MEMBER(dynax_state,hanamai)
Castle Of Dracula
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::cdracula)
void dynax_state::cdracula(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(21'477'272)/4) /* 5.3693175MHz measured */
MCFG_DEVICE_PROGRAM_MAP(cdracula_mem_map)
MCFG_DEVICE_IO_MAP(cdracula_io_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus
Z80(config, m_maincpu, XTAL(21'477'272)/4); /* 5.3693175MHz measured */
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::cdracula_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::cdracula_io_map);
m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus
MCFG_MACHINE_START_OVERRIDE(dynax_state,dynax)
MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
@ -4235,22 +4235,22 @@ MACHINE_CONFIG_START(dynax_state::cdracula)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH) /* 1MHz measured */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END
OKIM6295(config, m_oki, XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH); /* 1MHz measured */
m_oki->add_route(ALL_OUTPUTS, "mono", 0.80);
}
/***************************************************************************
Hana no Mai
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::hanamai)
void dynax_state::hanamai(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu",Z80,22000000 / 4) /* 5.5MHz */
MCFG_DEVICE_PROGRAM_MAP(sprtmtch_mem_map)
MCFG_DEVICE_IO_MAP(hanamai_io_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus
Z80(config, m_maincpu, 22000000 / 4); /* 5.5MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::sprtmtch_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::hanamai_io_map);
m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus
MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai)
MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
@ -4302,11 +4302,11 @@ MACHINE_CONFIG_START(dynax_state::hanamai)
ym2203.add_route(2, "mono", 0.20);
ym2203.add_route(3, "mono", 0.50);
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dynax_state, adpcm_int)) /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
MSM5205(config, m_msm, 384000);
m_msm->vck_legacy_callback().set(FUNC(dynax_state::adpcm_int)); /* IRQ handler */
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz, 4 Bits */
m_msm->add_route(ALL_OUTPUTS, "mono", 1.0);
}
@ -4314,13 +4314,13 @@ MACHINE_CONFIG_END
Hana Oriduru
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::hnoridur)
void dynax_state::hnoridur(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu",Z80,XTAL(22'000'000) / 4) /* 5.5MHz */
MCFG_DEVICE_PROGRAM_MAP(hnoridur_mem_map)
MCFG_DEVICE_IO_MAP(hnoridur_io_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus
Z80(config, m_maincpu, XTAL(22'000'000) / 4); /* 5.5MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::hnoridur_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::hnoridur_io_map);
m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus
MCFG_MACHINE_START_OVERRIDE(dynax_state,dynax)
MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
@ -4370,24 +4370,24 @@ MACHINE_CONFIG_START(dynax_state::hnoridur)
YM2413(config, "ym2413", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0);
MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000))
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dynax_state, adpcm_int)) /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
MSM5205(config, m_msm, XTAL(384'000));
m_msm->vck_legacy_callback().set(FUNC(dynax_state::adpcm_int)); /* IRQ handler */
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz, 4 Bits */
m_msm->add_route(ALL_OUTPUTS, "mono", 1.0);
}
/***************************************************************************
Hana Jingi
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::hjingi)
void dynax_state::hjingi(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu",Z80, XTAL(22'000'000) / 4)
MCFG_DEVICE_PROGRAM_MAP(hjingi_mem_map)
MCFG_DEVICE_IO_MAP(hjingi_io_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus
Z80(config, m_maincpu, XTAL(22'000'000) / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::hjingi_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::hjingi_io_map);
m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus
MCFG_MACHINE_START_OVERRIDE(dynax_state,hjingi)
MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
@ -4439,24 +4439,24 @@ MACHINE_CONFIG_START(dynax_state::hjingi)
YM2413(config, "ym2413", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0);
MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000) )
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dynax_state, adpcm_int)) /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
MSM5205(config, m_msm, XTAL(384'000));
m_msm->vck_legacy_callback().set(FUNC(dynax_state::adpcm_int)); /* IRQ handler */
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz, 4 Bits */
m_msm->add_route(ALL_OUTPUTS, "mono", 1.0);
}
/***************************************************************************
Sports Match
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::sprtmtch)
void dynax_state::sprtmtch(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80,22000000 / 4) /* 5.5MHz */
MCFG_DEVICE_PROGRAM_MAP(sprtmtch_mem_map)
MCFG_DEVICE_IO_MAP(sprtmtch_io_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus
Z80(config, m_maincpu, 22000000 / 4); /* 5.5MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::sprtmtch_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::sprtmtch_io_map);
m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus
MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai)
MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
@ -4502,7 +4502,7 @@ MACHINE_CONFIG_START(dynax_state::sprtmtch)
ym2203.add_route(1, "mono", 0.20);
ym2203.add_route(2, "mono", 0.20);
ym2203.add_route(3, "mono", 1.0);
MACHINE_CONFIG_END
}
/***************************************************************************
@ -4515,12 +4515,12 @@ WRITE_LINE_MEMBER(dynax_state::mjfriday_vblank_w)
m_maincpu->set_input_line(0, HOLD_LINE);
}
MACHINE_CONFIG_START(dynax_state::mjfriday)
void dynax_state::mjfriday(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu",Z80,24000000/4) /* 6 MHz? */
MCFG_DEVICE_PROGRAM_MAP(sprtmtch_mem_map)
MCFG_DEVICE_IO_MAP(mjfriday_io_map)
Z80(config, m_maincpu, 24000000/4); /* 6 MHz? */
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::sprtmtch_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::mjfriday_io_map);
MCFG_MACHINE_START_OVERRIDE(dynax_state,hanamai)
MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
@ -4560,87 +4560,85 @@ MACHINE_CONFIG_START(dynax_state::mjfriday)
SPEAKER(config, "mono").front_center();
YM2413(config, "ym2413", 24000000/6).add_route(ALL_OUTPUTS, "mono", 1.0);
MACHINE_CONFIG_END
}
/***************************************************************************
Mahjong Dial Q2
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::mjdialq2)
void dynax_state::mjdialq2(machine_config &config)
{
mjfriday(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(mjdialq2_mem_map)
MACHINE_CONFIG_END
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::mjdialq2_mem_map);
}
/***************************************************************************
Yarunara / Quiz TV Q&Q / Mahjong Angels
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::yarunara)
void dynax_state::yarunara(machine_config &config)
{
hnoridur(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(yarunara_mem_map)
MCFG_DEVICE_IO_MAP(yarunara_io_map)
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::yarunara_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::yarunara_io_map);
MCFG_DEVICE_MODIFY("bankdev")
MCFG_DEVICE_PROGRAM_MAP(yarunara_banked_map)
m_bankdev->set_addrmap(AS_PROGRAM, &dynax_state::yarunara_banked_map);
MCFG_DEVICE_REMOVE("outlatch") // ???
config.device_remove("outlatch"); // ???
m_screen->set_visarea(0, 336-1, 8, 256-1-8-1);
/* devices */
MSM6242(config, "rtc", 32.768_kHz_XTAL).out_int_handler().set(m_mainirq, FUNC(rst_pos_buffer_device::rst1_w));
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(dynax_state::mjangels)
void dynax_state::mjangels(machine_config &config)
{
yarunara(config);
MCFG_DEVICE_MODIFY("bankdev")
m_bankdev->set_map(&dynax_state::mjangels_banked_map).set_addr_width(21);
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(dynax_state::quiztvqq)
void dynax_state::quiztvqq(machine_config &config)
{
mjangels(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(quiztvqq_mem_map)
MACHINE_CONFIG_END
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::quiztvqq_mem_map);
}
/***************************************************************************
Mahjong Campus Hunting
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::mcnpshnt)
void dynax_state::mcnpshnt(machine_config &config)
{
hnoridur(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(mcnpshnt_mem_map)
MCFG_DEVICE_IO_MAP(mcnpshnt_io_map)
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::mcnpshnt_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::mcnpshnt_io_map);
MCFG_VIDEO_START_OVERRIDE(dynax_state,mcnpshnt) // different priorities
MACHINE_CONFIG_END
}
/***************************************************************************
7jigen
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::nanajign)
void dynax_state::nanajign(machine_config &config)
{
hnoridur(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(nanajign_mem_map)
MCFG_DEVICE_IO_MAP(nanajign_io_map)
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::nanajign_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::nanajign_io_map);
MCFG_DEVICE_MODIFY("bankdev")
MCFG_DEVICE_PROGRAM_MAP(nanajign_banked_map)
MACHINE_CONFIG_END
m_bankdev->set_addrmap(AS_PROGRAM, &dynax_state::nanajign_banked_map);
}
/***************************************************************************
@ -4661,18 +4659,18 @@ MACHINE_START_MEMBER(dynax_state,jantouki)
}
MACHINE_CONFIG_START(dynax_state::jantouki)
void dynax_state::jantouki(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu",Z80,22000000 / 4) /* 5.5MHz */
MCFG_DEVICE_PROGRAM_MAP(jantouki_mem_map)
MCFG_DEVICE_IO_MAP(jantouki_io_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus
Z80(config, m_maincpu, 22000000 / 4); /* 5.5MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::jantouki_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::jantouki_io_map);
m_maincpu->set_irq_acknowledge_callback("mainirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus
MCFG_DEVICE_ADD("soundcpu",Z80,22000000 / 4) /* 5.5MHz */
MCFG_DEVICE_PROGRAM_MAP(jantouki_sound_mem_map)
MCFG_DEVICE_IO_MAP(jantouki_sound_io_map)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("soundirq", rst_pos_buffer_device, inta_cb) // IM 0 needs an opcode on the data bus
Z80(config, m_soundcpu, 22000000 / 4); /* 5.5MHz */
m_soundcpu->set_addrmap(AS_PROGRAM, &dynax_state::jantouki_sound_mem_map);
m_soundcpu->set_addrmap(AS_IO, &dynax_state::jantouki_sound_io_map);
m_soundcpu->set_irq_acknowledge_callback("soundirq", FUNC(rst_pos_buffer_device::inta_cb)); // IM 0 needs an opcode on the data bus
MCFG_MACHINE_START_OVERRIDE(dynax_state,jantouki)
MCFG_MACHINE_RESET_OVERRIDE(dynax_state,dynax)
@ -4680,7 +4678,6 @@ MACHINE_CONFIG_START(dynax_state::jantouki)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
RST_POS_BUFFER(config, m_mainirq, 0).int_callback().set_inputline(m_maincpu, 0);
RST_POS_BUFFER(config, m_soundirq, 0).int_callback().set_inputline(m_soundcpu, 0);
LS259(config, m_mainlatch);
@ -4741,14 +4738,14 @@ MACHINE_CONFIG_START(dynax_state::jantouki)
ym2203.add_route(2, "mono", 0.20);
ym2203.add_route(3, "mono", 0.50);
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dynax_state, adpcm_int_cpu1)) /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz, 4 Bits */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MSM5205(config, m_msm, 384000);
m_msm->vck_legacy_callback().set(FUNC(dynax_state::adpcm_int_cpu1)); /* IRQ handler */
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz, 4 Bits */
m_msm->add_route(ALL_OUTPUTS, "mono", 1.0);
/* devices */
MSM6242(config, "rtc", 32.768_kHz_XTAL);
MACHINE_CONFIG_END
}
void dynax_state::janyuki(machine_config &config)
{
@ -4765,14 +4762,14 @@ void dynax_state::janyuki(machine_config &config)
0xfa and 0xfc are very similar, they should be triggered by the blitter
0xf8 is vblank */
MACHINE_CONFIG_START(dynax_state::mjelctrn)
void dynax_state::mjelctrn(machine_config &config)
{
hnoridur(config);
TMPZ84C015(config.replace(), m_maincpu, XTAL(22'000'000) / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &dynax_state::nanajign_mem_map);
m_maincpu->set_addrmap(AS_IO, &dynax_state::mjelctrn_io_map);
MCFG_DEVICE_MODIFY("bankdev")
MCFG_DEVICE_PROGRAM_MAP(mjelctrn_banked_map)
m_bankdev->set_addrmap(AS_PROGRAM, &dynax_state::mjelctrn_banked_map);
LS259(config.replace(), m_mainlatch);
m_mainlatch->q_out_cb<0>().set(FUNC(dynax_state::flipscreen_w));
@ -4780,7 +4777,7 @@ MACHINE_CONFIG_START(dynax_state::mjelctrn)
m_mainlatch->q_out_cb<2>().set(FUNC(dynax_state::layer_half2_w));
// Q3, Q4 seem to be related to wrap around enable
MCFG_DEVICE_REMOVE("mainirq")
config.device_remove("mainirq");
m_screen->screen_vblank().set(m_maincpu, FUNC(tmpz84c015_device::trg0)).invert();
@ -4788,9 +4785,10 @@ MACHINE_CONFIG_START(dynax_state::mjelctrn)
m_blitter->ready_cb().append(m_maincpu, FUNC(tmpz84c015_device::trg2));
MCFG_VIDEO_START_OVERRIDE(dynax_state,mjelctrn)
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(dynax_state::mjembase)
void dynax_state::mjembase(machine_config &config)
{
mjelctrn(config);
tmpz84c015_device &maincpu(*subdevice<tmpz84c015_device>("maincpu"));
@ -4802,10 +4800,10 @@ MACHINE_CONFIG_START(dynax_state::mjembase)
m_mainlatch->q_out_cb<3>().set(FUNC(dynax_state::coincounter_0_w));
m_mainlatch->q_out_cb<4>().set(FUNC(dynax_state::coincounter_1_w));
MCFG_DEVICE_REMOVE("outlatch")
config.device_remove("outlatch");
MCFG_VIDEO_START_OVERRIDE(dynax_state,mjembase)
MACHINE_CONFIG_END
}
/***************************************************************************
Neruton
@ -4816,10 +4814,11 @@ MACHINE_CONFIG_END
0x40 is vblank
0x46 is a periodic irq? */
MACHINE_CONFIG_START(dynax_state::neruton)
void dynax_state::neruton(machine_config &config)
{
mjelctrn(config);
MCFG_VIDEO_START_OVERRIDE(dynax_state,neruton)
MACHINE_CONFIG_END
}
@ -4842,8 +4841,8 @@ WRITE_LINE_MEMBER(dynax_state::tenkai_blitter_ack_w)
}
MACHINE_CONFIG_START(dynax_state::tenkai)
void dynax_state::tenkai(machine_config &config)
{
/* basic machine hardware */
tmp91640_device &tmp(TMP91640(config, m_maincpu, 21472700 / 2));
tmp.set_addrmap(AS_PROGRAM, &dynax_state::tenkai_map);
@ -4903,7 +4902,7 @@ MACHINE_CONFIG_START(dynax_state::tenkai)
/* devices */
MSM6242(config, "rtc", 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ2);
MACHINE_CONFIG_END
}
void dynax_state::majrjhdx(machine_config &config)
{
@ -4922,8 +4921,8 @@ void dynax_state::mjreach(machine_config &config)
Mahjong Gekisha
***************************************************************************/
MACHINE_CONFIG_START(dynax_state::gekisha)
void dynax_state::gekisha(machine_config &config)
{
/* basic machine hardware */
tmp90841_device &tmp(TMP90841(config, m_maincpu, XTAL(10'000'000))); // ?
tmp.set_addrmap(AS_PROGRAM, &dynax_state::gekisha_map);
@ -4973,7 +4972,7 @@ MACHINE_CONFIG_START(dynax_state::gekisha)
ay8910.add_route(ALL_OUTPUTS, "mono", 0.20);
YM2413(config, "ym2413", XTAL(24'000'000) / 8).add_route(ALL_OUTPUTS, "mono", 1.0); // ?
MACHINE_CONFIG_END
}
/***************************************************************************

View File

@ -1675,95 +1675,95 @@ MACHINE_RESET_MEMBER(cps_state,fcrash)
m_sample_select2 = 0;
}
MACHINE_CONFIG_START(cps_state::fcrash)
void cps_state::fcrash(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 10000000)
MCFG_DEVICE_PROGRAM_MAP(fcrash_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack)
M68000(config, m_maincpu, 10000000);
m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::fcrash_map);
m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt));
m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack));
MCFG_DEVICE_ADD("audiocpu", Z80, 24000000/6) /* ? */
MCFG_DEVICE_PROGRAM_MAP(sound_map)
Z80(config, m_audiocpu, 24000000/6); /* ? */
m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sound_map);
MCFG_MACHINE_START_OVERRIDE(cps_state,fcrash)
MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1))
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(64*8, 32*8);
m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1 );
m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash));
m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1)
MCFG_PALETTE_ADD("palette", 4096)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1);
PALETTE(config, m_palette).set_entries(4096);
// sound hardware
SPEAKER(config, "mono").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
MCFG_DEVICE_ADD("ym1", YM2203, 24000000/6) /* ? */
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", 1.0)
ym2203_device &ym1(YM2203(config, "ym1", 24000000/6)); /* ? */
ym1.add_route(0, "mono", 0.10);
ym1.add_route(1, "mono", 0.10);
ym1.add_route(2, "mono", 0.10);
ym1.add_route(3, "mono", 1.0);
MCFG_DEVICE_ADD("ym2", YM2203, 24000000/6) /* ? */
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", 1.0)
ym2203_device &ym2(YM2203(config, "ym2", 24000000/6)); /* ? */
ym2.add_route(0, "mono", 0.10);
ym2.add_route(1, "mono", 0.10);
ym2.add_route(2, "mono", 0.10);
ym2.add_route(3, "mono", 1.0);
MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MSM5205(config, m_msm_1, 24000000/64); /* ? */
m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */
m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */
m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
MSM5205(config, m_msm_2, 24000000/64); /* ? */
m_msm_2->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */
m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */
m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25);
}
MACHINE_CONFIG_START(cps_state::cawingbl)
void cps_state::cawingbl(machine_config &config)
{
fcrash(config);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, irq6_line_hold) /* needed to write to scroll values */
m_maincpu->set_vblank_int("screen", FUNC(cps_state::irq6_line_hold)); /* needed to write to scroll values */
MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(cps_state::kodb)
}
void cps_state::kodb(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 10000000)
MCFG_DEVICE_PROGRAM_MAP(fcrash_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack)
M68000(config, m_maincpu, 10000000);
m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::fcrash_map);
m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt));
m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack));
MCFG_DEVICE_ADD("audiocpu", Z80, 3579545)
MCFG_DEVICE_PROGRAM_MAP(kodb_sound_map)
Z80(config, m_audiocpu, 3579545);
m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::kodb_sound_map);
MCFG_MACHINE_START_OVERRIDE(cps_state,kodb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1))
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(64*8, 32*8);
m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash));
m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1)
MCFG_PALETTE_ADD("palette", 0xc00)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1);
PALETTE(config, m_palette).set_entries(0xc00);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -1776,35 +1776,35 @@ MACHINE_CONFIG_START(cps_state::kodb)
ym2151.add_route(1, "mono", 0.35);
/* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(cps_state::mtwinsb)
OKIM6295(config, m_oki, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH); // pin 7 can be changed by the game code, see f006 on z80
m_oki->add_route(ALL_OUTPUTS, "mono", 0.30);
}
void cps_state::mtwinsb(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 10000000)
MCFG_DEVICE_PROGRAM_MAP(mtwinsb_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack)
M68000(config, m_maincpu, 10000000);
m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::mtwinsb_map);
m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt));
m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack));
MCFG_DEVICE_ADD("audiocpu", Z80, 3579545)
MCFG_DEVICE_PROGRAM_MAP(sgyxz_sound_map)
Z80(config, m_audiocpu, 3579545);
m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sgyxz_sound_map);
MCFG_MACHINE_START_OVERRIDE(cps_state, mtwinsb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1))
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(64*8, 32*8);
m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash));
m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1)
MCFG_PALETTE_ADD("palette", 0xc00)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1);
PALETTE(config, m_palette).set_entries(0xc00);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -1817,35 +1817,35 @@ MACHINE_CONFIG_START(cps_state::mtwinsb)
ym2151.add_route(0, "mono", 0.35);
ym2151.add_route(1, "mono", 0.35);
MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(cps_state::sf2mdt)
OKIM6295(config, m_oki, XTAL(16'000'000)/4/4, okim6295_device::PIN7_HIGH);
m_oki->add_route(ALL_OUTPUTS, "mono", 0.30);
}
void cps_state::sf2mdt(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 12000000)
MCFG_DEVICE_PROGRAM_MAP(sf2mdt_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, irq4_line_hold) /* triggers the sprite ram and scroll writes */
M68000(config, m_maincpu, 12000000);
m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sf2mdt_map);
m_maincpu->set_vblank_int("screen", FUNC(cps_state::irq4_line_hold)); /* triggers the sprite ram and scroll writes */
MCFG_DEVICE_ADD("audiocpu", Z80, 3579545)
MCFG_DEVICE_PROGRAM_MAP(sf2mdt_z80map)
Z80(config, m_audiocpu, 3579545);
m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::sf2mdt_z80map);
MCFG_MACHINE_START_OVERRIDE(cps_state, sf2mdt)
MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1))
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(64*8, 32*8);
m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash));
m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1)
MCFG_PALETTE_ADD("palette", 4096)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1);
PALETTE(config, m_palette).set_entries(4096);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -1855,48 +1855,48 @@ MACHINE_CONFIG_START(cps_state::sf2mdt)
YM2151(config, "2151", XTAL(3'579'545)).add_route(0, "mono", 0.35).add_route(1, "mono", 0.35);
/* has 2x MSM5205 instead of OKI6295 */
MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MSM5205(config, m_msm_1, 24000000/64); /* ? */
m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */
m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */
m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
MSM5205(config, m_msm_2, 24000000/64); /* ? */
m_msm_2->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */
m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */
m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25);
}
MACHINE_CONFIG_START(cps_state::sf2b)
void cps_state::sf2b(machine_config &config)
{
sf2mdt(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(sf2b_map)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(cps_state::knightsb)
m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::sf2b_map);
}
void cps_state::knightsb(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 24000000 / 2)
MCFG_DEVICE_PROGRAM_MAP(knightsb_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(cps_state, cps1_int_ack)
M68000(config, m_maincpu, 24000000 / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &cps_state::knightsb_map);
m_maincpu->set_vblank_int("screen", FUNC(cps_state::cps1_interrupt));
m_maincpu->set_irq_acknowledge_callback(FUNC(cps_state::cps1_int_ack));
MCFG_DEVICE_ADD("audiocpu", Z80, 29821000 / 8)
MCFG_DEVICE_PROGRAM_MAP(knightsb_z80map)
Z80(config, m_audiocpu, 29821000 / 8);
m_audiocpu->set_addrmap(AS_PROGRAM, &cps_state::knightsb_z80map);
MCFG_MACHINE_START_OVERRIDE(cps_state, knightsb)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, cps_state, screen_vblank_cps1))
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(64*8, 32*8);
m_screen->set_visarea(8*8, (64-8)*8-1, 2*8, 30*8-1);
m_screen->set_screen_update(FUNC(cps_state::screen_update_fcrash));
m_screen->screen_vblank().set(FUNC(cps_state::screen_vblank_cps1));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cps1)
MCFG_PALETTE_ADD("palette", 0xc00)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cps1);
PALETTE(config, m_palette).set_entries(0xc00);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -1909,16 +1909,16 @@ MACHINE_CONFIG_START(cps_state::knightsb)
ym2151.add_route(1, "mono", 0.35);
/* has 2x MSM5205 instead of OKI6295 */
MCFG_DEVICE_ADD("msm1", MSM5205, 24000000/64) /* ? */
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int1)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MSM5205(config, m_msm_1, 24000000/64); /* ? */
m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int1)); /* interrupt function */
m_msm_1->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */
m_msm_1->add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD("msm2", MSM5205, 24000000/64) /* ? */
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, cps_state, m5205_int2)) /* interrupt function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
MSM5205(config, m_msm_2, 24000000/64); /* ? */
m_msm_1->vck_legacy_callback().set(FUNC(cps_state::m5205_int2)); /* interrupt function */
m_msm_2->set_prescaler_selector(msm5205_device::S96_4B); /* 4KHz 4-bit */
m_msm_2->add_route(ALL_OUTPUTS, "mono", 0.25);
}
#define CODE_SIZE 0x400000

View File

@ -615,33 +615,32 @@ void firetrap_state::machine_reset()
m_coin_command_pending = 0;
}
MACHINE_CONFIG_START(firetrap_state::firetrap)
void firetrap_state::firetrap(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, FIRETRAP_XTAL/2) // 6 MHz
MCFG_DEVICE_PROGRAM_MAP(firetrap_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", firetrap_state, firetrap_irq)
Z80(config, m_maincpu, FIRETRAP_XTAL/2); // 6 MHz
m_maincpu->set_addrmap(AS_PROGRAM, &firetrap_state::firetrap_map);
m_maincpu->set_vblank_int("screen", FUNC(firetrap_state::firetrap_irq));
MCFG_DEVICE_ADD("audiocpu", M6502, FIRETRAP_XTAL/8) // 1.5 MHz
MCFG_DEVICE_PROGRAM_MAP(sound_map)
/* IRQs are caused by the ADPCM chip */
/* NMIs are caused by the main CPU */
M6502(config, m_audiocpu, FIRETRAP_XTAL/8); // 1.5 MHz
m_audiocpu->set_addrmap(AS_PROGRAM, &firetrap_state::sound_map);
/* IRQs are caused by the ADPCM chip */
/* NMIs are caused by the main CPU */
MCFG_DEVICE_ADD("mcu", I8751, XTAL(8'000'000))
MCFG_DEVICE_DISABLE()
I8751(config, "mcu", XTAL(8'000'000)).set_disable();
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(57.4034) // PCB measurement
// 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, 1*8, 31*8-1)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
// screen.set_refresh_hz(57.4034); // PCB measurement
// screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
// screen.set_size(32*8, 32*8);
// screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
// DECO video CRTC, unverified
MCFG_SCREEN_RAW_PARAMS(FIRETRAP_XTAL/2,384,0,256,272,8,248)
MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap)
MCFG_SCREEN_PALETTE(m_palette)
screen.set_raw(FIRETRAP_XTAL/2,384,0,256,272,8,248);
screen.set_screen_update(FUNC(firetrap_state::screen_update_firetrap));
screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_firetrap)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_firetrap);
PALETTE(config, m_palette, FUNC(firetrap_state::firetrap_palette), 256);
/* sound hardware */
@ -650,42 +649,42 @@ MACHINE_CONFIG_START(firetrap_state::firetrap)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
MCFG_DEVICE_ADD("ymsnd", YM3526, FIRETRAP_XTAL/4) // 3 MHz
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
ym3526_device &ymsnd(YM3526(config, "ymsnd", FIRETRAP_XTAL/4)); // 3 MHz
ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
LS157(config, m_adpcm_select, 0);
m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w));
MCFG_DEVICE_ADD("msm", MSM5205, FIRETRAP_XTAL/32) // 375 kHz
MCFG_MSM5205_VCK_CALLBACK(WRITELINE(*this, firetrap_state, firetrap_adpcm_int))
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 7.8125kHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(firetrap_state::firetrapbl)
MSM5205(config, m_msm, FIRETRAP_XTAL/32); // 375 kHz
m_msm->vck_callback().set(FUNC(firetrap_state::firetrap_adpcm_int));
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 7.8125kHz */
m_msm->add_route(ALL_OUTPUTS, "mono", 0.30);
}
void firetrap_state::firetrapbl(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, FIRETRAP_XTAL/2) // 6 MHz
MCFG_DEVICE_PROGRAM_MAP(firetrap_bootleg_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", firetrap_state, firetrap_irq)
Z80(config, m_maincpu, FIRETRAP_XTAL/2); // 6 MHz
m_maincpu->set_addrmap(AS_PROGRAM, &firetrap_state::firetrap_bootleg_map);
m_maincpu->set_vblank_int("screen", FUNC(firetrap_state::firetrap_irq));
MCFG_DEVICE_ADD("audiocpu", M6502, FIRETRAP_XTAL/8) // 1.5 MHz
MCFG_DEVICE_PROGRAM_MAP(sound_map)
/* IRQs are caused by the ADPCM chip */
/* NMIs are caused by the main CPU */
M6502(config, m_audiocpu, FIRETRAP_XTAL/8); // 1.5 MHz
m_audiocpu->set_addrmap(AS_PROGRAM, &firetrap_state::sound_map);
/* IRQs are caused by the ADPCM chip */
/* NMIs are caused by the main CPU */
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
// MCFG_SCREEN_REFRESH_RATE(57.4034)
// 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, 1*8, 31*8-1)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
// screen.set_refresh_hz(57.4034);
// screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
// screen.set_size(32*8, 32*8);
// screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
// DECO video CRTC, unverified
MCFG_SCREEN_RAW_PARAMS(FIRETRAP_XTAL/2,384,0,256,272,8,248)
MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap)
MCFG_SCREEN_PALETTE(m_palette)
screen.set_raw(FIRETRAP_XTAL/2,384,0,256,272,8,248);
screen.set_screen_update(FUNC(firetrap_state::screen_update_firetrap));
screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, m_palette, gfx_firetrap)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_firetrap);
PALETTE(config, m_palette, FUNC(firetrap_state::firetrap_palette), 256);
/* sound hardware */
@ -694,17 +693,17 @@ MACHINE_CONFIG_START(firetrap_state::firetrapbl)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
MCFG_DEVICE_ADD("ymsnd", YM3526, FIRETRAP_XTAL/4) // 3 MHz
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
ym3526_device &ymsnd(YM3526(config, "ymsnd", FIRETRAP_XTAL/4)); // 3 MHz
ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
LS157(config, m_adpcm_select, 0);
m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w));
MCFG_DEVICE_ADD("msm", MSM5205, FIRETRAP_XTAL/32) // 375 kHz
MCFG_MSM5205_VCK_CALLBACK(WRITELINE(*this, firetrap_state, firetrap_adpcm_int))
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 7.8125kHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
MSM5205(config, m_msm, FIRETRAP_XTAL/32); // 375 kHz
m_msm->vck_callback().set(FUNC(firetrap_state::firetrap_adpcm_int));
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 7.8125kHz */
m_msm->add_route(ALL_OUTPUTS, "mono", 0.30);
}

View File

@ -900,16 +900,16 @@ MACHINE_RESET_MEMBER(fromance_state,fromance)
m_flipscreen = 0;
}
MACHINE_CONFIG_START(fromance_state::nekkyoku)
void fromance_state::nekkyoku(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80,12000000/2) /* 6.00 Mhz ? */
MCFG_DEVICE_PROGRAM_MAP(nekkyoku_main_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fromance_state, irq0_line_hold)
Z80(config, m_maincpu, 12000000/2); /* 6.00 Mhz ? */
m_maincpu->set_addrmap(AS_PROGRAM, &fromance_state::nekkyoku_main_map);
m_maincpu->set_vblank_int("screen", FUNC(fromance_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80,12000000/2) /* 6.00 Mhz ? */
MCFG_DEVICE_PROGRAM_MAP(nekkyoku_sub_map)
MCFG_DEVICE_IO_MAP(nekkyoku_sub_io_map)
Z80(config, m_subcpu, 12000000/2); /* 6.00 Mhz ? */
m_subcpu->set_addrmap(AS_PROGRAM, &fromance_state::nekkyoku_sub_map);
m_subcpu->set_addrmap(AS_IO, &fromance_state::nekkyoku_sub_io_map);
GENERIC_LATCH_8(config, m_sublatch);
m_sublatch->set_separate_acknowledge(true);
@ -918,15 +918,15 @@ MACHINE_CONFIG_START(fromance_state::nekkyoku)
MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_SCREEN_PALETTE("palette")
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
m_screen->set_size(512, 256);
m_screen->set_visarea(0, 352-1, 0, 240-1);
m_screen->set_screen_update(FUNC(fromance_state::screen_update_fromance));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fromance)
MCFG_PALETTE_ADD("palette", 1024)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_fromance);
PALETTE(config, m_palette).set_entries(1024);
VSYSTEM_GGA(config, m_gga, 14318181 / 2); // clock not verified
m_gga->write_cb().set(FUNC(fromance_state::fromance_gga_data_w));
@ -938,23 +938,22 @@ MACHINE_CONFIG_START(fromance_state::nekkyoku)
AY8910(config, "aysnd", 12000000/6).add_route(ALL_OUTPUTS, "mono", 0.15); // type not verified
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, fromance_state, fromance_adpcm_int)) /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(fromance_state::idolmj)
MSM5205(config, m_msm, 384000);
m_msm->vck_legacy_callback().set(FUNC(fromance_state::fromance_adpcm_int)); /* IRQ handler */
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */
m_msm->add_route(ALL_OUTPUTS, "mono", 0.80);
}
void fromance_state::idolmj(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 2) /* 6.00 Mhz ? */
MCFG_DEVICE_PROGRAM_MAP(fromance_main_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fromance_state, irq0_line_hold)
Z80(config, m_maincpu, XTAL(12'000'000) / 2); /* 6.00 Mhz ? */
m_maincpu->set_addrmap(AS_PROGRAM, &fromance_state::fromance_main_map);
m_maincpu->set_vblank_int("screen", FUNC(fromance_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80, XTAL(12'000'000) / 2) /* 6.00 Mhz ? */
MCFG_DEVICE_PROGRAM_MAP(fromance_sub_map)
MCFG_DEVICE_IO_MAP(idolmj_sub_io_map)
Z80(config, m_subcpu, XTAL(12'000'000) / 2); /* 6.00 Mhz ? */
m_subcpu->set_addrmap(AS_PROGRAM, &fromance_state::fromance_sub_map);
m_subcpu->set_addrmap(AS_IO, &fromance_state::idolmj_sub_io_map);
GENERIC_LATCH_8(config, m_sublatch);
m_sublatch->set_separate_acknowledge(true);
@ -963,15 +962,15 @@ MACHINE_CONFIG_START(fromance_state::idolmj)
MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_SCREEN_PALETTE("palette")
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
m_screen->set_size(512, 256);
m_screen->set_visarea(0, 352-1, 0, 240-1);
m_screen->set_screen_update(FUNC(fromance_state::screen_update_fromance));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fromance)
MCFG_PALETTE_ADD("palette", 2048)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_fromance);
PALETTE(config, m_palette).set_entries(2048);
VSYSTEM_GGA(config, m_gga, XTAL(14'318'181) / 2); // divider not verified
m_gga->write_cb().set(FUNC(fromance_state::fromance_gga_data_w));
@ -983,23 +982,23 @@ MACHINE_CONFIG_START(fromance_state::idolmj)
YM2149(config, "aysnd", 12000000/6).add_route(ALL_OUTPUTS, "mono", 0.15);
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, fromance_state, fromance_adpcm_int)) /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END
MSM5205(config, m_msm, 384000);
m_msm->vck_legacy_callback().set(FUNC(fromance_state::fromance_adpcm_int)); /* IRQ handler */
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */
m_msm->add_route(ALL_OUTPUTS, "mono", 0.80);
}
MACHINE_CONFIG_START(fromance_state::fromance)
void fromance_state::fromance(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000) / 2) /* 6.00 Mhz ? */
MCFG_DEVICE_PROGRAM_MAP(fromance_main_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", fromance_state, irq0_line_hold)
Z80(config, m_maincpu, XTAL(12'000'000) / 2); /* 6.00 Mhz ? */
m_maincpu->set_addrmap(AS_PROGRAM, &fromance_state::fromance_main_map);
m_maincpu->set_vblank_int("screen", FUNC(fromance_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80, XTAL(12'000'000) / 2) /* 6.00 Mhz ? */
MCFG_DEVICE_PROGRAM_MAP(fromance_sub_map)
MCFG_DEVICE_IO_MAP(fromance_sub_io_map)
Z80(config, m_subcpu, XTAL(12'000'000) / 2); /* 6.00 Mhz ? */
m_subcpu->set_addrmap(AS_PROGRAM, &fromance_state::fromance_sub_map);
m_subcpu->set_addrmap(AS_IO, &fromance_state::fromance_sub_io_map);
GENERIC_LATCH_8(config, m_sublatch);
m_sublatch->set_separate_acknowledge(true);
@ -1008,15 +1007,15 @@ MACHINE_CONFIG_START(fromance_state::fromance)
MCFG_MACHINE_RESET_OVERRIDE(fromance_state,fromance)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_SCREEN_PALETTE("palette")
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(60);
m_screen->set_size(512, 256);
m_screen->set_visarea(0, 352-1, 0, 240-1);
m_screen->set_screen_update(FUNC(fromance_state::screen_update_fromance));
m_screen->set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fromance)
MCFG_PALETTE_ADD("palette", 2048)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_fromance);
PALETTE(config, m_palette).set_entries(2048);
VSYSTEM_GGA(config, m_gga, XTAL(14'318'181) / 2); // divider not verified
m_gga->write_cb().set(FUNC(fromance_state::fromance_gga_data_w));
@ -1026,14 +1025,13 @@ MACHINE_CONFIG_START(fromance_state::fromance)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("ymsnd", YM2413, 3579545)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
YM2413(config, "ymsnd", 3579545).add_route(ALL_OUTPUTS, "mono", 0.90);
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, fromance_state, fromance_adpcm_int)) /* IRQ handler */
MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 KHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MACHINE_CONFIG_END
MSM5205(config, m_msm, 384000);
m_msm->vck_legacy_callback().set(FUNC(fromance_state::fromance_adpcm_int)); /* IRQ handler */
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */
m_msm->add_route(ALL_OUTPUTS, "mono", 0.10);
}

View File

@ -938,23 +938,23 @@ GFXDECODE_END
MACHINE_CONFIG_START(ppking_state::ppking)
void ppking_state::ppking(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL/2) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(ppking_cpu1_map)
MCFG_DEVICE_IO_MAP(ppking_cpu1_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ppking_state, irq0_line_hold)
Z80(config, m_maincpu, 12_MHz_XTAL/2); /* verified on pcb */
m_maincpu->set_addrmap(AS_PROGRAM, &ppking_state::ppking_cpu1_map);
m_maincpu->set_addrmap(AS_IO, &ppking_state::ppking_cpu1_io);
m_maincpu->set_vblank_int("screen", FUNC(ppking_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80, 12_MHz_XTAL/4) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(cpu2_map)
MCFG_DEVICE_IO_MAP(ppking_cpu2_io)
MCFG_DEVICE_PERIODIC_INT_DRIVER(ppking_state, irq0_line_assert, 60)
Z80(config, m_subcpu, 12_MHz_XTAL/4); /* verified on pcb */
m_subcpu->set_addrmap(AS_PROGRAM, &ppking_state::cpu2_map);
m_subcpu->set_addrmap(AS_IO, &ppking_state::ppking_cpu2_io);
m_subcpu->set_periodic_int(FUNC(ppking_state::irq0_line_assert), attotime::from_hz(60));
MCFG_DEVICE_ADD("audiocpu", MC6809, 12_MHz_XTAL/4) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(ppking_cpu3_map)
MC6809(config, m_audiocpu, 12_MHz_XTAL/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &ppking_state::ppking_cpu3_map);
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
config.m_minimum_quantum = attotime::from_hz(6000);
MCFG_MACHINE_RESET_OVERRIDE(ppking_state, ppking)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@ -969,17 +969,17 @@ MACHINE_CONFIG_START(ppking_state::ppking)
mainlatch.q_out_cb<7>().set(FUNC(ppking_state::flipscreen_w));
/* 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_RAW_PARAMS(12_MHz_XTAL/2,384,0,256,264,16,240) // assume same as Arkanoid
MCFG_SCREEN_UPDATE_DRIVER(ppking_state, screen_update_ppking)
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, 2*8, 30*8-1);
screen.set_raw(12_MHz_XTAL/2,384,0,256,264,16,240); // assume same as Arkanoid
screen.set_screen_update(FUNC(ppking_state::screen_update_ppking));
screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ppking)
MCFG_PALETTE_ADD("palette", 1024)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ppking);
PALETTE(config, m_palette).set_entries(1024);
MCFG_VIDEO_START_OVERRIDE(ppking_state, ppking)
@ -998,25 +998,25 @@ MACHINE_CONFIG_START(ppking_state::ppking)
ymsnd.add_route(2, "mono", 0.60);
ymsnd.add_route(3, "mono", 0.50);
MCFG_DEVICE_ADD("msm", MSM5205, 455_kHz_XTAL) /* verified on pcb */
MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(gladiatr_state::gladiatr)
MSM5205(config, m_msm, 455_kHz_XTAL); /* verified on pcb */
m_msm->set_prescaler_selector(msm5205_device::SEX_4B); /* vclk input mode */
m_msm->add_route(ALL_OUTPUTS, "mono", 0.60);
}
void gladiatr_state::gladiatr(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL/2) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(gladiatr_cpu1_map)
MCFG_DEVICE_IO_MAP(gladiatr_cpu1_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gladiatr_state, irq0_line_hold)
Z80(config, m_maincpu, 12_MHz_XTAL/2); /* verified on pcb */
m_maincpu->set_addrmap(AS_PROGRAM, &gladiatr_state::gladiatr_cpu1_map);
m_maincpu->set_addrmap(AS_IO, &gladiatr_state::gladiatr_cpu1_io);
m_maincpu->set_vblank_int("screen", FUNC(gladiatr_state::irq0_line_hold));
MCFG_DEVICE_ADD("sub", Z80, 12_MHz_XTAL/4) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(cpu2_map)
MCFG_DEVICE_IO_MAP(gladiatr_cpu2_io)
Z80(config, m_subcpu, 12_MHz_XTAL/4); /* verified on pcb */
m_subcpu->set_addrmap(AS_PROGRAM, &gladiatr_state::cpu2_map);
m_subcpu->set_addrmap(AS_IO, &gladiatr_state::gladiatr_cpu2_io);
MCFG_DEVICE_ADD("audiocpu", MC6809, 12_MHz_XTAL/4) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(gladiatr_cpu3_map)
MC6809(config, m_audiocpu, 12_MHz_XTAL/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &gladiatr_state::gladiatr_cpu3_map);
MCFG_MACHINE_RESET_OVERRIDE(gladiatr_state,gladiator)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // NEC uPD449 CMOS SRAM
@ -1056,22 +1056,22 @@ MACHINE_CONFIG_START(gladiatr_state::gladiatr)
m_csnd->t1_in_cb().set(FUNC(gladiatr_state::csnd_t1_r));
/* lazy way to make polled serial between MCUs work */
MCFG_QUANTUM_PERFECT_CPU("ucpu")
config.m_perfect_cpu_quantum = subtag("ucpu");
MCFG_CLOCK_ADD("tclk", 12_MHz_XTAL/8/128/2) /* verified on pcb */
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, gladiatr_state, tclk_w));
CLOCK(config, "tclk", 12_MHz_XTAL/8/128/2) /* verified on pcb */
.signal_handler().set(FUNC(gladiatr_state::tclk_w));
/* 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(gladiatr_state, screen_update_gladiatr)
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, 2*8, 30*8-1);
screen.set_screen_update(FUNC(gladiatr_state::screen_update_gladiatr));
screen.set_palette(m_palette);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_gladiatr)
MCFG_PALETTE_ADD("palette", 1024)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_gladiatr);
PALETTE(config, m_palette).set_entries(1024);
MCFG_VIDEO_START_OVERRIDE(gladiatr_state,gladiatr)
@ -1089,12 +1089,12 @@ MACHINE_CONFIG_START(gladiatr_state::gladiatr)
ymsnd.add_route(2, "mono", 0.60);
ymsnd.add_route(3, "mono", 0.50);
MCFG_DEVICE_ADD("msm", MSM5205, 455_kHz_XTAL) /* verified on pcb */
MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MSM5205(config, m_msm, 455_kHz_XTAL); /* verified on pcb */
m_msm->set_prescaler_selector(msm5205_device::SEX_4B); /* vclk input mode */
m_msm->add_route(ALL_OUTPUTS, "mono", 0.60);
MCFG_DEVICE_ADD("filtlatch", LS259, 0) // 9R - filters on sound output
MACHINE_CONFIG_END
LS259(config, "filtlatch", 0); // 9R - filters on sound output
}
/***************************************************************************

View File

@ -914,21 +914,21 @@ static GFXDECODE_START( gfx_gsword )
GFXDECODE_END
MACHINE_CONFIG_START(gsword_state::gsword)
void gsword_state::gsword(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(18'000'000)/6) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(cpu1_map)
MCFG_DEVICE_IO_MAP(cpu1_io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gsword_state, irq0_line_hold)
Z80(config, m_maincpu, XTAL(18'000'000)/6); /* verified on pcb */
m_maincpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu1_map);
m_maincpu->set_addrmap(AS_IO, &gsword_state::cpu1_io_map);
m_maincpu->set_vblank_int("screen", FUNC(gsword_state::irq0_line_hold));
MCFG_DEVICE_ADD(m_subcpu, Z80, XTAL(18'000'000)/6) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(cpu2_map)
MCFG_DEVICE_IO_MAP(cpu2_io_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(gsword_state, sound_interrupt, 4*60)
Z80(config, m_subcpu, XTAL(18'000'000)/6); /* verified on pcb */
m_subcpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu2_map);
m_subcpu->set_addrmap(AS_IO, &gsword_state::cpu2_io_map);
m_subcpu->set_periodic_int(FUNC(gsword_state::sound_interrupt), attotime::from_hz(4*60));
MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(18'000'000)/6) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(cpu3_map)
Z80(config, m_audiocpu, XTAL(18'000'000)/6); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &gsword_state::cpu3_map);
upi41_cpu_device &mcu1(I8041(config, "mcu1", 12'000'000/2)); // clock unknown, using value from gladiatr
mcu1.p1_in_cb().set([this] () { return ioport("MCU1.P1")->read() | BIT(m_mcu2_p1, 0); });
@ -955,16 +955,16 @@ MACHINE_CONFIG_START(gsword_state::gsword)
CLOCK(config, "tclk", 12'000'000/8/128/2).signal_handler().set([this] (int state) { m_tclk_val = state != 0; });
// lazy way to ensure communication works
MCFG_QUANTUM_PERFECT_CPU("mcu1")
config.m_perfect_cpu_quantum = subtag("mcu1");
/* 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(gsword_state, screen_update_gsword)
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(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_screen_update(FUNC(gsword_state::screen_update_gsword));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_gsword);
PALETTE(config, m_palette, FUNC(gsword_state::gsword_palette), 64*4 + 64*4, 256);
@ -980,23 +980,23 @@ MACHINE_CONFIG_START(gsword_state::gsword)
m_ay1->port_a_write_callback().set(FUNC(gsword_state::nmi_set_w));
m_ay1->add_route(ALL_OUTPUTS, "mono", 0.30);
MCFG_DEVICE_ADD("msm", MSM5205, XTAL(400'000)) /* verified on pcb */
MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) /* vclk input mode */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(josvolly_state::josvolly)
msm5205_device &msm(MSM5205(config, "msm", XTAL(400'000))); /* verified on pcb */
msm.set_prescaler_selector(msm5205_device::SEX_4B); /* vclk input mode */
msm.add_route(ALL_OUTPUTS, "mono", 0.60);
}
void josvolly_state::josvolly(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 18000000/4) /* ? */
MCFG_DEVICE_PROGRAM_MAP(cpu1_map)
MCFG_DEVICE_IO_MAP(josvolly_cpu1_io_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(josvolly_state, irq0_line_hold, 2*60)
Z80(config, m_maincpu, 18000000/4); /* ? */
m_maincpu->set_addrmap(AS_PROGRAM, &josvolly_state::cpu1_map);
m_maincpu->set_addrmap(AS_IO, &josvolly_state::josvolly_cpu1_io_map);
m_maincpu->set_periodic_int(FUNC(josvolly_state::irq0_line_hold), attotime::from_hz(2*60));
MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/4) /* ? */
MCFG_DEVICE_PROGRAM_MAP(josvolly_cpu2_map)
MCFG_DEVICE_IO_MAP(josvolly_cpu2_io_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", josvolly_state, irq0_line_assert)
Z80(config, m_audiocpu, 12000000/4); /* ? */
m_audiocpu->set_addrmap(AS_PROGRAM, &josvolly_state::josvolly_cpu2_map);
m_audiocpu->set_addrmap(AS_IO, &josvolly_state::josvolly_cpu2_io_map);
m_audiocpu->set_vblank_int("screen", FUNC(josvolly_state::irq0_line_assert));
upi41_cpu_device &mcu1(I8741(config, "mcu1", 18000000/2)); /* ? */
mcu1.p1_in_cb().set(FUNC(josvolly_state::mcu1_p1_r));
@ -1019,17 +1019,16 @@ MACHINE_CONFIG_START(josvolly_state::josvolly)
ppi.in_pc_callback().set_ioport("IN0"); // START
// the second MCU polls the first MCU's outputs, so it needs tight sync
MCFG_QUANTUM_PERFECT_CPU("mcu2")
config.m_perfect_cpu_quantum = subtag("mcu2");
/* 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(josvolly_state, screen_update_gsword)
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(0*8, 32*8-1, 2*8, 30*8-1);
screen.set_screen_update(FUNC(josvolly_state::screen_update_gsword));
screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_gsword);
PALETTE(config, m_palette, FUNC(josvolly_state::josvolly_palette), 64*4 + 64*4, 256);
@ -1038,14 +1037,12 @@ MACHINE_CONFIG_START(josvolly_state::josvolly)
SPEAKER(config, "mono").front_center();
AY8910(config, m_ay0, 1500000).add_route(ALL_OUTPUTS, "mono", 0.30);
AY8910(config, m_ay1, 1500000).add_route(ALL_OUTPUTS, "mono", 0.30);
#if 0
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MSM5205(config, "msm", 384000).add_route(ALL_OUTPUTS, "mono", 0.60);
#endif
MACHINE_CONFIG_END
}
/***************************************************************************

View File

@ -542,15 +542,14 @@ void hnayayoi_state::machine_reset()
}
MACHINE_CONFIG_START(hnayayoi_state::hnayayoi)
void hnayayoi_state::hnayayoi(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, 20000000/4 ) /* 5 MHz ???? */
MCFG_DEVICE_PROGRAM_MAP(hnayayoi_map)
MCFG_DEVICE_IO_MAP(hnayayoi_io_map)
Z80(config, m_maincpu, 20000000/4); /* 5 MHz ???? */
m_maincpu->set_addrmap(AS_PROGRAM, &hnayayoi_state::hnayayoi_map);
m_maincpu->set_addrmap(AS_IO, &hnayayoi_state::hnayayoi_io_map);
MCFG_DEVICE_ADD("nmiclock", CLOCK, 8000)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, hnayayoi_state, nmi_clock_w))
CLOCK(config, "nmiclock", 8000).signal_handler().set(FUNC(hnayayoi_state::nmi_clock_w));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@ -561,9 +560,9 @@ MACHINE_CONFIG_START(hnayayoi_state::hnayayoi)
m_mainlatch->q_out_cb<4>().set(FUNC(hnayayoi_state::nmi_enable_w)).invert();
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(20_MHz_XTAL / 2, 632, 0, 512, 263, 0, 243)
MCFG_SCREEN_UPDATE_DEVICE("crtc", hd6845_device, screen_update)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(20_MHz_XTAL / 2, 632, 0, 512, 263, 0, 243);
screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update));
PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256);
@ -586,26 +585,26 @@ MACHINE_CONFIG_START(hnayayoi_state::hnayayoi)
ymsnd.add_route(2, "mono", 0.25);
ymsnd.add_route(3, "mono", 0.80);
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
MSM5205(config, m_msm, 384000);
m_msm->set_prescaler_selector(msm5205_device::SEX_4B);
m_msm->add_route(ALL_OUTPUTS, "mono", 1.0);
}
MACHINE_CONFIG_START(hnayayoi_state::hnfubuki)
void hnayayoi_state::hnfubuki(machine_config &config)
{
hnayayoi(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(hnfubuki_map)
MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_IO)
m_maincpu->set_addrmap(AS_PROGRAM, &hnayayoi_state::hnfubuki_map);
m_maincpu->set_addrmap(AS_IO, address_map_constructor());
// D5
m_mainlatch->q_out_cb<4>().set(FUNC(hnayayoi_state::nmi_enable_w));
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(hnayayoi_state::untoucha)
void hnayayoi_state::untoucha(machine_config &config)
{
hnayayoi(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(untoucha_map)
MCFG_DEVICE_IO_MAP(untoucha_io_map)
m_maincpu->set_addrmap(AS_PROGRAM, &hnayayoi_state::untoucha_map);
m_maincpu->set_addrmap(AS_IO, &hnayayoi_state::untoucha_io_map);
m_mainlatch->q_out_cb<1>().set(m_msm, FUNC(msm5205_device::vclk_w));
m_mainlatch->q_out_cb<2>().set(FUNC(hnayayoi_state::nmi_enable_w));
@ -615,7 +614,7 @@ MACHINE_CONFIG_START(hnayayoi_state::untoucha)
subdevice<hd6845_device>("crtc")->set_update_row_callback(FUNC(hnayayoi_state::untoucha_update_row), this);
MCFG_VIDEO_START_OVERRIDE(hnayayoi_state,untoucha)
MACHINE_CONFIG_END
}
/***************************************************************************

View File

@ -292,14 +292,14 @@ WRITE_LINE_MEMBER(hyperspt_state::vblank_irq)
m_maincpu->set_input_line(0, ASSERT_LINE);
}
MACHINE_CONFIG_START(hyperspt_state::hyperspt)
void hyperspt_state::hyperspt(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD(m_maincpu, KONAMI1, XTAL(18'432'000)/12) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(hyperspt_map)
KONAMI1(config, m_maincpu, XTAL(18'432'000)/12); /* verified on pcb */
m_maincpu->set_addrmap(AS_PROGRAM, &hyperspt_state::hyperspt_map);
MCFG_DEVICE_ADD(m_audiocpu, Z80,XTAL(14'318'181)/4) /* verified on pcb */
MCFG_DEVICE_PROGRAM_MAP(hyperspt_sound_map)
Z80(config, m_audiocpu, XTAL(14'318'181)/4); /* verified on pcb */
m_audiocpu->set_addrmap(AS_PROGRAM, &hyperspt_state::hyperspt_sound_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // F2
mainlatch.q_out_cb<0>().set(FUNC(hyperspt_state::flipscreen_w));
@ -315,14 +315,14 @@ MACHINE_CONFIG_START(hyperspt_state::hyperspt)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
MCFG_SCREEN_ADD(m_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(hyperspt_state, screen_update)
MCFG_SCREEN_PALETTE(m_palette)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hyperspt_state, vblank_irq))
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(hyperspt_state::screen_update));
m_screen->set_palette(m_palette);
m_screen->screen_vblank().set(FUNC(hyperspt_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_hyperspt);
PALETTE(config, m_palette, FUNC(hyperspt_state::hyperspt_palette), 16*16+16*16, 32);
@ -332,18 +332,20 @@ MACHINE_CONFIG_START(hyperspt_state::hyperspt)
GENERIC_LATCH_8(config, "soundlatch");
MCFG_DEVICE_ADD(m_soundbrd, TRACKFLD_AUDIO, 0, m_audiocpu, m_vlm)
TRACKFLD_AUDIO(config, m_soundbrd, 0, m_audiocpu, m_vlm);
MCFG_DEVICE_ADD(m_dac, DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // 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)
DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // unknown DAC
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);
MCFG_DEVICE_ADD(m_sn, SN76496, XTAL(14'318'181)/8) /* verified on pcb */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
SN76496(config, m_sn, XTAL(14'318'181)/8); /* verified on pcb */
m_sn->add_route(ALL_OUTPUTS, "speaker", 1.0);
MCFG_DEVICE_ADD(m_vlm, VLM5030, XTAL(3'579'545)) /* verified on pcb */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
MACHINE_CONFIG_END
VLM5030(config, m_vlm, XTAL(3'579'545)); /* verified on pcb */
m_vlm->add_route(ALL_OUTPUTS, "speaker", 1.0);
}
void hyperspt_state::hyprolyb_adpcm_map(address_map &map)
{
@ -368,28 +370,28 @@ void hyperspt_state::hyprolyb_adpcm_map(address_map &map)
map(0x8000, 0xffff).rom();
}
MACHINE_CONFIG_START(hyperspt_state::hypersptb)
void hyperspt_state::hypersptb(machine_config &config)
{
hyperspt(config);
MCFG_DEVICE_REMOVE("vlm")
config.device_remove("vlm");
m_audiocpu->set_addrmap(AS_PROGRAM, address_map_constructor(&std::remove_pointer_t<decltype(this)>::soundb_map, tag(), this));
MCFG_DEVICE_ADD("adpcm", M6802, XTAL(14'318'181)/8) /* unknown clock */
MCFG_DEVICE_PROGRAM_MAP(hyprolyb_adpcm_map)
M6802(config, "adpcm", XTAL(14'318'181)/8) /* unknown clock */
.set_addrmap(AS_PROGRAM, &hyperspt_state::hyprolyb_adpcm_map);
GENERIC_LATCH_8(config, "soundlatch2");
MCFG_DEVICE_ADD("hyprolyb_adpcm", HYPROLYB_ADPCM, 0)
HYPROLYB_ADPCM(config, "hyprolyb_adpcm", 0);
MCFG_DEVICE_ADD("msm", MSM5205, 384000)
MCFG_MSM5205_VCLK_CB(WRITELINE("hyprolyb_adpcm", hyprolyb_adpcm_device, vck_callback)) /* VCK function */
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4 kHz */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5)
MACHINE_CONFIG_END
msm5205_device &msm(MSM5205(config, "msm", 384000));
msm.vck_legacy_callback().set("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::vck_callback)); /* VCK function */
msm.set_prescaler_selector(msm5205_device::S96_4B); /* 4 kHz */
msm.add_route(ALL_OUTPUTS, "speaker", 0.5);
}
MACHINE_CONFIG_START(hyperspt_state::roadf)
void hyperspt_state::roadf(machine_config &config)
{
hyperspt(config);
m_maincpu->set_addrmap(AS_PROGRAM, address_map_constructor(&std::remove_pointer_t<decltype(this)>::roadf_map, tag(), this));
@ -398,8 +400,8 @@ MACHINE_CONFIG_START(hyperspt_state::roadf)
MCFG_VIDEO_START_OVERRIDE(hyperspt_state,roadf)
MCFG_DEVICE_REMOVE("vlm")
MACHINE_CONFIG_END
config.device_remove("vlm");
}
/***************************************************************************

View File

@ -873,22 +873,22 @@ MACHINE_RESET_MEMBER(jangou_state,jngolady)
MACHINE_CONFIG_START(jangou_state::jangou)
/* basic machine hardware */
MCFG_DEVICE_ADD("cpu0", Z80, MASTER_CLOCK / 8)
MCFG_DEVICE_PROGRAM_MAP(cpu0_map)
MCFG_DEVICE_IO_MAP(cpu0_io)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jangou_state, irq0_line_hold)
Z80(config, m_cpu_0, MASTER_CLOCK / 8);
m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::cpu0_map);
m_cpu_0->set_addrmap(AS_IO, &jangou_state::cpu0_io);
m_cpu_0->set_vblank_int("screen", FUNC(jangou_state::irq0_line_hold));
MCFG_DEVICE_ADD("cpu1", Z80, MASTER_CLOCK / 8)
MCFG_DEVICE_PROGRAM_MAP(cpu1_map)
MCFG_DEVICE_IO_MAP(cpu1_io)
Z80(config, m_cpu_1, MASTER_CLOCK / 8);
m_cpu_1->set_addrmap(AS_PROGRAM, &jangou_state::cpu1_map);
m_cpu_1->set_addrmap(AS_IO, &jangou_state::cpu1_io);
MCFG_JANGOU_BLITTER_ADD("blitter", MASTER_CLOCK/4)
JANGOU_BLITTER(config, "blitter", MASTER_CLOCK/4);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4,320,0,256,264,16,240) // assume same as nightgal.cpp
MCFG_SCREEN_UPDATE_DRIVER(jangou_state, screen_update_jangou)
MCFG_SCREEN_PALETTE(m_palette)
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_raw(MASTER_CLOCK/4,320,0,256,264,16,240); // assume same as nightgal.cpp
screen.set_screen_update(FUNC(jangou_state::screen_update_jangou));
screen.set_palette(m_palette);
PALETTE(config, m_palette, FUNC(jangou_state::jangou_palette), 32);
@ -902,66 +902,62 @@ MACHINE_CONFIG_START(jangou_state::jangou)
aysnd.port_b_read_callback().set(FUNC(jangou_state::input_system_r));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.40);
MCFG_DEVICE_ADD("cvsd", HC55516, MASTER_CLOCK / 1024)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MACHINE_CONFIG_END
HC55516(config, m_cvsd, MASTER_CLOCK / 1024);
m_cvsd->add_route(ALL_OUTPUTS, "mono", 0.60);
}
MACHINE_CONFIG_START(jangou_state::jngolady)
void jangou_state::jngolady(machine_config &config)
{
jangou(config);
/* basic machine hardware */
m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::jngolady_cpu0_map);
MCFG_DEVICE_MODIFY("cpu0")
MCFG_DEVICE_PROGRAM_MAP(jngolady_cpu0_map)
m_cpu_1->set_addrmap(AS_PROGRAM, &jangou_state::jngolady_cpu1_map);
m_cpu_1->set_addrmap(AS_IO, &jangou_state::jngolady_cpu1_io);
MCFG_DEVICE_MODIFY("cpu1")
MCFG_DEVICE_PROGRAM_MAP(jngolady_cpu1_map)
MCFG_DEVICE_IO_MAP(jngolady_cpu1_io)
MCFG_DEVICE_ADD("nsc", NSC8105, MASTER_CLOCK / 8)
MCFG_DEVICE_PROGRAM_MAP(nsc_map)
NSC8105(config, m_nsc, MASTER_CLOCK / 8);
m_nsc->set_addrmap(AS_PROGRAM, &jangou_state::nsc_map);
MCFG_MACHINE_START_OVERRIDE(jangou_state,jngolady)
MCFG_MACHINE_RESET_OVERRIDE(jangou_state,jngolady)
/* sound hardware */
MCFG_DEVICE_REMOVE("cvsd")
config.device_remove("cvsd");
MCFG_DEVICE_ADD("msm", MSM5205, XTAL(400'000))
MCFG_MSM5205_VCLK_CB(WRITELINE(*this, jangou_state, jngolady_vclk_cb))
MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END
MSM5205(config, m_msm, XTAL(400'000));
m_msm->vck_legacy_callback().set(FUNC(jangou_state::jngolady_vclk_cb));
m_msm->set_prescaler_selector(msm5205_device::S96_4B);
m_msm->add_route(ALL_OUTPUTS, "mono", 0.80);
}
MACHINE_CONFIG_START(jangou_state::cntrygrl)
void jangou_state::cntrygrl(machine_config &config)
{
jangou(config);
/* basic machine hardware */
m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::cntrygrl_cpu0_map);
m_cpu_0->set_addrmap(AS_IO, &jangou_state::cntrygrl_cpu0_io);
MCFG_DEVICE_MODIFY("cpu0")
MCFG_DEVICE_PROGRAM_MAP(cntrygrl_cpu0_map )
MCFG_DEVICE_IO_MAP(cntrygrl_cpu0_io )
MCFG_DEVICE_REMOVE("cpu1")
config.device_remove("cpu1");
MCFG_MACHINE_START_OVERRIDE(jangou_state,common)
MCFG_MACHINE_RESET_OVERRIDE(jangou_state,common)
/* sound hardware */
MCFG_DEVICE_REMOVE("cvsd")
MCFG_DEVICE_REMOVE("soundlatch")
MACHINE_CONFIG_END
config.device_remove("cvsd");
config.device_remove("soundlatch");
}
MACHINE_CONFIG_START(jangou_state::roylcrdn)
void jangou_state::roylcrdn(machine_config &config)
{
jangou(config);
/* basic machine hardware */
m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::roylcrdn_cpu0_map);
m_cpu_0->set_addrmap(AS_IO, &jangou_state::roylcrdn_cpu0_io);
MCFG_DEVICE_MODIFY("cpu0")
MCFG_DEVICE_PROGRAM_MAP(roylcrdn_cpu0_map )
MCFG_DEVICE_IO_MAP(roylcrdn_cpu0_io )
MCFG_DEVICE_REMOVE("cpu1")
config.device_remove("cpu1");
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@ -969,9 +965,9 @@ MACHINE_CONFIG_START(jangou_state::roylcrdn)
MCFG_MACHINE_RESET_OVERRIDE(jangou_state,common)
/* sound hardware */
MCFG_DEVICE_REMOVE("cvsd")
MCFG_DEVICE_REMOVE("soundlatch")
MACHINE_CONFIG_END
config.device_remove("cvsd");
config.device_remove("soundlatch");
}
/*************************************