diff options
author | Olivier Galibert <galibert@pobox.com> | 2022-05-21 09:24:28 +0200 |
---|---|---|
committer | Olivier Galibert <galibert@pobox.com> | 2022-05-21 09:24:37 +0200 |
commit | 12b6572a7e43d9f03d7960f69e496289fc1dcf40 (patch) | |
tree | 15e4763a70b6d49a6b08939a2df570110a9fe270 | |
parent | b2ef8aba82a324681e8c0f2b33ec75f04484ce1f (diff) |
perfrman: Partially guessed video adjustment
-rw-r--r-- | src/mame/drivers/slapfght.cpp | 11 | ||||
-rw-r--r-- | src/mame/video/slapfght.cpp | 8 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/mame/drivers/slapfght.cpp b/src/mame/drivers/slapfght.cpp index 8f8a6d019de..65822b263d3 100644 --- a/src/mame/drivers/slapfght.cpp +++ b/src/mame/drivers/slapfght.cpp @@ -896,7 +896,7 @@ GFXDECODE_END void slapfght_state::perfrman(machine_config &config) { /* basic machine hardware */ - Z80(config, m_maincpu, XTAL(16'000'000)/4); // 4MHz? XTAL is known, divider is guessed + Z80(config, m_maincpu, 16_MHz_XTAL/4); // 4MHz? XTAL is known, divider is guessed m_maincpu->set_addrmap(AS_PROGRAM, &slapfght_state::perfrman_map); m_maincpu->set_addrmap(AS_IO, &slapfght_state::io_map_nomcu); @@ -906,7 +906,7 @@ void slapfght_state::perfrman(machine_config &config) mainlatch.q_out_cb<3>().set(FUNC(slapfght_state::irq_enable_w)); mainlatch.q_out_cb<6>().set(FUNC(slapfght_state::palette_bank_w)); - Z80(config, m_audiocpu, XTAL(16'000'000)/8); // 2MHz? XTAL is known, divider is guessed + Z80(config, m_audiocpu, 16_MHz_XTAL/8); // 2MHz? XTAL is known, divider is guessed m_audiocpu->set_addrmap(AS_PROGRAM, &slapfght_state::perfrman_sound_map); m_audiocpu->set_periodic_int(FUNC(slapfght_state::sound_nmi), attotime::from_hz(240)); // music speed, verified @@ -914,7 +914,8 @@ void slapfght_state::perfrman(machine_config &config) /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_raw(36_MHz_XTAL/6, 388, 0, 296, 270, 0, 240); + // pure guesswork, hopefully we can get real values + m_screen->set_raw(16_MHz_XTAL/3, 344, 0, 256, 270, 0, 240); m_screen->set_screen_update(FUNC(slapfght_state::screen_update_perfrman)); m_screen->screen_vblank().set(m_spriteram_buffer, FUNC(buffered_spriteram8_device::vblank_copy_falling)); m_screen->screen_vblank().append(FUNC(slapfght_state::vblank_irq)); @@ -929,12 +930,12 @@ void slapfght_state::perfrman(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); - ay8910_device &ay1(AY8910(config, "ay1", XTAL(16'000'000)/8)); + ay8910_device &ay1(AY8910(config, "ay1", 16_MHz_XTAL/8)); 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", XTAL(16'000'000)/8)); + ay8910_device &ay2(AY8910(config, "ay2", 16_MHz_XTAL/8)); ay2.port_a_read_callback().set_ioport("DSW1"); ay2.port_b_read_callback().set_ioport("DSW2"); ay2.add_route(ALL_OUTPUTS, "mono", 0.25); diff --git a/src/mame/video/slapfght.cpp b/src/mame/video/slapfght.cpp index e64a5b6262e..df8bc0d5ab2 100644 --- a/src/mame/video/slapfght.cpp +++ b/src/mame/video/slapfght.cpp @@ -55,6 +55,8 @@ VIDEO_START_MEMBER(slapfght_state, perfrman) { m_pf1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(slapfght_state::get_pf_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + m_pf1_tilemap->set_scrolldy(-16, 0); + m_pf1_tilemap->set_transparent_pen(0); } @@ -152,7 +154,7 @@ void slapfght_state::draw_perfrman_sprites(bitmap_ind16 &bitmap, const rectangle */ int code = src[offs + 0]; - int sy = src[offs + 3] - 1; + int sy = src[offs + 3] - 17; int sx = src[offs + 1] - 13; int pri = src[offs + 2] >> 6 & 3; int color = (src[offs + 2] >> 1 & 3) | (src[offs + 2] << 2 & 4) | (m_palette_bank << 3); @@ -160,8 +162,8 @@ void slapfght_state::draw_perfrman_sprites(bitmap_ind16 &bitmap, const rectangle if (flip_screen()) { - sy = 256 - sy; - sx = 240 - sx; + sy = (206 - sy) & 0xff; + sx = 284 - sx; fx = fy = 1; } |