void drtomy_state::drtomy(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 24000000/2); /* ? MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &drtomy_state::drtomy_map); m_maincpu->set_vblank_int("screen", FUNC(drtomy_state::irq6_line_hold)); /* video hardware */ 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*16, 32*16); screen.set_visarea(0, 320-1, 16, 256-1); screen.set_screen_update(FUNC(drtomy_state::screen_update_drtomy)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_drtomy); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); /* sound hardware */ SPEAKER(config, "mono").front_center(); OKIM6295(config, m_oki, 26000000/16, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.8); }
void powerbls_state::powerbls(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 12000000); /* 12 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &powerbls_state::powerbls_map); m_maincpu->set_vblank_int("screen", FUNC(sslam_state::irq2_line_hold)); I80C51(config, m_audiocpu, 12000000); /* 83C751 */ m_audiocpu->port_out_cb<1>().set(FUNC(powerbls_state::playmark_snd_control_w)); m_audiocpu->port_in_cb<3>().set(FUNC(powerbls_state::playmark_snd_command_r)); m_audiocpu->port_out_cb<3>().set(FUNC(powerbls_state::playmark_oki_w)); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(58); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(64*8, 32*8); screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(powerbls_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbls); PALETTE(config, m_palette, 0x200).set_format(PALETTE_FORMAT_RRRRGGGGBBBBRGBx); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); /* verified on original PCB */ m_oki->add_route(ALL_OUTPUTS, "mono", 0.80); }
void prehisle_state::prehisle(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(18'000'000)/2); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &prehisle_state::prehisle_map); m_maincpu->set_vblank_int("screen", FUNC(prehisle_state::irq4_line_hold)); Z80(config, m_audiocpu, XTAL(4'000'000)); /* verified on pcb */ m_audiocpu->set_addrmap(AS_PROGRAM, &prehisle_state::prehisle_sound_map); m_audiocpu->set_addrmap(AS_IO, &prehisle_state::prehisle_sound_io_map); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // the screen parameters are guessed but should be accurate. They // give a theoretical refresh rate of 59.1856Hz while the measured // rate on a snk68.c with very similar hardware board is 59.16Hz. screen.set_raw(XTAL(24'000'000)/4, 384, 0, 256, 264, 16, 240); screen.set_screen_update(FUNC(prehisle_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_prehisle); PALETTE(config, m_palette).set_format(palette_device::RGBx_444, 1024); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(4'000'000))); /* verified on pcb */ ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); UPD7759(config, m_upd7759); m_upd7759->add_route(ALL_OUTPUTS, "mono", 0.90); }
void zerozone_state::zerozone(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 10000000); /* 10 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &zerozone_state::main_map); Z80(config, m_audiocpu, 1000000); /* 1 MHz ??? */ m_audiocpu->set_addrmap(AS_PROGRAM, &zerozone_state::sound_map); config.m_minimum_quantum = attotime::from_hz(600); /* video hardware */ 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(64*8, 32*8); screen.set_visarea(1*8, 47*8-1, 2*8, 30*8-1); screen.set_palette("palette"); screen.set_screen_update(FUNC(zerozone_state::screen_update)); screen.screen_vblank().set(FUNC(zerozone_state::vblank_w)); GFXDECODE(config, m_gfxdecode, "palette", gfx_zerozone); PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 256); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); okim6295_device &oki(OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified oki.add_route(ALL_OUTPUTS, "mono", 1.0); }
void blockout_state::blockout(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, MAIN_CLOCK); /* MRH - 8.76 makes gfx/adpcm samples sync better -- but 10 is correct speed*/ m_maincpu->set_addrmap(AS_PROGRAM, &blockout_state::main_map); TIMER(config, "scantimer").configure_scanline(FUNC(blockout_state::blockout_scanline), "screen", 0, 1); Z80(config, m_audiocpu, AUDIO_CLOCK); /* 3.579545 MHz */ m_audiocpu->set_addrmap(AS_PROGRAM, &blockout_state::audio_map); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); /* assume same as ddragon3 with adjusted visible display area */ m_screen->set_raw(XTAL(28'000'000) / 4, 448, 0, 320, 272, 10, 250); m_screen->set_screen_update(FUNC(blockout_state::screen_update)); m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(2, &blockout_state::blockout_xBGR_444, 513); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); ym2151_device &ymsnd(YM2151(config, "ymsnd", AUDIO_CLOCK)); ymsnd.irq_handler().set(FUNC(blockout_state::irq_handler)); ymsnd.add_route(0, "lspeaker", 0.60); ymsnd.add_route(1, "rspeaker", 0.60); okim6295_device &oki(OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH)); oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50); oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50); }
INPUT_PORTS_END void tr175_state::tr175(machine_config &config) { M68000(config, m_maincpu, 12'000'000); m_maincpu->set_addrmap(AS_PROGRAM, &tr175_state::mem_map); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(28.322_MHz_XTAL, 900, 0, 720, 449, 0, 416); // guess screen.set_screen_update("avdc", FUNC(scn2674_device::screen_update)); scn2674_device &avdc(SCN2674(config, "avdc", 28.322_MHz_XTAL / 18)); // guess avdc.intr_callback().set_inputline("maincpu", M68K_IRQ_2); avdc.set_character_width(18); // guess avdc.set_display_callback(FUNC(tr175_state::draw_character)); avdc.set_addrmap(0, &tr175_state::vram_map); avdc.set_screen("screen"); scn2681_device &duart(SCN2681(config, "duart", 11.0592_MHz_XTAL / 3)); // is this the right clock? duart.irq_cb().set_inputline("maincpu", M68K_IRQ_1); PALETTE(config, "palette", 0x100); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, "palette")); ramdac.set_addrmap(0, &tr175_state::ramdac_map); }
INPUT_PORTS_END void mightyframe_state::mightyframe(machine_config &config) { m68000_device &maincpu(M68000(config, "maincpu", XTAL(16'000'000))); // no idea of clock maincpu.set_addrmap(AS_PROGRAM, &mightyframe_state::mem_map); }
GFXDECODE_END /************************* * Machine Drivers * *************************/ void goldngam_state::base(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, MASTER_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &goldngam_state::swisspkr_map); PTM6840(config, m_ptm, 2'000'000); m_ptm->irq_callback().set_inputline("maincpu", M68K_IRQ_2); /* video hardware */ 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(64*8, 64*8); screen.set_visarea(4*8, 43*8-1, 1*8, 37*8-1); // 312x288 screen.set_screen_update(FUNC(goldngam_state::screen_update_goldngam)); screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_goldngam); PALETTE(config, "palette", FUNC(goldngam_state::palette_init), 512); /* sound hardware */ SPEAKER(config, "mono").front_center(); }
ROM_END //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- void bbc_tube_casper_device::device_add_mconfig(machine_config &config) { M68000(config, m_m68000, 4_MHz_XTAL); m_m68000->set_addrmap(AS_PROGRAM, &bbc_tube_casper_device::tube_casper_mem); VIA6522(config, m_via6522_0, 4_MHz_XTAL / 2); m_via6522_0->writepb_handler().set(m_via6522_1, FUNC(via6522_device::write_pa)); m_via6522_0->ca2_handler().set(m_via6522_1, FUNC(via6522_device::write_cb1)); m_via6522_0->cb2_handler().set(m_via6522_1, FUNC(via6522_device::write_ca1)); m_via6522_0->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_tube_slot_device::irq_w)); VIA6522(config, m_via6522_1, 4_MHz_XTAL / 2); m_via6522_1->writepb_handler().set(m_via6522_0, FUNC(via6522_device::write_pa)); m_via6522_1->ca2_handler().set(m_via6522_0, FUNC(via6522_device::write_cb1)); m_via6522_1->cb2_handler().set(m_via6522_0, FUNC(via6522_device::write_ca1)); m_via6522_1->irq_handler().set_inputline(m_m68000, M68K_IRQ_1); /* software lists */ SOFTWARE_LIST(config, "flop_ls_casper").set_original("bbc_flop_68000"); }
void powerbal_state::magicstk(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 12000000); /* 12 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::magicstk_main_map); m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold)); EEPROM_93C46_16BIT(config, "eeprom").default_value(0); MCFG_MACHINE_START_OVERRIDE(powerbal_state,powerbal) MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(61); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); screen.set_size(128*8, 64*8); screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1); screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512); MCFG_VIDEO_START_OVERRIDE(powerbal_state,powerbal) /* sound hardware */ SPEAKER(config, "mono").front_center(); OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); m_oki->set_addrmap(0, &powerbal_state::oki_map); }
void sliver_state::sliver(machine_config &config) { M68000(config, m_maincpu, 12000000); m_maincpu->set_addrmap(AS_PROGRAM, &sliver_state::sliver_map); m_maincpu->set_vblank_int("screen", FUNC(sliver_state::irq4_line_hold)); TIMER(config, "obj_actel").configure_periodic(FUNC(sliver_state::obj_irq_cb), attotime::from_hz(60)); /* unknown clock, causes "obj actel ready error" without this */ // irq 2 valid but not used? I8051(config, m_audiocpu, 8000000); m_audiocpu->set_addrmap(AS_PROGRAM, &sliver_state::soundmem_prg); m_audiocpu->set_addrmap(AS_IO, &sliver_state::soundmem_io); m_audiocpu->port_out_cb<1>().set(FUNC(sliver_state::oki_setbank)); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); m_screen->set_size(64*8, 32*8); m_screen->set_visarea(0*8, 384-1-16, 0*8, 240-1); m_screen->set_screen_update(FUNC(sliver_state::screen_update)); PALETTE(config, "palette").set_entries(0x100); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, "palette")); ramdac.set_addrmap(0, &sliver_state::ramdac_map); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); GENERIC_LATCH_8(config, m_soundlatch); okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH)); oki.set_addrmap(0, &sliver_state::oki_map); oki.add_route(ALL_OUTPUTS, "lspeaker", 0.6); oki.add_route(ALL_OUTPUTS, "rspeaker", 0.6); }
void wildpkr_state::wildpkr(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, MAIN_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &wildpkr_state::wildpkr_map); //m_maincpu->set_vblank_int("screen", FUNC(wildpkr_state::irq2_line_hold)); // guess MC68681(config, m_duart, SEC_CLOCK); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_size(384, 280); screen.set_visarea(0, 384-1, 0, 280-1); screen.set_screen_update("acrtc", FUNC(hd63484_device::update_screen)); screen.set_palette("palette"); HD63484(config, "acrtc", 0).set_addrmap(0, &wildpkr_state::hd63484_map); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, "palette")); ramdac.set_addrmap(0, &wildpkr_state::ramdac_map); PALETTE(config, "palette", FUNC(wildpkr_state::wildpkr_palette), 256); /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8930(config, "aysnd", AY_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.50); }
void konmedal68k_state::kzaurus(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(33'868'800)/4); // 33.8688 MHz crystal verified on PCB m_maincpu->set_addrmap(AS_PROGRAM, &konmedal68k_state::kzaurus_main); TIMER(config, "scantimer").configure_scanline(FUNC(konmedal68k_state::scanline), "screen", 0, 1); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(59.62); /* verified on pcb */ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(64*8, 32*8); screen.set_visarea(40, 400-1, 16, 240-1); screen.set_screen_update(FUNC(konmedal68k_state::screen_update_konmedal68k)); screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xBGR_888, 8192).enable_shadows(); K056832(config, m_k056832, 0); m_k056832->set_tile_callback(FUNC(konmedal68k_state::tile_callback), this); m_k056832->set_config("gfx1", K056832_BPP_4dj, 1, 0); m_k056832->set_palette(m_palette); K055555(config, m_k055555, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); YMZ280B(config, m_ymz, XTAL(33'868'800)/2); // 33.8688 MHz xtal verified on PCB m_ymz->add_route(0, "lspeaker", 1.0); m_ymz->add_route(1, "rspeaker", 1.0); }
void sslam_state::sslam(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 12000000); /* 12 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &sslam_state::sslam_program_map); m_maincpu->set_vblank_int("screen", FUNC(sslam_state::irq2_line_hold)); I8051(config, m_audiocpu, 12000000); m_audiocpu->set_disable(); /* Internal code is not dumped - 2 boards were protected */ /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(58); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(64*8, 32*8); screen.set_visarea(1*8, 39*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(sslam_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_sslam); PALETTE(config, m_palette, 0x800).set_format(PALETTE_FORMAT_RRRRGGGGBBBBRGBx); /* sound hardware */ SPEAKER(config, "mono").front_center(); OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); m_oki->add_route(ALL_OUTPUTS, "mono", 0.80); }
void rastan_state::rastan(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &rastan_state::rastan_map); m_maincpu->set_vblank_int("screen", FUNC(rastan_state::irq5_line_hold)); Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ m_audiocpu->set_addrmap(AS_PROGRAM, &rastan_state::rastan_s_map); config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(40*8, 32*8); screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(rastan_state::screen_update_rastan)); screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_rastan); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048); PC080SN(config, m_pc080sn, 0); m_pc080sn->set_gfxdecode_tag("gfxdecode"); PC090OJ(config, m_pc090oj, 0); m_pc090oj->set_gfx_region(1); m_pc090oj->set_gfxdecode_tag("gfxdecode"); m_pc090oj->set_palette_tag("palette"); /* sound hardware */ SPEAKER(config, "mono").front_center(); ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(16'000'000)/4)); /* verified on pcb */ ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.port_write_handler().set(FUNC(rastan_state::rastan_bankswitch_w)); ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50); MSM5205(config, m_msm, XTAL(384'000)); /* verified on pcb */ m_msm->vck_legacy_callback().set(FUNC(rastan_state::rastan_msm5205_vck)); /* VCK function */ m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 kHz */ m_msm->add_route(ALL_OUTPUTS, "mono", 0.60); LS157(config, m_adpcm_sel, 0); m_adpcm_sel->out_callback().set(m_msm, FUNC(msm5205_device::data_w)); pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); }
void f1gp_state::f1gpb(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 10000000); /* 10 MHz ??? */ m_maincpu->set_addrmap(AS_PROGRAM, &f1gp_state::f1gpb_cpu1_map); m_maincpu->set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold)); m68000_device &sub(M68000(config, "sub", 10000000)); /* 10 MHz ??? */ sub.set_addrmap(AS_PROGRAM, &f1gp_state::f1gpb_cpu2_map); sub.set_vblank_int("screen", FUNC(f1gp_state::irq1_line_hold)); /* NO sound CPU */ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame */ ACIA6850(config, m_acia, 0); m_acia->irq_handler().set_inputline("sub", M68K_IRQ_3); m_acia->txd_handler().set("acia", FUNC(acia6850_device::write_rxd)); // loopback for now clock_device &acia_clock(CLOCK(config, "acia_clock", 1000000)); // guessed acia_clock.signal_handler().set(m_acia, FUNC(acia6850_device::write_txc)); acia_clock.signal_handler().append(m_acia, FUNC(acia6850_device::write_rxc)); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_size(64*8, 32*8); screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(f1gp_state::screen_update_f1gpb)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_f1gp); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 2048); //VSYSTEM_GGA(config, "gga", 0); /* sound hardware */ SPEAKER(config, "mono").front_center(); okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified oki.add_route(ALL_OUTPUTS, "mono", 1.00); }
void bitgraph_state::bitgrphb(machine_config &config) { M68000(config, m_maincpu, XTAL(6'900'000)); m_maincpu->set_addrmap(AS_PROGRAM, &bitgraph_state::bitgraphb_mem); bg_motherboard(config); // bg_ppu(config); CLOCK(config, "system_clock", 1040).signal_handler().set(FUNC(bitgraph_state::system_clock_write)); RAM(config, RAM_TAG).set_default_size("512K"); }
void crospang_state::pitapat(machine_config &config) { crospang(config); // can't be 14'318'181 / 2 as the inputs barely respond and the background graphics glitch badly when the screen fills, doesn't appear to be a vblank bit anywhere to negate this either, P12 reated part M68000(config.replace(), m_maincpu, XTAL(14'318'181)); m_maincpu->set_addrmap(AS_PROGRAM, &crospang_state::pitapat_map); m_maincpu->set_vblank_int("screen", FUNC(crospang_state::irq6_line_hold)); /* basic machine hardware */ m_maincpu->set_addrmap(AS_PROGRAM, &crospang_state::pitapat_map); }
void konamigq_state::konamigq(machine_config &config) { /* basic machine hardware */ CXD8530BQ(config, m_maincpu, XTAL(67'737'600)); m_maincpu->set_addrmap(AS_PROGRAM, &konamigq_state::konamigq_map); m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&konamigq_state::scsi_dma_read, this)); m_maincpu->subdevice<psxdma_device>("dma")->install_write_handler(5, psxdma_device::write_delegate(&konamigq_state::scsi_dma_write, this)); m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M"); M68000(config, m_soundcpu, XTAL(32'000'000)/4); /* 8MHz - measured */ m_soundcpu->set_addrmap(AS_PROGRAM, &konamigq_state::konamigq_sound_map); TMS57002(config, m_dasp, XTAL(48'000'000)/2); /* 24MHz - measured */ m_dasp->set_addrmap(AS_DATA, &konamigq_state::konamigq_dasp_map); m_dasp->set_periodic_int(FUNC(konamigq_state::tms_sync), attotime::from_hz(48000)); MB89371(config, "mb89371", 0); EEPROM_93C46_16BIT(config, "eeprom").default_data(konamigq_def_eeprom, 128); scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0)); scsi.set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); AM53CF96(config, m_am53cf96, 0); m_am53cf96->set_scsi_port("scsi"); m_am53cf96->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10)); /* video hardware */ CXD8538Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen"); SCREEN(config, "screen", SCREEN_TYPE_RASTER); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); K056800(config, m_k056800, XTAL(18'432'000)); m_k056800->int_callback().set_inputline(m_soundcpu, M68K_IRQ_1); k054539_device &k054539_1(K054539(config, "k054539_1", XTAL(18'432'000))); k054539_1.set_addrmap(0, &konamigq_state::konamigq_k054539_map); k054539_1.timer_handler().set(FUNC(konamigq_state::k054539_irq_gen)); k054539_1.add_route(0, "lspeaker", 1.0); k054539_1.add_route(1, "rspeaker", 1.0); k054539_device &k054539_2(K054539(config, "k054539_2", XTAL(18'432'000))); k054539_2.set_addrmap(0, &konamigq_state::konamigq_k054539_map); k054539_2.add_route(0, "lspeaker", 1.0); k054539_2.add_route(1, "rspeaker", 1.0); }
void esqkt_state::ts(machine_config &config) { M68000(config, m_maincpu, 16_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &esqkt_state::ts_map); ES5510(config, m_esp, 10_MHz_XTAL); m_esp->set_disable(); auto &panel(ESQPANEL2X40_VFX(config, "sq1panel")); panel.write_tx().set(m_duart, FUNC(scn2681_device::rx_b_w)); SCN2681(config, m_duart, 4000000); m_duart->irq_cb().set(FUNC(esqkt_state::duart_irq_handler)); m_duart->a_tx_cb().set(FUNC(esqkt_state::duart_tx_a)); m_duart->b_tx_cb().set(FUNC(esqkt_state::duart_tx_b)); m_duart->outport_cb().set(FUNC(esqkt_state::duart_output)); m_duart->set_clocks(500000, 500000, 1000000, 1000000); auto &mdin(MIDI_PORT(config, "mdin")); midiin_slot(mdin); mdin.rxd_handler().set(m_duart, FUNC(scn2681_device::rx_a_w)); // route MIDI Tx send directly to 68681 channel A Rx midiout_slot(MIDI_PORT(config, "mdout")); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); ESQ_5505_5510_PUMP(config, m_pump, 16_MHz_XTAL / (16 * 32)); m_pump->set_esp(m_esp); m_pump->add_route(0, "lspeaker", 1.0); m_pump->add_route(1, "rspeaker", 1.0); auto &es5506a(ES5506(config, "ensoniq", 16_MHz_XTAL)); es5506a.sample_rate_changed().set(FUNC(esqkt_state::es5506_clock_changed)); es5506a.set_region0("waverom"); /* Bank 0 */ es5506a.set_region1("waverom2"); /* Bank 1 */ es5506a.set_region2("waverom3"); /* Bank 0 */ es5506a.set_region3("waverom4"); /* Bank 1 */ es5506a.set_channels(4); /* channels */ es5506a.irq_cb().set(FUNC(esqkt_state::esq5506_otto_irq)); /* irq */ es5506a.read_port_cb().set(FUNC(esqkt_state::esq5506_read_adc)); /* ADC */ es5506a.add_route(0, "pump", 1.0, 0); es5506a.add_route(1, "pump", 1.0, 1); es5506a.add_route(2, "pump", 1.0, 2); es5506a.add_route(3, "pump", 1.0, 3); es5506a.add_route(4, "pump", 1.0, 4); es5506a.add_route(5, "pump", 1.0, 5); es5506a.add_route(6, "pump", 1.0, 6); es5506a.add_route(7, "pump", 1.0, 7); }
void midway_cheap_squeak_deluxe_device::device_add_mconfig(machine_config &config) { M68000(config, m_cpu, DERIVED_CLOCK(1, 2)); m_cpu->set_addrmap(AS_PROGRAM, &midway_cheap_squeak_deluxe_device::csdeluxe_map); PIA6821(config, m_pia, 0); m_pia->writepa_handler().set(FUNC(midway_cheap_squeak_deluxe_device::porta_w)); m_pia->writepb_handler().set(FUNC(midway_cheap_squeak_deluxe_device::portb_w)); m_pia->irqa_handler().set(FUNC(midway_cheap_squeak_deluxe_device::irq_w)); m_pia->irqb_handler().set(FUNC(midway_cheap_squeak_deluxe_device::irq_w)); AD7533(config, m_dac, 0).add_route(ALL_OUTPUTS, *this, 1.0); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); }
void qdrmfgp_state::qdrmfgp(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(32'000'000)/2); m_maincpu->set_addrmap(AS_PROGRAM, &qdrmfgp_state::qdrmfgp_map); TIMER(config, "scantimer").configure_scanline(FUNC(qdrmfgp_state::qdrmfgp_interrupt), "screen", 0, 1); MCFG_MACHINE_START_OVERRIDE(qdrmfgp_state,qdrmfgp) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, true); m_ata->irq_handler().set(FUNC(qdrmfgp_state::ide_interrupt)); /* video hardware */ 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(64*8, 32*8); screen.set_visarea(40, 40+384-1, 16, 16+224-1); screen.set_screen_update(FUNC(qdrmfgp_state::screen_update_qdrmfgp)); screen.set_palette(m_palette); PALETTE(config, m_palette, 2048); m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR); MCFG_VIDEO_START_OVERRIDE(qdrmfgp_state,qdrmfgp) K056832(config, m_k056832, 0); m_k056832->set_tile_callback(FUNC(qdrmfgp_state::qdrmfgp_tile_callback), this); m_k056832->set_config("gfx1", K056832_BPP_4dj, 1, 0); m_k056832->set_palette(m_palette); K053252(config, m_k053252, XTAL(32'000'000)/4); m_k053252->set_offsets(40, 16); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); k054539_device &k054539(K054539(config, m_k054539, XTAL(18'432'000))); k054539.set_addrmap(0, &qdrmfgp_state::qdrmfgp_k054539_map); k054539.timer_handler().set(FUNC(qdrmfgp_state::k054539_irq1_gen)); k054539.add_route(0, "lspeaker", 1.0); k054539.add_route(1, "rspeaker", 1.0); }
/************************************* * * Graphics definitions * *************************************/ static const gfx_layout pfmolayout = { 8,8, RGN_FRAC(1,2), 4, { 0, 1, 2, 3 }, { 0, 4, RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 8, 12, RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+12 }, { 0*8, 2*8, 4*8, 6*8, 8*8, 10*8, 12*8, 14*8 }, 16*8 }; static GFXDECODE_START( gfx_klax ) GFXDECODE_ENTRY( "gfx1", 0, pfmolayout, 256, 16 ) /* sprites & playfield */ GFXDECODE_ENTRY( "gfx2", 0, pfmolayout, 0, 16 ) /* sprites & playfield */ GFXDECODE_END static const gfx_layout bootleg_layout = { 8,8, RGN_FRAC(1,4), 4, { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, { 0,1,2,3,4,5,6,7 }, { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, 8*8 }; static GFXDECODE_START( gfx_klax2bl ) GFXDECODE_ENTRY( "gfx1", 0, bootleg_layout, 256, 16 ) /* sprites & playfield */ GFXDECODE_ENTRY( "gfx2", 0, pfmolayout, 0, 16 ) /* sprites & playfield */ GFXDECODE_END /************************************* * * Machine driver * *************************************/ void klax_state::klax(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, ATARI_CLOCK_14MHz/2); m_maincpu->set_addrmap(AS_PROGRAM, &klax_state::klax_map); EEPROM_2816(config, "eeprom").lock_after_write(true); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ GFXDECODE(config, m_gfxdecode, "palette", gfx_klax); PALETTE(config, "palette").set_format(palette_device::IRGB_1555, 512).set_membits(8); TILEMAP(config, m_playfield_tilemap, m_gfxdecode, 2, 8, 8, TILEMAP_SCAN_COLS, 64, 32); m_playfield_tilemap->set_info_callback(FUNC(klax_state::get_playfield_tile_info)); ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, klax_state::s_mob_config); m_mob->set_gfxdecode(m_gfxdecode); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ m_screen->set_raw(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240); m_screen->set_screen_update(FUNC(klax_state::screen_update_klax)); m_screen->set_palette("palette"); m_screen->screen_vblank().set(FUNC(klax_state::video_int_write_line)); /* sound hardware */ SPEAKER(config, "mono").front_center(); OKIM6295(config, "oki", ATARI_CLOCK_14MHz/4/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); }
void welltris_state::welltris(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 20000000/2); /* 10 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &welltris_state::main_map); m_maincpu->set_vblank_int("screen", FUNC(welltris_state::irq1_line_hold)); Z80(config, m_audiocpu, 8000000/2); /* 4 MHz ??? */ m_audiocpu->set_addrmap(AS_PROGRAM, &welltris_state::sound_map); m_audiocpu->set_addrmap(AS_IO, &welltris_state::sound_port_map); /* IRQs are triggered by the YM2610 */ /* video hardware */ 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(512, 256); m_screen->set_visarea(15, 367-1, 8, 248-1); m_screen->set_screen_update(FUNC(welltris_state::screen_update)); m_screen->set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_welltris); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 2048); VSYSTEM_GGA(config, "gga", XTAL(14'318'181) / 2); // divider not verified VSYSTEM_SPR2(config, m_spr_old, 0); m_spr_old->set_gfx_region(1); m_spr_old->set_pritype(-1); m_spr_old->set_gfxdecode_tag(m_gfxdecode); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); m_soundlatch->set_separate_acknowledge(true); ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000)); ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.add_route(0, "mono", 0.25); ymsnd.add_route(1, "mono", 0.75); ymsnd.add_route(2, "mono", 0.75); }
INPUT_PORTS_END void stellafr_state::stellafr(machine_config &config) { M68000(config, m_maincpu, 10000000 ); //? m_maincpu->set_addrmap(AS_PROGRAM, &stellafr_state::stellafr_map); m_maincpu->set_irq_acknowledge_callback(FUNC(stellafr_state::irq_ack)); MC68681(config, m_duart, 3686400); m_duart->irq_cb().set_inputline(m_maincpu, M68K_IRQ_2); // ? m_duart->outport_cb().set(FUNC(stellafr_state::duart_output_w)); SPEAKER(config, "mono").front_center(); ay8910_device &aysnd(AY8910(config, "aysnd", 1000000)); aysnd.add_route(ALL_OUTPUTS, "mono", 1.0); aysnd.port_a_read_callback().set_ioport("INPUTS"); aysnd.port_b_write_callback().set(FUNC(stellafr_state::ay8910_portb_w)); }
void taito_en_device::device_add_mconfig(machine_config &config) { /* basic machine hardware */ M68000(config, m_audiocpu, XTAL(30'476'100) / 2); m_audiocpu->set_addrmap(AS_PROGRAM, &taito_en_device::en_sound_map); m_audiocpu->set_addrmap(m68000_device::AS_CPU_SPACE, &taito_en_device::fc7_map); ES5510(config, m_esp, XTAL(10'000'000)); // from Gun Buster schematics m_esp->set_disable(); MC68681(config, m_duart68681, XTAL(16'000'000) / 4); m_duart68681->set_clocks(XTAL(16'000'000)/2/8, XTAL(16'000'000)/2/16, XTAL(16'000'000)/2/16, XTAL(16'000'000)/2/8); m_duart68681->irq_cb().set_inputline(m_audiocpu, M68K_IRQ_6); m_duart68681->outport_cb().set(FUNC(taito_en_device::duart_output)); MB87078(config, m_mb87078); m_mb87078->gain_changed().set(FUNC(taito_en_device::mb87078_gain_changed)); MB8421(config, "dpram", 0); // host accesses this from the other side /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); ESQ_5505_5510_PUMP(config, m_pump, XTAL(30'476'100) / (2 * 16 * 32)); m_pump->set_esp(m_esp); m_pump->add_route(0, "lspeaker", 1.0); m_pump->add_route(1, "rspeaker", 1.0); ES5505(config, m_ensoniq, XTAL(30'476'100) / 2); m_ensoniq->sample_rate_changed().set(FUNC(taito_en_device::es5505_clock_changed)); m_ensoniq->set_region0("ensoniq.0"); m_ensoniq->set_region1("ensoniq.0"); m_ensoniq->set_channels(4); m_ensoniq->add_route(0, "pump", 1.0, 0); m_ensoniq->add_route(1, "pump", 1.0, 1); m_ensoniq->add_route(2, "pump", 1.0, 2); m_ensoniq->add_route(3, "pump", 1.0, 3); m_ensoniq->add_route(4, "pump", 1.0, 4); m_ensoniq->add_route(5, "pump", 1.0, 5); m_ensoniq->add_route(6, "pump", 1.0, 6); m_ensoniq->add_route(7, "pump", 1.0, 7); }
void lwriter_state::lwriter(machine_config &config) { M68000(config, m_maincpu, CPU_CLK); m_maincpu->set_addrmap(AS_PROGRAM, &lwriter_state::maincpu_map); SCC8530N(config, m_scc, CPU_CLK); m_scc->configure_channels(RXC_CLK, 0, RXC_CLK, 0); /* Port A */ m_scc->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); m_scc->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts)); /* Port B */ m_scc->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd)); m_scc->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts)); /* Interrupt */ m_scc->out_int_callback().set("via", FUNC(via6522_device::write_ca1)); //m_scc->out_int_callback().set(FUNC(lwriter_state::scc_int)); rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal")); rs232a.rxd_handler().set("scc", FUNC(scc8530_device::rxa_w)); rs232a.cts_handler().set("scc", FUNC(scc8530_device::ctsa_w)); rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, "terminal")); rs232b.rxd_handler().set("scc", FUNC(scc8530_device::rxb_w)); rs232b.cts_handler().set("scc", FUNC(scc8530_device::ctsb_w)); #if TPI TPI6525(config, "tpi", 0); #else VIA6522(config, m_via, CPU_CLK/10); // 68000 E clock presumed m_via->readpa_handler().set(FUNC(lwriter_state::via_pa_r)); m_via->readpb_handler().set(FUNC(lwriter_state::via_pb_r)); m_via->writepa_handler().set(FUNC(lwriter_state::via_pa_w)); m_via->writepb_handler().set(FUNC(lwriter_state::via_pb_w)); m_via->cb1_handler().set(FUNC(lwriter_state::via_cb1_w)); m_via->ca2_handler().set(FUNC(lwriter_state::via_ca2_w)); m_via->cb2_handler().set(FUNC(lwriter_state::via_cb2_w)); m_via->irq_handler().set(FUNC(lwriter_state::via_int_w)); #endif }
void wildpkr_state::tabpkr(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(24'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, &wildpkr_state::tabpkr_map); m_maincpu->set_periodic_int(FUNC(wildpkr_state::irq3_line_assert), attotime::from_hz(60*256)); m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &wildpkr_state::cpu_space_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); // DS1220Y MC68681(config, m_duart, 3686400); m_duart->irq_cb().set_inputline(m_maincpu, M68K_IRQ_2, ASSERT_LINE); DS2401(config, m_id, 0); CLOCK(config, m_dac_clock, 1500000); // base rate derived from program code m_dac_clock->signal_handler().set_inputline(m_maincpu, M68K_IRQ_5, ASSERT_LINE); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_size(384, 280); screen.set_visarea(0, 384-1, 0, 280-1); screen.set_screen_update("acrtc", FUNC(hd63484_device::update_screen)); screen.set_palette("palette"); screen.screen_vblank().set_inputline(m_maincpu, M68K_IRQ_4, ASSERT_LINE); HD63484(config, "acrtc", 0).set_addrmap(0, &wildpkr_state::hd63484_map); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, "palette")); ramdac.set_addrmap(0, &wildpkr_state::ramdac_map); PALETTE(config, "palette", FUNC(wildpkr_state::wildpkr_palette), 256); /* sound hardware */ SPEAKER(config, "mono").front_center(); AD557(config, m_dac, 0).add_route(ALL_OUTPUTS, "mono", 0.50); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); }
void crospang_state::crospang(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(14'318'181)/2); /* 68000P10 @ 7.15909MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &crospang_state::crospang_map); m_maincpu->set_vblank_int("screen", FUNC(crospang_state::irq6_line_hold)); z80_device &audiocpu(Z80(config, "audiocpu", XTAL(14'318'181)/4)); /* 3.579545MHz */ audiocpu.set_addrmap(AS_PROGRAM, &crospang_state::crospang_sound_map); audiocpu.set_addrmap(AS_IO, &crospang_state::crospang_sound_io_map); /* video hardware */ 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(64*8, 64*8); screen.set_visarea(0, 40*8-1, 0, 30*8-1); screen.set_screen_update(FUNC(crospang_state::screen_update_crospang)); screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x300); GFXDECODE(config, m_gfxdecode, "palette", gfx_crospang); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(0); m_sprgen->set_is_bootleg(true); m_sprgen->set_offsets(5, 7); m_sprgen->set_gfxdecode_tag(m_gfxdecode); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); ym3812_device &ymsnd(YM3812(config, "ymsnd", XTAL(14'318'181)/4)); /* 3.579545MHz */ ymsnd.irq_handler().set_inputline("audiocpu", 0); ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0); okim6295_device &oki(OKIM6295(config, "oki", XTAL(14'318'181)/16, okim6295_device::PIN7_HIGH)); // 1.789772MHz or 0.894886MHz?? & pin 7 not verified oki.add_route(ALL_OUTPUTS, "mono", 1.0); }
void kickgoal_state::kickgoal(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(12'000'000)); /* 12 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &kickgoal_state::program_map); m_maincpu->set_vblank_int("screen", FUNC(kickgoal_state::irq6_line_hold)); PIC16C57(config, m_audiocpu, XTAL(12'000'000)/3); /* 4MHz ? */ m_audiocpu->write_a().set(FUNC(kickgoal_state::soundio_port_a_w)); m_audiocpu->read_b().set(FUNC(kickgoal_state::soundio_port_b_r)); m_audiocpu->write_b().set(FUNC(kickgoal_state::soundio_port_b_w)); m_audiocpu->read_c().set(FUNC(kickgoal_state::soundio_port_c_r)); m_audiocpu->write_c().set(FUNC(kickgoal_state::soundio_port_c_w)); config.m_perfect_cpu_quantum = subtag("maincpu"); EEPROM_93C46_16BIT(config, "eeprom").default_data(kickgoal_default_eeprom_type1, 128); /* video hardware */ 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(64*8, 32*8); screen.set_visarea(9*8, 55*8-1, 2*8, 30*8-1); screen.set_screen_update(FUNC(kickgoal_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_kickgoal); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024); MCFG_VIDEO_START_OVERRIDE(kickgoal_state,kickgoal) /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); OKIM6295(config, m_oki, XTAL(12'000'000)/12, okim6295_device::PIN7_LOW); m_oki->set_addrmap(0, &kickgoal_state::oki_map); m_oki->add_route(ALL_OUTPUTS, "mono", 0.80); }