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); }
GFXDECODE_END //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- void tk02_device::device_add_mconfig(machine_config &config) { screen_device &screen(SCREEN(config, "mono", SCREEN_TYPE_RASTER)); screen.set_color(rgb_t::green()); screen.set_raw(XTAL(8'000'000) * 2, 1024, 0, 640, 312, 0, 250); screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); PALETTE(config, m_palette, palette_device::MONOCHROME); GFXDECODE(config, "gfxdecode", "palette", gfx_tk02); MC6845(config, m_crtc, XTAL(8'000'000) / 4); m_crtc->set_screen("mono"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); m_crtc->set_update_row_callback(FUNC(tk02_device::crtc_update_row), this); m_crtc->out_de_callback().set(FUNC(tk02_device::de_w)); TATUNG_PIPE(config, m_pipe, DERIVED_CLOCK(1, 1), tatung_pipe_cards, nullptr); }
GFXDECODE_END void c900_state::c900(machine_config &config) { /* basic machine hardware */ Z8001(config, m_maincpu, 12_MHz_XTAL / 2); m_maincpu->set_addrmap(AS_PROGRAM, &c900_state::mem_map); m_maincpu->set_addrmap(AS_DATA, &c900_state::data_map); m_maincpu->set_addrmap(AS_IO, &c900_state::io_map); m_maincpu->set_addrmap(z8001_device::AS_SIO, &c900_state::special_io_map); M6508(config, m_fdcpu, 12_MHz_XTAL / 8); // PH1/PH2 = 1.5 MHz m_fdcpu->set_addrmap(AS_PROGRAM, &c900_state::fdc_map); GFXDECODE(config, "gfxdecode", "palette", gfx_c900); PALETTE(config, "palette", palette_device::MONOCHROME); z8036_device &cio(Z8036(config, "cio", 12_MHz_XTAL / 16)); // SNDCLK = 750kHz cio.pb_wr_cb().set(FUNC(c900_state::sound_pb_w)); scc8030_device &scc(SCC8030(config, "scc", 12_MHz_XTAL / 2)); // 5'850'000 is the ideal figure /* Port B */ scc.out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd)); scc.out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); scc.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); //scc.out_int_callback().set("rs232", FUNC(c900_state::scc_int)); rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); rs232.rxd_handler().set("scc", FUNC(scc8030_device::rxb_w)); rs232.cts_handler().set("scc", FUNC(scc8030_device::ctsb_w)); SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_spkrdev).add_route(ALL_OUTPUTS, "mono", 0.05); }
INPUT_PORTS_END void spool99_state::spool99(machine_config &config) { Z80(config, m_maincpu, 24000000/8); m_maincpu->set_addrmap(AS_PROGRAM, &spool99_state::spool99_map); m_maincpu->set_vblank_int("screen", FUNC(spool99_state::irq0_line_hold)); GFXDECODE(config, m_gfxdecode, "palette", gfx_spool99); 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(7*8, 55*8-1, 1*8, 31*8-1); //384x240,raw guess screen.set_screen_update(FUNC(spool99_state::screen_update)); screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xBGR_444, 0x200); EEPROM_93C46_16BIT(config, "eeprom"); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); // clock frequency & pin 7 not verified m_oki->add_route(ALL_OUTPUTS, "lspeaker", 0.47); m_oki->add_route(ALL_OUTPUTS, "rspeaker", 0.47); }
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); }
GFXDECODE_END void sprint8_state::sprint8(machine_config &config) { /* basic machine hardware */ M6800(config, m_maincpu, 11055000 / 11); /* ? */ m_maincpu->set_addrmap(AS_PROGRAM, &sprint8_state::sprint8_map); TIMER(config, "input_timer").configure_periodic(FUNC(sprint8_state::input_callback), attotime::from_hz(60)); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_size(512, 261); m_screen->set_visarea(0, 495, 0, 231); m_screen->set_screen_update(FUNC(sprint8_state::screen_update)); m_screen->screen_vblank().set(FUNC(sprint8_state::screen_vblank)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_sprint8); PALETTE(config, m_palette, FUNC(sprint8_state::sprint8_palette), 36, 18); sprint8_audio(config); }
void ettrivia_state::ettrivia(machine_config &config) { Z80(config, m_maincpu, 12000000/4-48000); //should be ok, it gives the 300 interrupts expected m_maincpu->set_addrmap(AS_PROGRAM, &ettrivia_state::cpu_map); m_maincpu->set_addrmap(AS_IO, &ettrivia_state::io_map); m_maincpu->set_vblank_int("screen", FUNC(ettrivia_state::ettrivia_interrupt)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* 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(256, 256); screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); screen.set_screen_update(FUNC(ettrivia_state::screen_update_ettrivia)); screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_ettrivia); PALETTE(config, "palette", FUNC(ettrivia_state::ettrivia_palette), 256); /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8912(config, m_ay[0], 1500000).add_route(ALL_OUTPUTS, "mono", 0.25); AY8912(config, m_ay[1], 1500000); m_ay[1]->port_a_read_callback().set_ioport("IN1"); m_ay[1]->add_route(ALL_OUTPUTS, "mono", 0.25); AY8912(config, m_ay[2], 1500000); m_ay[2]->port_a_read_callback().set_ioport("IN0"); m_ay[2]->add_route(ALL_OUTPUTS, "mono", 0.25); }
void gberet_state::gberetb(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(20'000'000)/4); // divider guessed m_maincpu->set_addrmap(AS_PROGRAM, &gberet_state::gberetb_map); m_maincpu->set_vblank_int("screen", FUNC(gberet_state::irq0_line_assert)); m_maincpu->set_periodic_int(FUNC(gberet_state::nmi_line_assert), attotime::from_hz(XTAL(20'000'000)/0x8000)); // divider guessed MCFG_MACHINE_START_OVERRIDE(gberet_state,gberet) MCFG_MACHINE_RESET_OVERRIDE(gberet_state,gberet) /* 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(32*8, 32*8); screen.set_visarea(1*8, 31*8-1, 2*8, 30*8-1); screen.set_screen_update(FUNC(gberet_state::screen_update_gberetb)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gberetb); PALETTE(config, m_palette, FUNC(gberet_state::gberet_palette), 2*16*16, 32); MCFG_VIDEO_START_OVERRIDE(gberet_state,gberet) /* sound hardware */ SPEAKER(config, "mono").front_center(); SN76489A(config, m_sn, XTAL(20'000'000)/12).add_route(ALL_OUTPUTS, "mono", 1.0); // divider guessed }
void dday_state::dday(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 2000000); /* 2 MHz ? */ m_maincpu->set_addrmap(AS_PROGRAM, &dday_state::dday_map); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); m_screen->set_size(32*8, 32*8); m_screen->set_visarea(0*8, 32*8-1, 0*8, 28*8-1); m_screen->set_screen_update(FUNC(dday_state::screen_update_dday)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_dday); PALETTE(config, m_palette, FUNC(dday_state::dday_palette), 256).enable_shadows(); m_palette->set_indirect_entries(256); // HACK!!! /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8910(config, m_ay1, 1000000).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay2", 1000000).add_route(ALL_OUTPUTS, "mono", 0.25); }
void megazone_state::megazone(machine_config &config) { /* basic machine hardware */ KONAMI1(config, m_maincpu, XTAL(18'432'000)/9); /* 2.048 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &megazone_state::megazone_map); Z80(config, m_audiocpu, XTAL(18'432'000)/6); /* Z80 Clock is derived from the H1 signal */ m_audiocpu->set_addrmap(AS_PROGRAM, &megazone_state::megazone_sound_map); m_audiocpu->set_addrmap(AS_IO, &megazone_state::megazone_sound_io_map); I8039(config, m_daccpu, XTAL(14'318'181)/2); /* 7.15909MHz */ m_daccpu->set_addrmap(AS_PROGRAM, &megazone_state::megazone_i8039_map); m_daccpu->set_addrmap(AS_IO, &megazone_state::megazone_i8039_io_map); m_daccpu->p1_out_cb().set("dac", FUNC(dac_byte_interface::data_w)); m_daccpu->p2_out_cb().set(FUNC(megazone_state::i8039_irqen_and_status_w)); config.m_minimum_quantum = attotime::from_hz(900); ls259_device &mainlatch(LS259(config, "mainlatch")); // 13A mainlatch.q_out_cb<0>().set(FUNC(megazone_state::coin_counter_2_w)); mainlatch.q_out_cb<1>().set(FUNC(megazone_state::coin_counter_1_w)); mainlatch.q_out_cb<5>().set(FUNC(megazone_state::flipscreen_w)); mainlatch.q_out_cb<7>().set(FUNC(megazone_state::irq_mask_w)); 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(36*8, 32*8); screen.set_visarea(0*8, 36*8-1, 2*8, 30*8-1); screen.set_screen_update(FUNC(megazone_state::screen_update_megazone)); screen.set_palette(m_palette); screen.screen_vblank().set(FUNC(megazone_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_megazone); PALETTE(config, m_palette, FUNC(megazone_state::megazone_palette), 16*16+16*16, 32); /* sound hardware */ SPEAKER(config, "speaker").front_center(); GENERIC_LATCH_8(config, "soundlatch"); ay8910_device &aysnd(AY8910(config, "aysnd", XTAL(14'318'181)/8)); aysnd.port_a_read_callback().set(FUNC(megazone_state::megazone_port_a_r)); aysnd.port_b_write_callback().set(FUNC(megazone_state::megazone_port_b_w)); aysnd.add_route(0, "filter.0.0", 0.30); aysnd.add_route(1, "filter.0.1", 0.30); aysnd.add_route(2, "filter.0.2", 0.30); DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.25); // unknown DAC 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); FILTER_RC(config, m_filter[0]).add_route(ALL_OUTPUTS, "speaker", 1.0); FILTER_RC(config, m_filter[1]).add_route(ALL_OUTPUTS, "speaker", 1.0); FILTER_RC(config, m_filter[2]).add_route(ALL_OUTPUTS, "speaker", 1.0); }
void gberet_state::gberet(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(18'432'000)/6); // X1S (generated by a custom IC) m_maincpu->set_addrmap(AS_PROGRAM, &gberet_state::gberet_map); TIMER(config, "scantimer").configure_scanline(FUNC(gberet_state::gberet_interrupt_tick), "screen", 0, 16); WATCHDOG_TIMER(config, "watchdog"); MCFG_MACHINE_START_OVERRIDE(gberet_state,gberet) MCFG_MACHINE_RESET_OVERRIDE(gberet_state,gberet) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60.60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(32*8, 32*8); screen.set_visarea(1*8, 31*8-1, 2*8, 30*8-1); screen.set_screen_update(FUNC(gberet_state::screen_update_gberet)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gberet); PALETTE(config, m_palette, FUNC(gberet_state::gberet_palette), 2*16*16, 32); MCFG_VIDEO_START_OVERRIDE(gberet_state,gberet) /* sound hardware */ SPEAKER(config, "mono").front_center(); SN76489A(config, m_sn, XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "mono", 1.0); /* type verified on real and bootleg pcb */ }
void _1942p_state::_1942p(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, MAIN_CPU_CLOCK_1942P); /* 4 MHz - verified on PCB */ m_maincpu->set_addrmap(AS_PROGRAM, &_1942p_state::_1942p_map); m_maincpu->set_vblank_int("screen", FUNC(_1942p_state::irq0_line_hold)); // note, powerups won't move down the screen with the original '1942' logic. Z80(config, m_audiocpu, SOUND_CPU_CLOCK_1942P); /* 4 MHz - verified on PCB */ m_audiocpu->set_addrmap(AS_PROGRAM, &_1942p_state::_1942p_sound_map); m_audiocpu->set_addrmap(AS_IO, &_1942p_state::_1942p_sound_io); m_audiocpu->set_periodic_int(FUNC(_1942p_state::irq0_line_hold), attotime::from_hz(4*60)); /* video hardware */ GFXDECODE(config, m_gfxdecode, m_palette, gfx_1942p); PALETTE(config, m_palette, FUNC(_1942p_state::_1942p_palette), 0x500, 0x400); 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(_1942p_state::screen_update)); screen.set_palette(m_palette); /* 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); AY8910(config, "ay1", AUDIO_CLOCK_1942P).add_route(ALL_OUTPUTS, "mono", 0.25); // 1.25 MHz - verified on PCB AY8910(config, "ay2", AUDIO_CLOCK_1942P).add_route(ALL_OUTPUTS, "mono", 0.25); // 1.25 MHz - verified on PCB }
void goindol_state::goindol(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(12'000'000)/2); /* XTAL confirmed, divisor is not */ m_maincpu->set_addrmap(AS_PROGRAM, &goindol_state::goindol_map); m_maincpu->set_vblank_int("screen", FUNC(goindol_state::irq0_line_hold)); z80_device &audiocpu(Z80(config, "audiocpu", XTAL(12'000'000)/2)); /* XTAL confirmed, divisor is not */ audiocpu.set_addrmap(AS_PROGRAM, &goindol_state::sound_map); audiocpu.set_periodic_int(FUNC(goindol_state::irq0_line_hold), attotime::from_hz(4*60)); /* 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(32*8, 32*8); screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); screen.set_screen_update(FUNC(goindol_state::screen_update_goindol)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_goindol); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); YM2203(config, "ymsnd", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* Confirmed pitch from recording */ }
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 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 egghunt_state::egghunt(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 12000000/2); /* 6 MHz ?*/ m_maincpu->set_addrmap(AS_PROGRAM, &egghunt_state::egghunt_map); m_maincpu->set_addrmap(AS_IO, &egghunt_state::io_map); m_maincpu->set_vblank_int("screen", FUNC(egghunt_state::irq0_line_hold)); // or 2 like mitchell.cpp? Z80(config, m_audiocpu, 12000000/2); /* 6 MHz ?*/ m_audiocpu->set_addrmap(AS_PROGRAM, &egghunt_state::sound_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, 32*8); screen.set_visarea(8*8, 56*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(egghunt_state::screen_update_egghunt)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_egghunt); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x400); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); OKIM6295(config, m_oki, 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified }
GFXDECODE_END void ti630_state::ti630(machine_config &config) { /* basic machine hardware */ I80C31(config, m_maincpu, XTAL(10'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &ti630_state::i80c31_prg); m_maincpu->set_addrmap(AS_IO, &ti630_state::i80c31_io); m_maincpu->port_in_cb<1>().set(FUNC(ti630_state::i80c31_p1_r)); m_maincpu->port_out_cb<1>().set(FUNC(ti630_state::i80c31_p1_w)); m_maincpu->port_out_cb<3>().set(FUNC(ti630_state::i80c31_p3_w)); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); screen.set_size(6*16, 9*2); screen.set_visarea(0, 6*16-1, 0, 9*2-1); screen.set_palette("palette"); PALETTE(config, "palette", 2).set_init(FUNC(ti630_state::palette_init_ti630)); GFXDECODE(config, "gfxdecode", "palette", gfx_ti630); HD44780(config, m_lcdc, 0); m_lcdc->set_lcd_size(2, 16); }
void gundealr_state::gundealr(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz verified for Yam! Yam!? */ m_maincpu->set_addrmap(AS_PROGRAM, &gundealr_state::gundealr_main_map); m_maincpu->set_addrmap(AS_IO, &gundealr_state::main_portmap); TIMER(config, "scantimer").configure_scanline(FUNC(gundealr_state::scanline), "screen", 0, 1); /* 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(32*8, 32*8); screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); screen.set_screen_update(FUNC(gundealr_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_gundealr); PALETTE(config, m_palette).set_entries(512); /* sound hardware */ SPEAKER(config, "mono").front_center(); YM2203(config, "ymsnd", XTAL(12'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* 1.5Mhz verified for Yam! Yam!? */ }
void megaduck_state::megaduck(machine_config &config) { /* basic machine hardware */ LR35902(config, m_maincpu, XTAL(4'194'304)); /* 4.194304 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &megaduck_state::megaduck_map); m_maincpu->timer_cb().set(FUNC(gb_state::gb_timer_callback)); m_maincpu->set_halt_bug(true); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_refresh_hz(DMG_FRAMES_PER_SECOND); screen.set_vblank_time(0); screen.set_screen_update("ppu", FUNC(dmg_ppu_device::screen_update)); screen.set_palette(m_palette); screen.set_size(20*8, 18*8); screen.set_visarea(0*8, 20*8-1, 0*8, 18*8-1); GFXDECODE(config, "gfxdecode", m_palette, gfxdecode_device::empty); PALETTE(config, m_palette, FUNC(megaduck_state::megaduck_palette), 4); DMG_PPU(config, m_ppu, m_maincpu); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); DMG_APU(config, m_apu, XTAL(4'194'304)); m_apu->add_route(0, "lspeaker", 0.50); m_apu->add_route(1, "rspeaker", 0.50); /* cartslot */ MEGADUCK_CART_SLOT(config, m_cartslot, megaduck_cart, nullptr); SOFTWARE_LIST(config, "cart_list").set_original("megaduck"); }
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(); }
void mtx_sdxcpm_device::device_add_mconfig(machine_config &config) { /* fdc */ MB8877(config, m_fdc, 8_MHz_XTAL / 8); m_fdc->hld_wr_callback().set(FUNC(mtx_sdx_device::motor_w)); FLOPPY_CONNECTOR(config, "fdc:0", sdx_floppies, "525qd", mtx_sdx_device::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:1", sdx_floppies, "525qd", mtx_sdx_device::floppy_formats).enable_sound(true); /* 80 column video card - required to be installed in MTX internally */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ m_screen->set_refresh_hz(50); m_screen->set_size(960, 313); m_screen->set_visarea(00, 640 - 1, 0, 240 - 1); m_screen->set_screen_update("crtc", FUNC(mc6845_device::screen_update)); GFXDECODE(config, "gfxdecode", "palette", gfx_mtx_sdx); PALETTE(config, "palette", palette_device::RGB_3BIT); MC6845(config, m_crtc, 15_MHz_XTAL / 8); m_crtc->set_screen("screen"); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); m_crtc->set_update_row_callback(FUNC(mtx_sdxcpm_device::crtc_update_row), this); }
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 korgm1_state::korgm1(machine_config &config) { /* basic machine hardware */ V30(config, m_maincpu, MAIN_CLOCK); // V50 actually m_maincpu->set_addrmap(AS_PROGRAM, &korgm1_state::korgm1_map); m_maincpu->set_addrmap(AS_IO, &korgm1_state::korgm1_io); CXD1095(config, "pio", 0); /* video hardware */ /* TODO: LCD actually */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); screen.set_screen_update(FUNC(korgm1_state::screen_update)); screen.set_size(32*8, 32*8); screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); GFXDECODE(config, "gfxdecode", "palette", gfx_korgm1); PALETTE(config, "palette").set_entries(8); /* sound hardware */ SPEAKER(config, "mono").front_center(); // AY8910(config, "aysnd", MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 0.30); }
GFXDECODE_END void gomoku_state::gomoku(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(18'432'000)/12); /* 1.536 MHz ? */ m_maincpu->set_addrmap(AS_PROGRAM, &gomoku_state::gomoku_map); m_maincpu->set_vblank_int("screen", FUNC(gomoku_state::irq0_line_hold)); ls259_device &latch(LS259(config, "latch")); // 7J latch.q_out_cb<1>().set(FUNC(gomoku_state::flipscreen_w)); latch.q_out_cb<2>().set(FUNC(gomoku_state::bg_dispsw_w)); latch.q_out_cb<7>().set_nop(); // start LED? /* 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(256, 256); m_screen->set_visarea(0, 256-1, 16, 256-16-1); m_screen->set_screen_update(FUNC(gomoku_state::screen_update_gomoku)); m_screen->set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_gomoku); PALETTE(config, "palette", FUNC(gomoku_state::gomoku_palette), 64); /* sound hardware */ SPEAKER(config, "mono").front_center(); GOMOKU_SOUND(config, "gomoku").add_route(ALL_OUTPUTS, "mono", 1.0); }
INPUT_PORTS_END /* Machine driver */ void galeb_state::galeb(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, 1000000); m_maincpu->set_addrmap(AS_PROGRAM, &galeb_state::galeb_mem); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(48*8, 16*8); screen.set_visarea(0, 48*8-1, 0, 16*8-1); screen.set_screen_update(FUNC(galeb_state::screen_update_galeb)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_galeb); PALETTE(config, m_palette, palette_device::MONOCHROME); /* audio hardware */ SPEAKER(config, "speaker").front_center(); DAC_1BIT(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.0625); // 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); }
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); }
GFXDECODE_END void subhuntr_state::subhuntr(machine_config &config) { /* basic machine hardware */ S2650(config, m_maincpu, 14318180/4/2); m_maincpu->set_addrmap(AS_PROGRAM, &subhuntr_state::subhuntr_map); m_maincpu->set_addrmap(AS_IO, &subhuntr_state::subhuntr_io_map); m_maincpu->set_addrmap(AS_DATA, &subhuntr_state::subhuntr_data_map); m_maincpu->set_vblank_int("screen", FUNC(subhuntr_state::subhuntr_interrupt)); m_maincpu->sense_handler().set("screen", FUNC(screen_device::vblank)); s2636_device &s2636(S2636(config, "s2636", 0)); s2636.set_offsets(3, -21); s2636.add_route(ALL_OUTPUTS, "mono", 0.10); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_video_attributes(VIDEO_ALWAYS_UPDATE); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(256, 256); screen.set_visarea(1*8, 29*8-1, 2*8, 32*8-1); screen.set_screen_update(FUNC(subhuntr_state::screen_update_subhuntr)); screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_subhuntr); PALETTE(config, "palette", FUNC(subhuntr_state::subhuntr_palette), 26); /* sound hardware */ SPEAKER(config, "mono").front_center(); /* discrete sound */ }
void speglsht_state::speglsht(machine_config &config) { /* basic machine hardware */ ST0016_CPU(config, m_maincpu, 8000000); /* 8 MHz ? */ m_maincpu->set_addrmap(AS_PROGRAM, &speglsht_state::st0016_mem); m_maincpu->set_addrmap(AS_IO, &speglsht_state::st0016_io); m_maincpu->set_vblank_int("screen", FUNC(speglsht_state::irq0_line_hold)); R3051(config, m_subcpu, 25000000); m_subcpu->set_endianness(ENDIANNESS_LITTLE); m_subcpu->set_addrmap(AS_PROGRAM, &speglsht_state::speglsht_mem); m_subcpu->set_vblank_int("screen", FUNC(speglsht_state::irq4_line_assert)); config.m_minimum_quantum = attotime::from_hz(6000); MCFG_MACHINE_RESET_OVERRIDE(speglsht_state,speglsht) /* 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(512, 512); screen.set_visarea(0, 319, 8, 239-8); screen.set_screen_update(FUNC(speglsht_state::screen_update_speglsht)); GFXDECODE(config, "gfxdecode", m_palette, gfx_speglsht); PALETTE(config, m_palette).set_entries(16*16*4+1); MCFG_VIDEO_START_OVERRIDE(speglsht_state,speglsht) }
void apexc_state::apexc(machine_config &config) { /* basic machine hardware */ /* APEXC CPU @ 2.0 kHz (memory word clock frequency) */ APEXC(config, m_maincpu, 2000); m_maincpu->set_addrmap(AS_PROGRAM, &apexc_state::mem); m_maincpu->tape_read().set(m_tape_reader, FUNC(apexc_tape_reader_image_device::read)); m_maincpu->tape_punch().set(FUNC(apexc_state::tape_write)); /* video hardware does not exist, but we display a control panel and the typewriter output */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(60); m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ m_screen->set_size(256, 192); m_screen->set_visarea(0, 256-1, 0, 192-1); m_screen->set_palette(m_palette); m_screen->set_screen_update(FUNC(apexc_state::screen_update_apexc)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_apexc); PALETTE(config, m_palette, FUNC(apexc_state::apexc_palette), ARRAY_LENGTH(palette_table)); APEXC_CYLINDER(config, m_cylinder); APEXC_TAPE_PUNCHER(config, m_tape_puncher); APEXC_TAPE_READER(config, m_tape_reader); }
GFXDECODE_END /************************* * Machine Drivers * *************************/ void tmspoker_state::tmspoker(machine_config &config) { // CPU TMS9980A; no line connections TMS9980A(config, m_maincpu, MASTER_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &tmspoker_state::tmspoker_map); m_maincpu->set_addrmap(AS_IO, &tmspoker_state::tmspoker_cru_map); m_maincpu->set_vblank_int("screen", FUNC(tmspoker_state::tmspoker_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(32*8, 32*8); screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); screen.set_screen_update(FUNC(tmspoker_state::screen_update_tmspoker)); screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_tmspoker); PALETTE(config, "palette", FUNC(tmspoker_state::tmspoker_palette), 256); mc6845_device &crtc(MC6845(config, "crtc", MASTER_CLOCK/4)); /* guess */ crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(8); }