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 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); }