void blockout_state::blockout(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, MAIN_CLOCK); /* MRH - 8.76 makes gfx/adpcm samples sync better -- but 10 is correct speed*/ m_maincpu->set_addrmap(AS_PROGRAM, &blockout_state::main_map); TIMER(config, "scantimer").configure_scanline(FUNC(blockout_state::blockout_scanline), "screen", 0, 1); Z80(config, m_audiocpu, AUDIO_CLOCK); /* 3.579545 MHz */ m_audiocpu->set_addrmap(AS_PROGRAM, &blockout_state::audio_map); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); /* assume same as ddragon3 with adjusted visible display area */ m_screen->set_raw(XTAL(28'000'000) / 4, 448, 0, 320, 272, 10, 250); m_screen->set_screen_update(FUNC(blockout_state::screen_update)); m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_format(2, &blockout_state::blockout_xBGR_444, 513); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); ym2151_device &ymsnd(YM2151(config, "ymsnd", AUDIO_CLOCK)); ymsnd.irq_handler().set(FUNC(blockout_state::irq_handler)); ymsnd.add_route(0, "lspeaker", 0.60); ymsnd.add_route(1, "rspeaker", 0.60); okim6295_device &oki(OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH)); oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50); oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50); }
void popnrun_state::popnrun(machine_config &config) { deadang(config); m_maincpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_main_map); m_subcpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_sub_map); m_audiocpu->set_addrmap(AS_PROGRAM, &popnrun_state::popnrun_sound_map); m_audiocpu->set_addrmap(AS_OPCODES, &popnrun_state::sound_decrypted_opcodes_map); m_screen->set_screen_update(FUNC(popnrun_state::popnrun_screen_update)); config.device_remove("watchdog"); m_gfxdecode->set_info(gfx_popnrun); config.device_remove("ym1"); config.device_remove("ym2"); config.device_remove("adpcm1"); config.device_remove("adpcm2"); m_seibu_sound->ym_read_callback().set("ymsnd", FUNC(ym2151_device::read)); m_seibu_sound->ym_write_callback().set("ymsnd", FUNC(ym2151_device::write)); ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(14'318'181)/4)); ymsnd.irq_handler().set(m_seibu_sound, FUNC(seibu_sound_device::fm_irqhandler)); ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50); }
void rastan_state::rastan(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ m_maincpu->set_addrmap(AS_PROGRAM, &rastan_state::rastan_map); m_maincpu->set_vblank_int("screen", FUNC(rastan_state::irq5_line_hold)); Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ m_audiocpu->set_addrmap(AS_PROGRAM, &rastan_state::rastan_s_map); config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(40*8, 32*8); screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(rastan_state::screen_update_rastan)); screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_rastan); PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048); PC080SN(config, m_pc080sn, 0); m_pc080sn->set_gfxdecode_tag("gfxdecode"); PC090OJ(config, m_pc090oj, 0); m_pc090oj->set_gfx_region(1); m_pc090oj->set_gfxdecode_tag("gfxdecode"); m_pc090oj->set_palette_tag("palette"); /* sound hardware */ SPEAKER(config, "mono").front_center(); ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(16'000'000)/4)); /* verified on pcb */ ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.port_write_handler().set(FUNC(rastan_state::rastan_bankswitch_w)); ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50); MSM5205(config, m_msm, XTAL(384'000)); /* verified on pcb */ m_msm->vck_legacy_callback().set(FUNC(rastan_state::rastan_msm5205_vck)); /* VCK function */ m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 kHz */ m_msm->add_route(ALL_OUTPUTS, "mono", 0.60); LS157(config, m_adpcm_sel, 0); m_adpcm_sel->out_callback().set(m_msm, FUNC(msm5205_device::data_w)); pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); }
void _88games_state::_88games(machine_config &config) { /* basic machine hardware */ KONAMI(config, m_maincpu, 3000000); /* ? */ m_maincpu->set_addrmap(AS_PROGRAM, &_88games_state::main_map); m_maincpu->line().set(FUNC(_88games_state::banking_callback)); Z80(config, m_audiocpu, 3579545); m_audiocpu->set_addrmap(AS_PROGRAM, &_88games_state::sound_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); 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(64*8, 32*8); screen.set_visarea(12*8, (64-12)*8-1, 2*8, 30*8-1); screen.set_screen_update(FUNC(_88games_state::screen_update_88games)); screen.set_palette("palette"); screen.screen_vblank().set(FUNC(_88games_state::vblank_irq)); palette_device &palette(PALETTE(config, "palette", 2048)); palette.enable_shadows(); palette.set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR); K052109(config, m_k052109, 0); m_k052109->set_palette("palette"); m_k052109->set_tile_callback(FUNC(_88games_state::tile_callback), this); K051960(config, m_k051960, 0); m_k051960->set_palette("palette"); m_k051960->set_screen_tag("screen"); m_k051960->set_sprite_callback(FUNC(_88games_state::sprite_callback), this); K051316(config, m_k051316, 0); m_k051316->set_palette("palette"); m_k051316->set_zoom_callback(FUNC(_88games_state::zoom_callback), this); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); YM2151(config, "ymsnd", 3579545).add_route(0, "mono", 0.75).add_route(1, "mono", 0.75); UPD7759(config, m_upd7759[0]).add_route(ALL_OUTPUTS, "mono", 0.30); UPD7759(config, m_upd7759[1]).add_route(ALL_OUTPUTS, "mono", 0.30); }
void wsf_80186_sound_device::device_add_mconfig(machine_config &config) { I80186(config, m_audiocpu, 16_MHz_XTAL); m_audiocpu->set_addrmap(AS_PROGRAM, &wsf_80186_sound_device::leland_80186_map_program); m_audiocpu->set_addrmap(AS_IO, &wsf_80186_sound_device::ataxx_80186_map_io); m_audiocpu->chip_select_callback().set(FUNC(leland_80186_sound_device::peripheral_ctrl)); m_audiocpu->tmrout0_handler().set(FUNC(leland_80186_sound_device::i80186_tmr0_w)); m_audiocpu->tmrout1_handler().set(FUNC(leland_80186_sound_device::i80186_tmr1_w)); SPEAKER(config, "speaker").front_center(); for (int i = 0; i < 4; i++) { AD7524(config, m_dac[i], 0).add_route(ALL_OUTPUTS, "speaker", 0.2); // unknown DAC DAC_8BIT_BINARY_WEIGHTED(config, m_dacvol[i], 0); // unknown DAC } AD7533(config, "dac9", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC m_dacvol[0]->add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); m_dacvol[0]->add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC m_dacvol[1]->add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); m_dacvol[1]->add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC m_dacvol[2]->add_route(0, "dac3", 1.0, DAC_VREF_POS_INPUT); m_dacvol[2]->add_route(0, "dac3", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC m_dacvol[3]->add_route(0, "dac4", 1.0, DAC_VREF_POS_INPUT); m_dacvol[3]->add_route(0, "dac4", -1.0, DAC_VREF_NEG_INPUT); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.set_output(5.0); vref.add_route(0, "dac1vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac3vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac4vol", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac9", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac9", -1.0, DAC_VREF_NEG_INPUT); /* sound hardware */ YM2151(config, m_ymsnd, 4000000); m_ymsnd->add_route(0, "speaker", 0.40); m_ymsnd->add_route(1, "speaker", 0.40); PIT8254(config, m_pit[0], 0); m_pit[0]->set_clk<0>(4000000); m_pit[0]->out_handler<0>().set(m_audiocpu, FUNC(i80186_cpu_device::drq0_w)); m_pit[0]->set_clk<1>(4000000); m_pit[0]->out_handler<1>().set(m_audiocpu, FUNC(i80186_cpu_device::drq1_w)); m_pit[0]->set_clk<2>(4000000); m_pit[0]->out_handler<2>().set(FUNC(leland_80186_sound_device::pit0_2_w)); GENERIC_LATCH_16(config, m_soundlatch); }
void wpcsnd_device::device_add_mconfig(machine_config &config) { MC6809E(config, m_cpu, XTAL(8'000'000) / 4); // MC68B09E m_cpu->set_addrmap(AS_PROGRAM, &wpcsnd_device::wpcsnd_map); config.m_minimum_quantum = attotime::from_hz(50); YM2151(config, m_ym2151, 3580000); m_ym2151->irq_handler().set(FUNC(wpcsnd_device::ym2151_irq_w)); m_ym2151->add_route(ALL_OUTPUTS, *this, 0.25); AD7524(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.25); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.set_output(5.0); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); HC55516(config, m_hc55516, 0).add_route(ALL_OUTPUTS, *this, 0.5); }
void contra_state::contra(machine_config &config) { /* basic machine hardware */ HD6309E(config, m_maincpu, XTAL(24'000'000) / 8); /* 3000000? (HD63C09EP) */ m_maincpu->set_addrmap(AS_PROGRAM, &contra_state::contra_map); m_maincpu->set_vblank_int("screen", FUNC(contra_state::contra_interrupt)); MC6809E(config, m_audiocpu, XTAL(24'000'000)/8); /* 3000000? (HD68B09EP) */ m_audiocpu->set_addrmap(AS_PROGRAM, &contra_state::sound_map); config.m_minimum_quantum = attotime::from_hz(6000); /* enough for the sound CPU to read all commands */ /* 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(37*8, 32*8); m_screen->set_visarea(0*8, 35*8-1, 2*8, 30*8-1); m_screen->set_screen_update(FUNC(contra_state::screen_update_contra)); m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_contra); PALETTE(config, m_palette, FUNC(contra_state::contra_palette)); m_palette->set_format(palette_device::xBGR_555, 2 * 8 * 16 * 16); m_palette->set_indirect_entries(128); m_palette->set_endianness(ENDIANNESS_LITTLE); K007121(config, m_k007121_1, 0); m_k007121_1->set_palette_tag(m_palette); K007121(config, m_k007121_2, 0); m_k007121_2->set_palette_tag(m_palette); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); GENERIC_LATCH_8(config, "soundlatch"); YM2151(config, "ymsnd", XTAL(3'579'545)).add_route(0, "lspeaker", 0.60).add_route(1, "rspeaker", 0.60); }
void msx_cart_sfg_device::device_add_mconfig(machine_config &config) { // YM2151 (OPM) // YM3012 (DAC) // YM2148 (MKS) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); YM2151(config, m_ym2151, XTAL(3'579'545)); // The SFG01 uses a YM2151, the SFG05 uses a YM2164, input clock comes from the main cpu frequency m_ym2151->irq_handler().set(FUNC(msx_cart_sfg_device::ym2151_irq_w)); m_ym2151->add_route(0, "lspeaker", 0.80); m_ym2151->add_route(1, "rspeaker", 0.80); YM2148(config, m_ym2148, XTAL(4'000'000)); m_ym2148->txd_handler().set("mdout", FUNC(midi_port_device::write_txd)); m_ym2148->port_write_handler().set("kbdc", FUNC(msx_audio_kbdc_port_device::write)); m_ym2148->port_read_handler().set("kbdc", FUNC(msx_audio_kbdc_port_device::read)); m_ym2148->irq_handler().set(FUNC(msx_cart_sfg_device::ym2148_irq_w)); MSX_AUDIO_KBDC_PORT(config, m_kbdc, msx_audio_keyboards, nullptr); MIDI_PORT(config, "mdout", midiout_slot, "midiout"); MIDI_PORT(config, "mdin", midiin_slot, "midiin").rxd_handler().set("ym2148", FUNC(ym2148_device::write_rxd)); }
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rastan) MCFG_PALETTE_ADD("palette", 2048) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) PC080SN(config, m_pc080sn, 0); m_pc080sn->set_gfxdecode_tag("gfxdecode"); PC090OJ(config, m_pc090oj, 0); m_pc090oj->set_gfx_region(1); m_pc090oj->set_gfxdecode_tag("gfxdecode"); m_pc090oj->set_palette_tag("palette"); /* sound hardware */ SPEAKER(config, "mono").front_center(); ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(16'000'000)/4)); /* verified on pcb */ ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ymsnd.port_write_handler().set(FUNC(rastan_state::rastan_bankswitch_w)); ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50); MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000)) /* verified on pcb */ MCFG_MSM5205_VCLK_CB(WRITELINE(*this, rastan_state, rastan_msm5205_vck)) /* VCK function */ MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) LS157(config, m_adpcm_sel, 0); m_adpcm_sel->out_callback().set("msm", FUNC(msm5205_device::data_w)); pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu);
/* assume same as ddragon3 with adjusted visible display area */ MCFG_SCREEN_RAW_PARAMS(XTAL(28'000'000) / 4, 448, 0, 320, 272, 10, 250) MCFG_SCREEN_UPDATE_DRIVER(blockout_state, screen_update_blockout) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD("palette", 513) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); ym2151_device &ymsnd(YM2151(config, "ymsnd", AUDIO_CLOCK)); ymsnd.irq_handler().set(FUNC(blockout_state::irq_handler)); ymsnd.add_route(0, "lspeaker", 0.60); ymsnd.add_route(1, "rspeaker", 0.60); MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) MACHINE_CONFIG_END MACHINE_CONFIG_START(blockout_state::agress) blockout(config); MCFG_DEVICE_MODIFY( "maincpu" ) MCFG_DEVICE_PROGRAM_MAP(agress_map) MACHINE_CONFIG_END
monitor_vgb.rxd_handler().set(m_vgb_uart, FUNC(mc2661_device::rx_w)); monitor_vgb.dsr_handler().set(m_vgb_uart, FUNC(mc2661_device::dsr_w)); ADC0844(config, m_adc, 0); m_adc->intr_callback().set("mfp", FUNC(mc68901_device::i3_w)); m_adc->ch1_callback().set_ioport("THROTTLE"); m_adc->ch2_callback().set(FUNC(micro3d_state::adc_volume_r)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); UPD7759(config, m_upd7759); m_upd7759->add_route(ALL_OUTPUTS, "lspeaker", 0.35); m_upd7759->add_route(ALL_OUTPUTS, "rspeaker", 0.35); ym2151_device &ym2151(YM2151(config, "ym2151", 3.579545_MHz_XTAL)); ym2151.add_route(0, "lspeaker", 0.35); ym2151.add_route(1, "rspeaker", 0.35); MICRO3D_SOUND(config, m_noise_1); m_noise_1->add_route(0, "lspeaker", 1.0); m_noise_1->add_route(1, "rspeaker", 1.0); MICRO3D_SOUND(config, m_noise_2); m_noise_2->add_route(0, "lspeaker", 1.0); m_noise_2->add_route(1, "rspeaker", 1.0); MACHINE_CONFIG_END void micro3d_state::botss11(machine_config &config) { micro3d(config);
void vaportra_state::vaportra(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* Custom chip 59 */ m_maincpu->set_addrmap(AS_PROGRAM, &vaportra_state::main_map); m_maincpu->set_vblank_int("screen", FUNC(vaportra_state::irq6_line_assert)); H6280(config, m_audiocpu, XTAL(24'000'000)/4); /* Custom chip 45; Audio section crystal is 32.220 MHz but CPU clock is confirmed as coming from the 24MHz crystal (6Mhz exactly on the CPU) */ m_audiocpu->set_addrmap(AS_PROGRAM, &vaportra_state::sound_map); m_audiocpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused /* video hardware */ BUFFERED_SPRITERAM16(config, m_spriteram); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(58); screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); screen.set_size(32*8, 32*8); screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(vaportra_state::screen_update)); screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_vaportra); PALETTE(config, m_palette).set_entries(1280); DECO16IC(config, m_deco_tilegen[0], 0); m_deco_tilegen[0]->set_pf1_size(DECO_64x32); m_deco_tilegen[0]->set_pf2_size(DECO_64x32); m_deco_tilegen[0]->set_pf1_trans_mask(0x0f); m_deco_tilegen[0]->set_pf2_trans_mask(0x0f); m_deco_tilegen[0]->set_pf1_col_bank(0x00); m_deco_tilegen[0]->set_pf2_col_bank(0x20); m_deco_tilegen[0]->set_pf1_col_mask(0x0f); m_deco_tilegen[0]->set_pf2_col_mask(0x0f); m_deco_tilegen[0]->set_bank1_callback(FUNC(vaportra_state::bank_callback), this); m_deco_tilegen[0]->set_bank2_callback(FUNC(vaportra_state::bank_callback), this); m_deco_tilegen[0]->set_pf12_8x8_bank(0); m_deco_tilegen[0]->set_pf12_16x16_bank(1); m_deco_tilegen[0]->set_gfxdecode_tag(m_gfxdecode); DECO16IC(config, m_deco_tilegen[1], 0); m_deco_tilegen[1]->set_pf1_size(DECO_64x32); m_deco_tilegen[1]->set_pf2_size(DECO_64x32); m_deco_tilegen[1]->set_pf1_trans_mask(0x0f); m_deco_tilegen[1]->set_pf2_trans_mask(0x0f); m_deco_tilegen[1]->set_pf1_col_bank(0x30); m_deco_tilegen[1]->set_pf2_col_bank(0x40); m_deco_tilegen[1]->set_pf1_col_mask(0x0f); m_deco_tilegen[1]->set_pf2_col_mask(0x0f); m_deco_tilegen[1]->set_bank1_callback(FUNC(vaportra_state::bank_callback), this); m_deco_tilegen[1]->set_bank2_callback(FUNC(vaportra_state::bank_callback), this); m_deco_tilegen[1]->set_pf12_8x8_bank(2); m_deco_tilegen[1]->set_pf12_16x16_bank(3); m_deco_tilegen[1]->set_gfxdecode_tag(m_gfxdecode); DECO_MXC06(config, m_spritegen, 0); m_spritegen->set_colpri_callback(FUNC(vaportra_state::vaportra_colpri_cb), this); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); YM2203(config, "ym1", XTAL(32'220'000)/8).add_route(ALL_OUTPUTS, "mono", 0.60); ym2151_device &ym2(YM2151(config, "ym2", XTAL(32'220'000)/9)); // uses a preset LS163 to force the odd speed ym2.irq_handler().set_inputline(m_audiocpu, 1); /* IRQ2 */ ym2.add_route(0, "mono", 0.60); ym2.add_route(1, "mono", 0.60); OKIM6295(config, "oki1", XTAL(32'220'000)/32, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.75); OKIM6295(config, "oki2", XTAL(32'220'000)/16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60); }
/******************************************************************************/ static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,2), 4, { RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0 }, { STEP8(0,1) }, { STEP8(0,8*2) }, 16*8 }; static const gfx_layout tile_layout = { 16,16, RGN_FRAC(1,2), 4, { RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0 }, { STEP8(16*8*2,1), STEP8(0,1) }, { STEP16(0,8*2) }, 64*8 }; static GFXDECODE_START( gfx_funkyjet ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 256, 32 ) /* Characters 8x8 */ GFXDECODE_ENTRY( "gfx1", 0, tile_layout, 256, 32 ) /* Tiles 16x16 */ GFXDECODE_ENTRY( "gfx2", 0, tile_layout, 0, 16 ) /* Sprites 16x16 */ GFXDECODE_END /******************************************************************************/ void funkyjet_state::funkyjet(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, XTAL(28'000'000)/2); /* 28 MHz crystal */ m_maincpu->set_addrmap(AS_PROGRAM, &funkyjet_state::funkyjet_map); m_maincpu->set_vblank_int("screen", FUNC(funkyjet_state::irq6_line_hold)); H6280(config, m_audiocpu, XTAL(32'220'000)/4); /* Custom chip 45, Audio section crystal is 32.220 MHz */ m_audiocpu->set_addrmap(AS_PROGRAM, &funkyjet_state::sound_map); m_audiocpu->add_route(ALL_OUTPUTS, "lspeaker", 0); // internal sound unused m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(58); screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); screen.set_size(40*8, 32*8); screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(funkyjet_state::screen_update)); screen.set_palette("palette"); DECO146PROT(config, m_deco146, 0); m_deco146->port_a_cb().set_ioport("INPUTS"); m_deco146->port_b_cb().set_ioport("SYSTEM"); m_deco146->port_c_cb().set_ioport("DSW"); m_deco146->soundlatch_irq_cb().set_inputline(m_audiocpu, 0); m_deco146->set_interface_scramble_interleave(); GFXDECODE(config, "gfxdecode", "palette", gfx_funkyjet); PALETTE(config, "palette").set_format(palette_device::xBGR_444, 1024); DECO16IC(config, m_deco_tilegen, 0); m_deco_tilegen->set_pf1_size(DECO_64x32); m_deco_tilegen->set_pf2_size(DECO_64x32); m_deco_tilegen->set_pf1_trans_mask(0x0f); m_deco_tilegen->set_pf2_trans_mask(0x0f); m_deco_tilegen->set_pf1_col_bank(0x00); m_deco_tilegen->set_pf2_col_bank(0x10); m_deco_tilegen->set_pf1_col_mask(0x0f); m_deco_tilegen->set_pf2_col_mask(0x0f); m_deco_tilegen->set_pf12_8x8_bank(0); m_deco_tilegen->set_pf12_16x16_bank(1); m_deco_tilegen->set_gfxdecode_tag("gfxdecode"); DECO_SPRITE(config, m_sprgen, 0); m_sprgen->set_gfx_region(2); m_sprgen->set_gfxdecode_tag("gfxdecode"); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(32'220'000)/9)); ymsnd.irq_handler().set_inputline(m_audiocpu, 1); // IRQ2 ymsnd.add_route(0, "lspeaker", 0.45); ymsnd.add_route(1, "rspeaker", 0.45); okim6295_device &oki(OKIM6295(config, "oki", XTAL(28'000'000)/28, okim6295_device::PIN7_HIGH)); oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50); oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50); }
MCFG_SCREEN_PALETTE("palette") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cabal) MCFG_PALETTE_ADD("palette", 1024) MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR) /* sound hardware */ SEIBU_SOUND(config, m_seibu_sound, 0); m_seibu_sound->int_callback().set_inputline(m_audiocpu, 0); m_seibu_sound->set_rom_tag("audiocpu"); m_seibu_sound->ym_read_callback().set("ymsnd", FUNC(ym2151_device::read)); m_seibu_sound->ym_write_callback().set("ymsnd", FUNC(ym2151_device::write)); SPEAKER(config, "mono").front_center(); ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(3'579'545))); /* verified on pcb */ ymsnd.irq_handler().set(m_seibu_sound, FUNC(seibu_sound_device::fm_irqhandler)); ymsnd.add_route(ALL_OUTPUTS, "mono", 0.80); SEIBU_ADPCM(config, m_adpcm1, 8000).add_route(ALL_OUTPUTS, "mono", 0.40); /* it should use the msm5205 */ SEIBU_ADPCM(config, m_adpcm2, 8000).add_route(ALL_OUTPUTS, "mono", 0.40); /* it should use the msm5205 */ MACHINE_CONFIG_END MACHINE_CONFIG_START(cabal_state::cabalt) cabal(config); MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(trackball_main_map) upd4701_device &upd4701l(UPD4701A(config, "upd4701l")); upd4701l.set_portx_tag("IN0");
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(256, 256) MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) MCFG_SCREEN_UPDATE_DRIVER(darkmist_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_darkmist) MCFG_PALETTE_ADD("palette", 0x100*4) MCFG_PALETTE_INDIRECT_ENTRIES(256+1) MCFG_PALETTE_FORMAT(xxxxRRRRGGGGBBBB) MCFG_PALETTE_INIT_OWNER(darkmist_state, darkmist) /* sound hardware */ SPEAKER(config, "mono").front_center(); ym2151_device &ymsnd(YM2151(config, "ymsnd", 14318180/4)); /* 3.579545 MHz */ ymsnd.irq_handler().set(m_t5182, FUNC(t5182_device::ym2151_irq_handler)); ymsnd.add_route(0, "mono", 1.0); ymsnd.add_route(1, "mono", 1.0); MACHINE_CONFIG_END ROM_START( darkmist ) ROM_REGION( 0x18000, "maincpu", 0 ) ROM_LOAD( "dm_15.rom", 0x00000, 0x08000, CRC(21e6503c) SHA1(09174fb424b76f7f2a381297e3420ddd2e76b008) ) ROM_LOAD( "dm_16.rom", 0x10000, 0x08000, CRC(094579d9) SHA1(2449bc9ba38396912ee9b72dd870ea9fcff95776) ) ROM_REGION( 0x8000, "t5182_z80", 0 ) /* Toshiba T5182 external ROM */ ROM_LOAD( "dm_17.rom", 0x0000, 0x8000, CRC(7723dcae) SHA1(a0c69e7a7b6fd74f7ed6b9c6419aed94aabcd4b0) ) ROM_REGION( 0x4000, "tx_gfx", 0 )
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_shisen) MCFG_PALETTE_ADD("palette", 256) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); generic_latch_8_device &soundlatch(GENERIC_LATCH_8(config, "soundlatch")); soundlatch.data_pending_callback().set("soundirq", FUNC(rst_neg_buffer_device::rst18_w)); soundlatch.set_separate_acknowledge(true); RST_NEG_BUFFER(config, "soundirq", 0).int_callback().set_inputline("soundcpu", 0); MCFG_DEVICE_ADD("m72", IREM_M72_AUDIO) ym2151_device &ymsnd(YM2151(config, "ymsnd", 3579545)); ymsnd.irq_handler().set("soundirq", FUNC(rst_neg_buffer_device::rst28_w)); ymsnd.add_route(0, "lspeaker", 0.5); ymsnd.add_route(1, "rspeaker", 0.5); MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25) // unknown DAC MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END /*************************************************************************** Game driver(s)