mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
-drivers/discoboy, docastle, drmicro, dynax, fcrash, firetrap, fromance, gladiatr, gsword, hnayayoi, hyperspt, jangout: Removed MACHINE_CONFIG macros, nw
This commit is contained in:
parent
294317d096
commit
471288048d
@ -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 )
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
|
Loading…
Reference in New Issue
Block a user