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 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 hec2hrp_state::hec2mdhrx(machine_config &config) { Z80(config, m_maincpu, 5_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mdhrx_io); m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2mdhrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2mdhrx) /* 3.5" ("mini") disc */ FD1793(config, m_minidisc_fdc, 1_MHz_XTAL); FLOPPY_CONNECTOR(config, "wd179x:0", minidisc_floppies, "dd", hec2hrp_state::minidisc_formats); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ screen.set_size(512, 230); screen.set_visarea(0, 243, 0, 227); screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); screen.set_palette(m_palette); PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); CASSETTE(config, m_cassette); m_cassette->set_formats(hector_cassette_formats); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 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 */ }
GFXDECODE_END void psychic5_state::psychic5(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(12'000'000)/2); m_maincpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_main_map); TIMER(config, "scantimer").configure_scanline(FUNC(psychic5_state::scanline), "screen", 0, 1); ADDRESS_MAP_BANK(config, "vrambank").set_map(&psychic5_state::psychic5_vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 14, 0x2000); Z80(config, m_audiocpu, XTAL(5'000'000)); m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::psychic5_sound_map); m_audiocpu->set_addrmap(AS_IO, &psychic5_state::psychic5_soundport_map); config.m_minimum_quantum = attotime::from_hz(600); /* Allow time for 2nd cpu to interleave */ MCFG_MACHINE_START_OVERRIDE(psychic5_state,psychic5) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); // was 53.8 Hz before, assume same as Bombs Away screen.set_screen_update(FUNC(psychic5_state::screen_update_psychic5)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_psychic5); PALETTE(config, m_palette).set_entries(768); JALECO_BLEND(config, m_blend, 0); MCFG_VIDEO_START_OVERRIDE(psychic5_state,psychic5) MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5) /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000)/8)); ym1.irq_handler().set_inputline(m_audiocpu, 0); ym1.add_route(0, "mono", 0.15); ym1.add_route(1, "mono", 0.15); ym1.add_route(2, "mono", 0.15); ym1.add_route(3, "mono", 0.50); ym2203_device &ym2(YM2203(config, "ym2", XTAL(12'000'000)/8)); ym2.add_route(0, "mono", 0.15); ym2.add_route(1, "mono", 0.15); ym2.add_route(2, "mono", 0.15); ym2.add_route(3, "mono", 0.50); }
GFXDECODE_END void holeland_state::holeland(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 3355700); /* measured 298ns on PCB */ m_maincpu->set_addrmap(AS_PROGRAM, &holeland_state::holeland_map); m_maincpu->set_addrmap(AS_IO, &holeland_state::io_map); m_maincpu->set_vblank_int("screen", FUNC(holeland_state::irq0_line_hold)); LS259(config, m_latch); // 3J m_latch->parallel_out_cb().set(FUNC(holeland_state::pal_offs_w)).mask(0x03); m_latch->q_out_cb<5>().set(FUNC(holeland_state::coin_counter_w)); m_latch->q_out_cb<6>().set(FUNC(holeland_state::flipscreen_x_w)); m_latch->q_out_cb<7>().set(FUNC(holeland_state::flipscreen_y_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(32*16, 32*16); screen.set_visarea(0*16, 32*16-1, 2*16, 30*16-1); screen.set_screen_update(FUNC(holeland_state::screen_update_holeland)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_holeland); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); MCFG_VIDEO_START_OVERRIDE(holeland_state,holeland) /* sound hardware */ SPEAKER(config, "mono").front_center(); ay8910_device &ay1(AY8910(config, "ay1", 20000000 / 32)); /* verified on PCB */ ay1.port_a_read_callback().set_ioport("IN0"); ay1.port_b_read_callback().set_ioport("IN1"); ay1.add_route(ALL_OUTPUTS, "mono", 0.25); ay8910_device &ay2(AY8910(config, "ay2", 20000000 / 16)); /* verified on PCB */ ay2.port_a_read_callback().set_ioport("DSW1"); ay2.port_b_read_callback().set_ioport("DSW2"); ay2.add_route(ALL_OUTPUTS, "mono", 0.25); sp0256_device &speech(SP0256(config, "speech", 3355700)); /* measured 298ns on PCB */ speech.data_request_callback().set_inputline("maincpu", INPUT_LINE_NMI); speech.add_route(ALL_OUTPUTS, "mono", 1.0); }
void spectrum_state::spectrum_common(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, X1 / 4); /* This is verified only for the ZX Spectrum. Other clones are reported to have different clocks */ m_maincpu->set_addrmap(AS_PROGRAM, &spectrum_state::spectrum_mem); m_maincpu->set_addrmap(AS_IO, &spectrum_state::spectrum_io); m_maincpu->set_addrmap(AS_OPCODES, &spectrum_state::spectrum_fetch); m_maincpu->set_vblank_int("screen", FUNC(spectrum_state::spec_interrupt)); config.m_minimum_quantum = attotime::from_hz(60); MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum ) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(X1 / 2, 448, 0, 352, 312, 0, 296); m_screen->set_screen_update(FUNC(spectrum_state::screen_update_spectrum)); m_screen->screen_vblank().set(FUNC(spectrum_state::screen_vblank_spectrum)); m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(spectrum_state::spectrum_palette), 16); GFXDECODE(config, "gfxdecode", "palette", gfx_spectrum); MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum) /* sound hardware */ SPEAKER(config, "mono").front_center(); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* expansion port */ SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, "kempjoy"); m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); /* devices */ snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot")); snapshot.set_handler(snapquick_load_delegate(&SNAPSHOT_LOAD_NAME(spectrum_state, spectrum), this), "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx"); quickload_image_device &quickload(QUICKLOAD(config, "quickload")); quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(spectrum_state, spectrum), this), "raw,scr", attotime::from_seconds(2)); // The delay prevents the screen from being cleared by the RAM test at boot CASSETTE(config, m_cassette); m_cassette->set_formats(tzx_cassette_formats); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED); m_cassette->set_interface("spectrum_cass"); SOFTWARE_LIST(config, "cass_list").set_original("spectrum_cass"); }
void raiden_state::raidenb(machine_config &config) { raiden(config); /* basic machine hardware */ m_maincpu->set_addrmap(AS_PROGRAM, &raiden_state::raidenb_main_map); /* video hardware */ MCFG_VIDEO_START_OVERRIDE(raiden_state,raidenb) seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); crtc.layer_en_callback().set(FUNC(raiden_state::raidenb_layer_enable_w)); crtc.layer_scroll_callback().set(FUNC(raiden_state::raidenb_layer_scroll_w)); subdevice<screen_device>("screen")->set_screen_update(FUNC(raiden_state::screen_update_raidenb)); }
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); }
void psychic5_state::bombsa(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, XTAL(12'000'000)/2); /* 6 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_main_map); TIMER(config, "scantimer").configure_scanline(FUNC(psychic5_state::scanline), "screen", 0, 1); ADDRESS_MAP_BANK(config, "vrambank").set_map(&psychic5_state::bombsa_vrambank_map).set_options(ENDIANNESS_LITTLE, 8, 14, 0x2000); Z80(config, m_audiocpu, XTAL(5'000'000)); m_audiocpu->set_addrmap(AS_PROGRAM, &psychic5_state::bombsa_sound_map); m_audiocpu->set_addrmap(AS_IO, &psychic5_state::bombsa_soundport_map); config.m_minimum_quantum = attotime::from_hz(600); MCFG_MACHINE_START_OVERRIDE(psychic5_state,bombsa) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(XTAL(12'000'000)/2,394, 0, 256, 282, 16, 240); /* Measured as: VSync 54Hz, HSync 15.25kHz */ screen.set_screen_update(FUNC(psychic5_state::screen_update_bombsa)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bombsa); PALETTE(config, m_palette).set_entries(768); MCFG_VIDEO_START_OVERRIDE(psychic5_state,bombsa) MCFG_VIDEO_RESET_OVERRIDE(psychic5_state,psychic5) /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000)/8)); ym1.irq_handler().set_inputline(m_audiocpu, 0); ym1.add_route(0, "mono", 0.30); ym1.add_route(1, "mono", 0.30); ym1.add_route(2, "mono", 0.30); ym1.add_route(3, "mono", 1.0); ym2203_device &ym2(YM2203(config, "ym2", XTAL(12'000'000)/8)); ym2.add_route(0, "mono", 0.30); ym2.add_route(1, "mono", 0.30); ym2.add_route(2, "mono", 0.30); ym2.add_route(3, "mono", 1.0); }
void holeland_state::crzrally(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 20000000/4); /* 5 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &holeland_state::crzrally_map); m_maincpu->set_addrmap(AS_IO, &holeland_state::io_map); m_maincpu->set_vblank_int("screen", FUNC(holeland_state::irq0_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); LS259(config, m_latch); m_latch->parallel_out_cb().set(FUNC(holeland_state::pal_offs_w)).mask(0x03); m_latch->q_out_cb<5>().set(FUNC(holeland_state::coin_counter_w)); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(59); 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(holeland_state::screen_update_crzrally)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_crzrally); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256); MCFG_VIDEO_START_OVERRIDE(holeland_state,crzrally) /* sound hardware */ SPEAKER(config, "mono").front_center(); ay8910_device &ay1(AY8910(config, "ay1", 20000000/16)); ay1.port_a_read_callback().set_ioport("IN0"); ay1.port_b_read_callback().set_ioport("IN1"); ay1.add_route(ALL_OUTPUTS, "mono", 0.25); ay8910_device &ay2(AY8910(config, "ay2", 20000000/16)); ay2.port_a_read_callback().set_ioport("DSW1"); ay2.port_b_read_callback().set_ioport("DSW2"); ay2.add_route(ALL_OUTPUTS, "mono", 0.25); }
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); }
void ojankohs_state::ccasino(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 12000000/2); /* 6.00 MHz ? */ m_maincpu->set_addrmap(AS_PROGRAM, &ojankohs_state::ojankoy_map); m_maincpu->set_addrmap(AS_IO, &ojankohs_state::ccasino_io_map); m_maincpu->set_vblank_int("screen", FUNC(ojankohs_state::irq0_line_hold)); MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankohs) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* 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, 512); m_screen->set_visarea(0, 288-1, 0, 224-1); m_screen->set_screen_update(FUNC(ojankohs_state::screen_update_ojankohs)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ojankohs); PALETTE(config, m_palette).set_entries(1024); VSYSTEM_GGA(config, "gga", XTAL(13'333'000)/2); // divider not verified MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ccasino) /* sound hardware */ SPEAKER(config, "mono").front_center(); ay8910_device &aysnd(AY8910(config, "aysnd", 12000000/8)); aysnd.port_a_read_callback().set_ioport("dsw1"); aysnd.port_b_read_callback().set_ioport("dsw2"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.15); MSM5205(config, m_msm, 384000); m_msm->vck_legacy_callback().set(FUNC(ojankohs_state::ojankohs_adpcm_int)); /* IRQ handler */ m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */ m_msm->add_route(ALL_OUTPUTS, "mono", 0.50); }
void hec2hrp_state::hec2mx80(machine_config &config) { Z80(config, m_maincpu, 5_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hec2hrx_mem); m_maincpu->set_addrmap(AS_IO, &hec2hrp_state::hec2mx80_io); m_maincpu->set_periodic_int(FUNC(hec2hrp_state::irq0_line_hold), attotime::from_hz(50)); /* put on the Z80 irq in Hz*/ MCFG_MACHINE_RESET_OVERRIDE(hec2hrp_state,hec2hrx) MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2hrx) Z80(config, m_disc2cpu, 4_MHz_XTAL); m_disc2cpu->set_addrmap(AS_PROGRAM, &hec2hrp_state::hecdisc2_mem); m_disc2cpu->set_addrmap(AS_IO, &hec2hrp_state::hecdisc2_io); UPD765A(config, m_upd_fdc, 8'000'000, false, true); m_upd_fdc->intrq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_interrupt)); m_upd_fdc->drq_wr_callback().set(FUNC(hec2hrp_state::disc2_fdc_dma_irq)); FLOPPY_CONNECTOR(config, m_upd_connector[0], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_upd_connector[1], hector_floppies, "525hd", floppy_image_device::default_floppy_formats); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(50); screen.set_vblank_time(ATTOSECONDS_IN_USEC(400)); /* 2500 not accurate */ screen.set_size(512, 230); screen.set_visarea(0, 243, 0, 227); screen.set_screen_update(FUNC(hec2hrp_state::screen_update_hec2hrp)); screen.set_palette(m_palette); PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) hector_audio(config); CASSETTE(config, m_cassette); m_cassette->set_formats(hector_cassette_formats); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); PRINTER(config, m_printer, 0); }
void ojankohs_state::ojankoc(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 8000000/2); /* 4.00 MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &ojankohs_state::ojankoc_map); m_maincpu->set_addrmap(AS_IO, &ojankohs_state::ojankoc_io_map); m_maincpu->set_vblank_int("screen", FUNC(ojankohs_state::irq0_line_hold)); MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankoc) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* 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(32*8, 32*8); m_screen->set_visarea(0, 256-1, 8, 248-1); m_screen->set_screen_update(FUNC(ojankohs_state::screen_update_ojankoc)); m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_entries(16); MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoc) /* sound hardware */ SPEAKER(config, "mono").front_center(); ay8910_device &aysnd(AY8910(config, "aysnd", 8000000/4)); aysnd.port_a_read_callback().set_ioport("dsw1"); aysnd.port_b_read_callback().set_ioport("dsw2"); aysnd.add_route(ALL_OUTPUTS, "mono", 0.15); MSM5205(config, m_msm, 8000000/22); m_msm->vck_legacy_callback().set(FUNC(ojankohs_state::ojankohs_adpcm_int)); /* IRQ handler */ m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */ m_msm->add_route(ALL_OUTPUTS, "mono", 0.50); }
void kickgoal_state::actionhw(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb */ 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); /* verified on pcb */ m_audiocpu->set_disable(); /* Disabled since the internal rom isn't dumped */ /* Program and Data Maps are internal to the MCU */ 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(10*8+2, 54*8-1+2, 0*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_actionhw); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024); MCFG_VIDEO_START_OVERRIDE(kickgoal_state,actionhw) /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); OKIM6295(config, m_oki, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH); /* verified on pcb */ m_oki->set_addrmap(0, &kickgoal_state::oki_map); m_oki->add_route(ALL_OUTPUTS, "mono", 0.80); }
INPUT_PORTS_END /************************************* * * Machine driver * *************************************/ void mquake_state::mquake(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, amiga_state::CLK_7M_NTSC); m_maincpu->set_addrmap(AS_PROGRAM, &mquake_state::main_map); ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_512kb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ ntsc_video(config); PALETTE(config, m_palette, FUNC(mquake_state::amiga_palette), 4096); MCFG_VIDEO_START_OVERRIDE(mquake_state,amiga) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); paula_8364_device &paula(PAULA_8364(config, "amiga", amiga_state::CLK_C1_NTSC)); paula.add_route(0, "lspeaker", 0.50); paula.add_route(1, "rspeaker", 0.50); paula.add_route(2, "rspeaker", 0.50); paula.add_route(3, "lspeaker", 0.50); paula.mem_read_cb().set(FUNC(amiga_state::chip_ram_r)); paula.int_cb().set(FUNC(amiga_state::paula_int_w)); ES5503(config, m_es5503, amiga_state::CLK_7M_NTSC); /* ES5503 is likely mono due to channel strobe used as bank select */ m_es5503->set_channels(1); m_es5503->set_addrmap(0, &mquake_state::mquake_es5503_map); m_es5503->add_route(0, "lspeaker", 0.50); m_es5503->add_route(0, "rspeaker", 0.50); /* cia */ MOS8520(config, m_cia_0, amiga_state::CLK_E_NTSC); m_cia_0->irq_wr_callback().set(FUNC(amiga_state::cia_0_irq)); m_cia_0->pa_rd_callback().set_ioport("CIA0PORTA"); m_cia_0->pa_wr_callback().set(FUNC(amiga_state::cia_0_port_a_write)); MOS8520(config, m_cia_1, amiga_state::CLK_E_NTSC); m_cia_1->irq_wr_callback().set(FUNC(amiga_state::cia_1_irq)); /* fdc */ AMIGA_FDC(config, m_fdc, amiga_state::CLK_7M_NTSC); m_fdc->index_callback().set("cia_1", FUNC(mos8520_device::flag_w)); m_fdc->read_dma_callback().set(FUNC(amiga_state::chip_ram_r)); m_fdc->write_dma_callback().set(FUNC(amiga_state::chip_ram_w)); m_fdc->dskblk_callback().set(FUNC(amiga_state::fdc_dskblk_w)); m_fdc->dsksyn_callback().set(FUNC(amiga_state::fdc_dsksyn_w)); }