dataeast/bwing.cpp: Use raw parameters for screen; reduce MC6809E clocks by 25%

This commit is contained in:
AJR 2024-12-07 18:32:52 -05:00
parent 5b727bc877
commit c6599996ac

View File

@ -669,13 +669,13 @@ void bwing_state::device_post_load()
void bwing_state::bwing(machine_config &config) void bwing_state::bwing(machine_config &config)
{ {
// basic machine hardware // basic machine hardware
MC6809E(config, m_maincpu, 2'000'000); MC6809E(config, m_maincpu, 24_MHz_XTAL / 16); // MC68A09E
m_maincpu->set_addrmap(AS_PROGRAM, &bwing_state::p1_map); m_maincpu->set_addrmap(AS_PROGRAM, &bwing_state::p1_map);
MC6809E(config, m_subcpu, 2'000'000); MC6809E(config, m_subcpu, 24_MHz_XTAL / 16); // MC68A09E
m_subcpu->set_addrmap(AS_PROGRAM, &bwing_state::p2_map); m_subcpu->set_addrmap(AS_PROGRAM, &bwing_state::p2_map);
DECO16(config, m_audiocpu, 2'000'000); DECO16(config, m_audiocpu, 2'000'000); // FIXME: clock probably wrong
m_audiocpu->set_addrmap(AS_PROGRAM, &bwing_state::p3_map); m_audiocpu->set_addrmap(AS_PROGRAM, &bwing_state::p3_map);
m_audiocpu->set_addrmap(AS_IO, &bwing_state::p3_io_map); m_audiocpu->set_addrmap(AS_IO, &bwing_state::p3_io_map);
m_audiocpu->set_periodic_int(FUNC(bwing_state::p3_interrupt), attotime::from_hz(1'000)); m_audiocpu->set_periodic_int(FUNC(bwing_state::p3_interrupt), attotime::from_hz(1'000));
@ -685,27 +685,23 @@ void bwing_state::bwing(machine_config &config)
// video hardware // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
screen.set_refresh_hz(60); screen.set_raw(24_MHz_XTAL / 4, 384, 0, 256, 272, 8, 248); // verified from schematics
screen.set_vblank_time(ATTOSECONDS_IN_USEC(600)); // must be long enough for polling
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(bwing_state::screen_update)); screen.set_screen_update(FUNC(bwing_state::screen_update));
screen.set_palette(m_palette); screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bwing); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bwing);
PALETTE(config, m_palette).set_entries(64); PALETTE(config, m_palette).set_entries(64);
// sound hardware // sound hardware
SPEAKER(config, "speaker").front_center(); SPEAKER(config, "speaker").front_center();
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
AY8912(config, "ay1", XTAL(24'000'000) / 2 / 8).add_route(ALL_OUTPUTS, "speaker", 0.5); AY8912(config, "ay1", 24_MHz_XTAL / 16).add_route(ALL_OUTPUTS, "speaker", 0.5);
AY8912(config, "ay2", XTAL(24'000'000) / 2 / 8).add_route(ALL_OUTPUTS, "speaker", 0.5); AY8912(config, "ay2", 24_MHz_XTAL / 16).add_route(ALL_OUTPUTS, "speaker", 0.5);
DAC08(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.1); DAC08(config, "dac").add_route(ALL_OUTPUTS, "speaker", 0.1);
} }
//**************************************************************************** //****************************************************************************