From ebd70cd0e86b9d8c00c96c5331d3c9adc29ef98b Mon Sep 17 00:00:00 2001 From: angelosa Date: Mon, 12 Sep 2016 16:00:23 +0200 Subject: [PATCH] SCREEN_RAW_PARAMS for Combat School, nw --- src/mame/drivers/combatsc.cpp | 17 ++++++++++++----- src/mame/includes/combatsc.h | 5 ++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/mame/drivers/combatsc.cpp b/src/mame/drivers/combatsc.cpp index 2f241304d4f..ac9cdfb1bff 100644 --- a/src/mame/drivers/combatsc.cpp +++ b/src/mame/drivers/combatsc.cpp @@ -339,6 +339,11 @@ WRITE8_MEMBER(combatsc_state::combatsc_portA_w) /* unknown. always write 0 */ } +// causes scores to disappear during fire ranges, either sprite busy flag or screen frame number related +READ8_MEMBER(combatsc_state::unk_r) +{ + return 0; //m_screen->frame_number() & 1; +} /************************************* * @@ -348,6 +353,7 @@ WRITE8_MEMBER(combatsc_state::combatsc_portA_w) static ADDRESS_MAP_START( combatsc_map, AS_PROGRAM, 8, combatsc_state ) AM_RANGE(0x0000, 0x0007) AM_WRITE(combatsc_pf_control_w) + AM_RANGE(0x001f, 0x001f) AM_READ(unk_r) AM_RANGE(0x0020, 0x005f) AM_READWRITE(combatsc_scrollram_r, combatsc_scrollram_w) // AM_RANGE(0x0060, 0x00ff) AM_WRITEONLY /* RAM */ @@ -361,7 +367,7 @@ static ADDRESS_MAP_START( combatsc_map, AS_PROGRAM, 8, combatsc_state ) AM_RANGE(0x0404, 0x0407) AM_READ(trackball_r) /* 1P & 2P controls / trackball */ AM_RANGE(0x0408, 0x0408) AM_WRITE(combatsc_coin_counter_w) /* coin counters */ AM_RANGE(0x040c, 0x040c) AM_WRITE(combatsc_vreg_w) - AM_RANGE(0x0410, 0x0410) AM_WRITE(combatsc_bankselect_w) + AM_RANGE(0x0410, 0x0410) AM_READNOP AM_WRITE(combatsc_bankselect_w) // read is clr a (discarded) AM_RANGE(0x0414, 0x0414) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) AM_RANGE(0x0418, 0x0418) AM_WRITE(combatsc_sh_irqtrigger_w) AM_RANGE(0x041c, 0x041c) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) /* watchdog reset? */ @@ -708,10 +714,11 @@ static MACHINE_CONFIG_START( combatsc, combatsc_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) +// MCFG_SCREEN_REFRESH_RATE(60) +// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) +// MCFG_SCREEN_SIZE(32*8, 32*8) +// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) + MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/3, 528, 0, 256, 256, 16, 240) // not accurate, assuming same to other Konami games (59.17) MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatsc) MCFG_SCREEN_PALETTE("palette") diff --git a/src/mame/includes/combatsc.h b/src/mame/includes/combatsc.h index 253ab5d8899..2bcf0cf04d2 100644 --- a/src/mame/includes/combatsc.h +++ b/src/mame/includes/combatsc.h @@ -22,6 +22,7 @@ public: m_k007121_2(*this, "k007121_2"), m_upd7759(*this, "upd"), m_msm5205(*this, "msm5205"), + m_screen(*this, "screen"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette"), m_soundlatch(*this, "soundlatch"), @@ -62,10 +63,11 @@ public: optional_device m_k007121_2; optional_device m_upd7759; optional_device m_msm5205; + required_device m_screen; required_device m_gfxdecode; required_device m_palette; required_device m_soundlatch; - + optional_ioport_array<4> m_track_ports; DECLARE_WRITE8_MEMBER(combatsc_vreg_w); @@ -79,6 +81,7 @@ public: DECLARE_READ8_MEMBER(trackball_r); DECLARE_WRITE8_MEMBER(protection_w); DECLARE_READ8_MEMBER(protection_r); + DECLARE_READ8_MEMBER(unk_r); DECLARE_WRITE8_MEMBER(protection_clock_w); DECLARE_WRITE8_MEMBER(combatsc_sh_irqtrigger_w); DECLARE_READ8_MEMBER(combatsc_video_r);