void enmirage_state::mirage(machine_config &config) { MC6809E(config, m_maincpu, 2000000); m_maincpu->set_addrmap(AS_PROGRAM, &enmirage_state::mirage_map); config.set_default_layout(layout_mirage); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); es5503_device &es5503(ES5503(config, "es5503", 7000000)); es5503.set_channels(2); es5503.irq_func().set(FUNC(enmirage_state::mirage_doc_irq)); es5503.adc_func().set(FUNC(enmirage_state::mirage_adc_read)); es5503.add_route(0, "lspeaker", 1.0); es5503.add_route(1, "rspeaker", 1.0); VIA6522(config, m_via, 1000000); m_via->writepa_handler().set(FUNC(enmirage_state::mirage_via_write_porta)); m_via->writepb_handler().set(FUNC(enmirage_state::mirage_via_write_portb)); m_via->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); acia6850_device &acia6850(ACIA6850(config, "acia6850", 0)); acia6850.irq_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE); WD1772(config, m_fdc, 8000000); m_fdc->intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); m_fdc->drq_wr_callback().set_inputline(m_maincpu, M6809_IRQ_LINE); FLOPPY_CONNECTOR(config, "wd1772:0", ensoniq_floppies, "35dd", enmirage_state::floppy_formats); }
void konendev_state::konendev(machine_config &config) { /* basic machine hardware */ PPC403GCX(config, m_maincpu, 32000000); // Clock unknown m_maincpu->set_addrmap(AS_PROGRAM, &konendev_state::konendev_map); m_maincpu->set_vblank_int("screen", FUNC(konendev_state::vbl_interrupt)); /* video hardware */ PALETTE(config, "palette", palette_device::RGB_555); 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(640, 480); screen.set_visarea(0, 639, 0, 479); screen.set_screen_update(FUNC(konendev_state::screen_update)); screen.set_palette("palette"); K057714(config, m_gcu, 0); m_gcu->irq_callback().set(FUNC(konendev_state::gcu_interrupt)); NVRAM(config, "nvram0", nvram_device::DEFAULT_ALL_0); NVRAM(config, "nvram1", nvram_device::DEFAULT_ALL_0); EEPROM_93C56_16BIT(config, "eeprom"); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); // Clock unknown ymz.add_route(0, "lspeaker", 1.0); ymz.add_route(1, "rspeaker", 1.0); }
void acvirus_state::virus(machine_config &config) { I8052(config, m_maincpu, XTAL(12'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &acvirus_state::virus_map); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); }
/************************************* * * Graphics definitions * *************************************/ static const gfx_layout playfield_layout = { 8,8, 256, 1, { 0 }, { 0, 1, 2, 3, 4, 5, 6, 7 }, { 0, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, 8*8 }; static const gfx_layout motion_layout = { 16,16, 64, 1, { 0 }, { 3 + 0x400*8, 2 + 0x400*8, 1 + 0x400*8, 0 + 0x400*8, 7 + 0x400*8, 6 + 0x400*8, 5 + 0x400*8, 4 + 0x400*8, 3, 2, 1, 0, 7, 6, 5, 4 }, { 0, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 }, 16*8 }; static GFXDECODE_START( gfx_subs ) GFXDECODE_ENTRY( "gfx1", 0, playfield_layout, 0, 2 ) /* playfield graphics */ GFXDECODE_ENTRY( "gfx2", 0, motion_layout, 0, 2 ) /* motion graphics */ GFXDECODE_END /************************************* * * Machine driver * *************************************/ void subs_state::subs(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, 12096000/16); /* clock input is the "4H" signal */ m_maincpu->set_addrmap(AS_PROGRAM, &subs_state::main_map); m_maincpu->set_periodic_int(FUNC(subs_state::interrupt), attotime::from_hz(4*57)); /* video hardware */ GFXDECODE(config, m_gfxdecode, m_palette, gfx_subs); PALETTE(config, m_palette, FUNC(subs_state::subs_palette), 4); config.set_default_layout(layout_dualhsxs); screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); lscreen.set_refresh_hz(57); lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); lscreen.set_size(32*8, 32*8); lscreen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); lscreen.set_screen_update(FUNC(subs_state::screen_update_left)); lscreen.set_palette(m_palette); screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); rscreen.set_refresh_hz(57); rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); rscreen.set_size(32*8, 32*8); rscreen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); rscreen.set_screen_update(FUNC(subs_state::screen_update_right)); rscreen.set_palette(m_palette); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); DISCRETE(config, m_discrete, subs_discrete).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0); ls259_device &latch(LS259(config, "latch")); // C9 latch.q_out_cb<0>().set_output("led0").invert(); // START LAMP 1 latch.q_out_cb<1>().set_output("led1").invert(); // START LAMP 2 latch.q_out_cb<2>().set(m_discrete, FUNC(discrete_device::write_line<SUBS_SONAR2_EN>)); latch.q_out_cb<3>().set(m_discrete, FUNC(discrete_device::write_line<SUBS_SONAR1_EN>)); // Schematics show crash and explode reversed. But this is proper. latch.q_out_cb<4>().set(m_discrete, FUNC(discrete_device::write_line<SUBS_EXPLODE_EN>)); latch.q_out_cb<5>().set(m_discrete, FUNC(discrete_device::write_line<SUBS_CRASH_EN>)); latch.q_out_cb<6>().set(FUNC(subs_state::invert1_w)); latch.q_out_cb<7>().set(FUNC(subs_state::invert2_w)); }
void macpci_state::pippin(machine_config &config) { /* basic machine hardware */ PPC603(config, m_maincpu, 66000000); m_maincpu->set_addrmap(AS_PROGRAM, &macpci_state::pippin_mem); /* 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(640, 480); screen.set_visarea(0, 640-1, 0, 480-1); screen.set_screen_update(FUNC(macpci_state::screen_update_pippin)); screen.set_palette("palette"); palette_device &palette(PALETTE(config, "palette", 2)); palette.set_init("palette", FUNC(palette_device::palette_init_monochrome)); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); cdda_device &cdda(CDDA(config, "cdda")); cdda.add_route(0, "lspeaker", 1.00); cdda.add_route(1, "rspeaker", 1.00); cdrom_image_device &cdrom(CDROM(config, "cdrom", 0)); cdrom.set_interface("pippin_cdrom"); SOFTWARE_LIST(config, "cd_list").set_type("pippin", SOFTWARE_LIST_ORIGINAL_SYSTEM); RAM(config, m_ram); m_ram->set_default_size("32M"); VIA6522(config, m_via1, C7M/10); m_via1->readpa_handler().set(FUNC(macpci_state::mac_via_in_a)); m_via1->readpb_handler().set(FUNC(macpci_state::mac_via_in_b)); m_via1->writepa_handler().set(FUNC(macpci_state::mac_via_out_a)); m_via1->writepb_handler().set(FUNC(macpci_state::mac_via_out_b)); m_via1->cb2_handler().set(FUNC(macpci_state::mac_adb_via_out_cb2)); m_via1->irq_handler().set(FUNC(macpci_state::mac_via_irq)); //scc8530_t &scc(SCC8530(config, "scc", C7M)); //scc.intrq_callback().set(FUNC(macpci_state::set_scc_interrupt)); CUDA(config, m_cuda, 0); m_cuda->set_type(CUDA_341S0060); m_cuda->reset_callback().set(FUNC(macpci_state::cuda_reset_w)); m_cuda->linechange_callback().set(FUNC(macpci_state::cuda_adb_linechange_w)); m_cuda->via_clock_callback().set(m_via1, FUNC(via6522_device::write_cb1)); m_cuda->via_data_callback().set(m_via1, FUNC(via6522_device::write_cb2)); config.m_perfect_cpu_quantum = subtag("maincpu"); }
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); }
/************************************* * * Graphics definitions * *************************************/ static const gfx_layout anlayout = { 8,8, RGN_FRAC(1,1), 2, { 0, 4 }, { 0, 1, 2, 3, 8, 9, 10, 11 }, { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, 8*16 }; static const gfx_layout pfmolayout = { 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_vindictr ) GFXDECODE_ENTRY( "gfx1", 0, pfmolayout, 256, 32 ) /* sprites & playfield */ GFXDECODE_ENTRY( "gfx2", 0, anlayout, 0, 64 ) /* characters 8x8 */ GFXDECODE_END /************************************* * * Machine driver * *************************************/ void vindictr_state::vindictr(machine_config &config) { /* basic machine hardware */ M68010(config, m_maincpu, ATARI_CLOCK_14MHz/2); m_maincpu->set_addrmap(AS_PROGRAM, &vindictr_state::main_map); EEPROM_2804(config, "eeprom").lock_after_write(true); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ GFXDECODE(config, m_gfxdecode, m_palette, gfx_vindictr); PALETTE(config, m_palette).set_entries(2048*8); TILEMAP(config, m_playfield_tilemap, m_gfxdecode, 2, 8,8, TILEMAP_SCAN_COLS, 64,64).set_info_callback(FUNC(vindictr_state::get_playfield_tile_info)); TILEMAP(config, m_alpha_tilemap, m_gfxdecode, 2, 8,8, TILEMAP_SCAN_ROWS, 64,32, 0).set_info_callback(FUNC(vindictr_state::get_alpha_tile_info)); ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, vindictr_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 a SYNGEN 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(vindictr_state::screen_update_vindictr)); m_screen->set_palette(m_palette); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); ATARI_JSA_I(config, m_jsa, 0); m_jsa->main_int_cb().set_inputline(m_maincpu, M68K_IRQ_6); m_jsa->test_read_cb().set_ioport("260010").bit(12); m_jsa->add_route(0, "lspeaker", 1.0); m_jsa->add_route(1, "rspeaker", 1.0); config.device_remove("jsa:tms"); }
void satansat_sound_device::device_add_mconfig(machine_config &config) { SPEAKER(config, "mono").front_center(); SNK6502_SOUND(config, m_custom, 0); m_custom->add_route(ALL_OUTPUTS, "mono", 0.50); samples_device &samples(SAMPLES(config, "samples")); samples.set_channels(3); samples.set_samples_names(vanguard_sample_names); samples.add_route(ALL_OUTPUTS, "mono", 0.25); sn76477_device &sn76477_1(SN76477(config, "sn76477.1")); // ??? GND: 2,26,27 +5V: 15,25 sn76477_1.set_noise_params(RES_K(470), RES_M(1.5), CAP_P(220)); sn76477_1.set_decay_res(0); sn76477_1.set_attack_params(0, 0); sn76477_1.set_amp_res(RES_K(47)); sn76477_1.set_feedback_res(RES_K(47)); sn76477_1.set_vco_params(0, 0, 0); sn76477_1.set_pitch_voltage(0); sn76477_1.set_slf_params(0, 0); sn76477_1.set_oneshot_params(0, 0); sn76477_1.set_vco_mode(0); sn76477_1.set_mixer_params(0, 1, 0); sn76477_1.set_envelope_params(1, 1); sn76477_1.set_enable(1); sn76477_1.add_route(ALL_OUTPUTS, "mono", 1.0); }
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 */ }
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); }
void ertictac_state::ertictac(machine_config &config) { ARM(config, m_maincpu, XTAL(24'000'000)/3); /* guess, 12MHz 8MHz or 6MHz, what's the correct divider 2, 3 or 4? */ m_maincpu->set_addrmap(AS_PROGRAM, &ertictac_state::ertictac_map); m_maincpu->set_periodic_int(FUNC(ertictac_state::ertictac_podule_irq), attotime::from_hz(60)); // FIXME: timing of this I2CMEM(config, "i2cmem", 0).set_page_size(NVRAM_PAGE_SIZE).set_data_size(NVRAM_SIZE); // AAKART(config, m_kart, XTAL(24'000'000)/3); // TODO: frequency SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(XTAL(16'000'000), 1024,0,735, 624/2,0,292); // RiscOS 3 default screen settings m_screen->set_screen_update(FUNC(archimedes_state::screen_update)); PALETTE(config, m_palette).set_entries(0x200); SPEAKER(config, "speaker").front_center(); for (int i = 0; i < 8; i++) { DAC_16BIT_R2R_TWOS_COMPLEMENT(config, m_dac[i], 0).add_route(0, "speaker", 0.05); // unknown DAC } voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.add_route(0, "dac0", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac0", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac5", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac5", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac6", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac6", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac7", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac7", -1.0, DAC_VREF_NEG_INPUT); }
void gmaster_state::gmaster(machine_config &config) { upd7810_device &upd(UPD7810(config, m_maincpu, 12_MHz_XTAL/2/*?*/)); // µPD78C11 in the unit upd.set_addrmap(AS_PROGRAM, &gmaster_state::gmaster_mem); upd.pa_in_cb().set_ioport("JOY"); upd.pb_in_cb().set(FUNC(gmaster_state::gmaster_portb_r)); upd.pc_in_cb().set(FUNC(gmaster_state::gmaster_portc_r)); upd.pd_in_cb().set(FUNC(gmaster_state::gmaster_portd_r)); upd.pf_in_cb().set(FUNC(gmaster_state::gmaster_portf_r)); upd.pa_out_cb().set(FUNC(gmaster_state::gmaster_porta_w)); upd.pb_out_cb().set(FUNC(gmaster_state::gmaster_portb_w)); upd.pc_out_cb().set(FUNC(gmaster_state::gmaster_portc_w)); upd.pd_out_cb().set(FUNC(gmaster_state::gmaster_portd_w)); upd.pf_out_cb().set(FUNC(gmaster_state::gmaster_portf_w)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); screen.set_refresh_hz(60); screen.set_size(64, 64); screen.set_visarea(0, 64-1-3, 0, 64-1); screen.set_screen_update(FUNC(gmaster_state::screen_update_gmaster)); screen.set_palette("palette"); PALETTE(config, "palette", FUNC(gmaster_state::gmaster_palette), ARRAY_LENGTH(gmaster_pens)); SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(0, "mono", 0.50); GENERIC_CARTSLOT(config, m_cart, generic_linear_slot, "gmaster_cart").set_must_be_loaded(true); SOFTWARE_LIST(config, "cart_list").set_original("gmaster"); }
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); }
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 zodiack_state::zodiack(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(18'432'000)/6); m_maincpu->set_addrmap(AS_PROGRAM, &zodiack_state::main_map); m_maincpu->set_vblank_int("videopcb:screen", FUNC(zodiack_state::zodiack_main_nmi_gen)); m_maincpu->set_periodic_int(FUNC(zodiack_state::irq0_line_hold), attotime::from_hz(1*60)); // sound related - unknown source, timing is guessed Z80(config, m_audiocpu, XTAL(18'432'000)/6); m_audiocpu->set_addrmap(AS_PROGRAM, &zodiack_state::sound_map); m_audiocpu->set_addrmap(AS_IO, &zodiack_state::io_map); m_audiocpu->set_periodic_int(FUNC(zodiack_state::zodiack_sound_nmi_gen), attotime::from_hz(8*60)); // sound tempo - unknown source, timing is guessed WATCHDOG_TIMER(config, "watchdog"); orca_ovg_40c_device &videopcb(ORCA_OVG_40C(config, "videopcb", 0)); videopcb.set_palette("videopcb:palette"); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); AY8910(config, "aysnd", XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "mono", 0.50); }
void vc4000_state::vc4000(machine_config &config) { /* basic machine hardware */ // MCFG_DEVICE_ADD("maincpu", S2650, 865000) /* 3550000/4, 3580000/3, 4430000/3 */ S2650(config, m_maincpu, 3546875/4); m_maincpu->set_addrmap(AS_PROGRAM, &vc4000_state::vc4000_mem); m_maincpu->sense_handler().set(FUNC(vc4000_state::vc4000_vsync_r)); m_maincpu->set_periodic_int(FUNC(vc4000_state::vc4000_video_line), attotime::from_hz(312*53)); // GOLF needs this exact value /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz(50); m_screen->set_size(226, 312); m_screen->set_visarea(8, 184, 0, 269); m_screen->set_screen_update(FUNC(vc4000_state::screen_update_vc4000)); m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(vc4000_state::vc4000_palette), 8); /* sound hardware */ SPEAKER(config, "mono").front_center(); VC4000_SND(config, m_custom, 0).add_route(ALL_OUTPUTS, "mono", 0.50); /* quickload */ quickload_image_device &quickload(QUICKLOAD(config, "quickload")); quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(vc4000_state, vc4000), this), "pgm,tvc"); /* cartridge */ VC4000_CART_SLOT(config, "cartslot", vc4000_cart, nullptr); /* software lists */ SOFTWARE_LIST(config, "cart_list").set_original("vc4000"); }
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 twins_state::twins(machine_config &config) { /* basic machine hardware */ V30(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &twins_state::twins_map); m_maincpu->set_addrmap(AS_IO, &twins_state::twins_io); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(8000000, 512, 0, 320, 312, 0, 200); // 15.625 kHz horizontal??? screen.set_screen_update(FUNC(twins_state::screen_update_twins)); screen.set_palette(m_palette); screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); PALETTE(config, m_palette).set_entries(256); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); ramdac.set_addrmap(0, &twins_state::ramdac_map); ramdac.set_split_read(0); I2C_24C02(config, m_i2cmem); /* sound hardware */ SPEAKER(config, "mono").front_center(); ay8910_device &aysnd(AY8910(config, "aysnd", XTAL(16'000'000)/8)); /* verified on pcb */ aysnd.port_a_read_callback().set_ioport("P1"); aysnd.port_b_read_callback().set_ioport("P2"); aysnd.add_route(ALL_OUTPUTS, "mono", 1.0); }
void fantasy_sound_device::device_add_mconfig(machine_config &config) { SPEAKER(config, "mono").front_center(); SNK6502_SOUND(config, m_custom, 0); m_custom->add_route(ALL_OUTPUTS, "mono", 0.50); samples_device &samples(SAMPLES(config, "samples")); samples.set_channels(1); samples.set_samples_names(fantasy_sample_names); samples.add_route(ALL_OUTPUTS, "mono", 0.5); sn76477_device &sn76477_1(SN76477(config, "sn76477.1")); // BOMB GND: 2,9,26,27 +5V: 15,25 sn76477_1.set_noise_params(RES_K(470), RES_M(1.5), CAP_P(220)); sn76477_1.set_decay_res(0); sn76477_1.set_attack_params(0, 0); sn76477_1.set_amp_res(RES_K(470)); sn76477_1.set_feedback_res(RES_K(4.7)); sn76477_1.set_vco_params(0, 0, 0); sn76477_1.set_pitch_voltage(0); sn76477_1.set_slf_params(0, 0); sn76477_1.set_oneshot_params(0, 0); sn76477_1.set_vco_mode(0); sn76477_1.set_mixer_params(0, 1, 0); // schematic does not show pin 1 grounded, but it must be. // otherwise it is using the VCO for the envelope, but the VCO is not hooked up sn76477_1.set_envelope_params(0, 1); sn76477_1.set_enable(0); sn76477_1.add_route(0, "discrete", 1.0, 0); DISCRETE(config, m_discrete, fantasy_discrete); m_discrete->add_route(ALL_OUTPUTS, "mono", 0.5); }
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 plus4_sid_cartridge_device::device_add_mconfig(machine_config &config) { SPEAKER(config, "speaker").front_center(); MOS8580(config, m_sid, XTAL(17'734'470)/20).add_route(ALL_OUTPUTS, "speaker", 1.0); VCS_CONTROL_PORT(config, m_joy, vcs_control_port_devices, nullptr); }
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 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 nsm_state::nsm(machine_config &config) { // CPU TMS9995, standard variant; no line connection TMS9995(config, m_maincpu, 11052000); m_maincpu->set_addrmap(AS_PROGRAM, &nsm_state::nsm_map); m_maincpu->set_addrmap(AS_IO, &nsm_state::nsm_io_map); /* Video */ config.set_default_layout(layout_nsm); /* Sound */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); AY8912(config, "ay1", 11052000/8).add_route(ALL_OUTPUTS, "lspeaker", 0.75); AY8912(config, "ay2", 11052000/8).add_route(ALL_OUTPUTS, "rspeaker", 0.75); }
void exp85_state::exp85(machine_config &config) { /* basic machine hardware */ I8085A(config, m_maincpu, 6.144_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &exp85_state::exp85_mem); m_maincpu->set_addrmap(AS_IO, &exp85_state::exp85_io); m_maincpu->in_sid_func().set(FUNC(exp85_state::sid_r)); m_maincpu->out_sod_func().set(FUNC(exp85_state::sod_w)); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); /* devices */ I8155(config, I8155_TAG, 6.144_MHz_XTAL/2); i8355_device &i8355(I8355(config, I8355_TAG, 6.144_MHz_XTAL/2)); i8355.in_pa().set(FUNC(exp85_state::i8355_a_r)); i8355.out_pa().set(FUNC(exp85_state::i8355_a_w)); CASSETTE(config, m_cassette); m_cassette->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)); RS232_PORT(config, "rs232", default_rs232_devices, "terminal").set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); /* internal ram */ RAM(config, RAM_TAG).set_default_size("256").set_extra_options("4K"); }
INPUT_PORTS_END void twins_state::twinsed1(machine_config &config) { /* basic machine hardware */ V30(config, m_maincpu, 8000000); m_maincpu->set_addrmap(AS_PROGRAM, &twins_state::twins_map); m_maincpu->set_addrmap(AS_IO, &twins_state::twinsed1_io); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(8000000, 512, 0, 320, 312, 0, 200); // 15.625 kHz horizontal??? screen.set_screen_update(FUNC(twins_state::screen_update_twins)); screen.set_palette(m_palette); screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); I2C_24C02(config, m_i2cmem); PALETTE(config, m_palette).set_entries(0x100); /* sound hardware */ SPEAKER(config, "mono").front_center(); ay8910_device &aysnd(AY8910(config, "aysnd", 2000000)); aysnd.port_a_read_callback().set_ioport("P1"); aysnd.port_b_read_callback().set_ioport("P2"); aysnd.add_route(ALL_OUTPUTS, "mono", 1.0); }
INPUT_PORTS_END void superga2_state::kuzmich(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &superga2_state::kuzmich_map); APPLE2_VIDEO(config, m_video, XTAL(14'318'181)); APPLE2_COMMON(config, m_a2common, XTAL(14'318'181)); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192); m_screen->set_screen_update(FUNC(superga2_state::screen_update)); m_screen->set_palette(m_video); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, A2_SPEAKER_TAG).add_route(ALL_OUTPUTS, "mono", 1.00); /* soft switches */ F9334(config, m_softlatch); // F14 (labeled 74LS259 on some boards and in the Apple ][ Reference Manual) m_softlatch->q_out_cb<0>().set(FUNC(superga2_state::txt_w)); m_softlatch->q_out_cb<1>().set(FUNC(superga2_state::mix_w)); m_softlatch->q_out_cb<2>().set(FUNC(superga2_state::scr_w)); m_softlatch->q_out_cb<3>().set(FUNC(superga2_state::res_w)); m_softlatch->q_out_cb<6>().set(FUNC(superga2_state::an2_w)); RAM(config, RAM_TAG).set_default_size("48K").set_default_value(0x00); }
void venture_sound_device::device_add_mconfig(machine_config &config) { m6502_device &audiocpu(M6502(config, "audiocpu", 3579545/4)); audiocpu.set_addrmap(AS_PROGRAM, &venture_sound_device::venture_audio_map); RIOT6532(config, m_riot, SH6532_CLOCK); m_riot->in_pa_callback().set(FUNC(venture_sound_device::r6532_porta_r)); m_riot->out_pa_callback().set(FUNC(venture_sound_device::r6532_porta_w)); m_riot->in_pb_callback().set(FUNC(venture_sound_device::r6532_portb_r)); m_riot->out_pb_callback().set(FUNC(venture_sound_device::r6532_portb_w)); m_riot->irq_callback().set("audioirq", FUNC(input_merger_device::in_w<0>)); PIA6821(config, m_pia, 0); m_pia->writepa_handler().set(FUNC(venture_sound_device::pia_pa_w)); m_pia->writepb_handler().set(FUNC(venture_sound_device::pia_pb_w)); m_pia->ca2_handler().set(FUNC(venture_sound_device::pia_ca2_w)); m_pia->cb2_handler().set(FUNC(venture_sound_device::pia_cb2_w)); m_pia->irqb_handler().set("audioirq", FUNC(input_merger_device::in_w<1>)); INPUT_MERGER_ANY_HIGH(config, "audioirq").output_handler().set_inputline("audiocpu", m6502_device::IRQ_LINE); // open collector SPEAKER(config, "mono").front_center(); this->add_route(ALL_OUTPUTS, "mono", 0.50); }
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); }