summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2020-11-09 20:36:46 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2020-11-09 20:36:46 +0100
commit62c7af181331e9abe05461c17143eba54ead9581 (patch)
treec2fa43d642e0b4b23b8b74afefcc584101e0a9e3
parent3e04e4b78eccb525031b322f2484417e2fbfc2ae (diff)
meadows.cpp: fixed MT07783
-rw-r--r--src/mame/drivers/meadows.cpp36
-rw-r--r--src/mame/includes/meadows.h5
-rw-r--r--src/mame/video/meadows.cpp20
3 files changed, 29 insertions, 32 deletions
diff --git a/src/mame/drivers/meadows.cpp b/src/mame/drivers/meadows.cpp
index bf0dc57544a..88d3baa3f82 100644
--- a/src/mame/drivers/meadows.cpp
+++ b/src/mame/drivers/meadows.cpp
@@ -444,44 +444,42 @@ INPUT_PORTS_END
static INPUT_PORTS_START( bowl3d )
PORT_START("INPUTS1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("P1 Hook right")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Hook left")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Bowl slow")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Bowl fast")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("INPUTS2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Hook right")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Hook left")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Bowl slow")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Bowl fast")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("DSW")
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x01, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x03, 0x00, "CPU bowls ball after" )
+ PORT_DIPSETTING( 0x00, "120 seconds" )
+ PORT_DIPSETTING( 0x01, "3 seconds" )
+ PORT_DIPSETTING( 0x02, "4 seconds" )
+ PORT_DIPSETTING( 0x03, "5 seconds" )
PORT_DIPNAME( 0x04, 0x00, "Coin Option" )
PORT_DIPSETTING( 0x00, "2 Players / 1 Coin" )
PORT_DIPSETTING( 0x04, "1/2 Player(s) / 1/2 Coin(s)" )
PORT_DIPNAME( 0x08, 0x00, "Beer Frame" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unused ) )
+ PORT_DIPNAME( 0x30, 0x00, "Extended play" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x10, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unused ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x10, "250" )
+ PORT_DIPSETTING( 0x20, "275" )
+ PORT_DIPSETTING( 0x30, "300" )
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
diff --git a/src/mame/includes/meadows.h b/src/mame/includes/meadows.h
index 60b49339b21..9b25f4fd2c7 100644
--- a/src/mame/includes/meadows.h
+++ b/src/mame/includes/meadows.h
@@ -43,6 +43,10 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
+protected:
+ virtual void machine_start() override { m_main_sense_state = 0; }
+ virtual void video_start() override;
+
private:
required_device<s2650_device> m_maincpu;
optional_device<s2650_device> m_audiocpu;
@@ -77,7 +81,6 @@ private:
void meadows_videoram_w(offs_t offset, uint8_t data);
void meadows_spriteram_w(offs_t offset, uint8_t data);
TILE_GET_INFO_MEMBER(get_tile_info);
- virtual void video_start() override;
uint32_t screen_update_meadows(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(meadows_vblank_irq);
DECLARE_WRITE_LINE_MEMBER(minferno_vblank_irq);
diff --git a/src/mame/video/meadows.cpp b/src/mame/video/meadows.cpp
index 353ba892d64..d3e01bd0d8d 100644
--- a/src/mame/video/meadows.cpp
+++ b/src/mame/video/meadows.cpp
@@ -22,8 +22,7 @@
TILE_GET_INFO_MEMBER(meadows_state::get_tile_info)
{
- uint8_t *videoram = m_videoram;
- tileinfo.set(0, videoram[tile_index] & 0x7f, 0, 0);
+ tileinfo.set(0, m_videoram[tile_index] & 0x7f, 0, 0);
}
@@ -78,17 +77,14 @@ void meadows_state::meadows_spriteram_w(offs_t offset, uint8_t data)
void meadows_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip)
{
- uint8_t *spriteram = m_spriteram;
- int i;
-
- for (i = 0; i < 4; i++)
+ for (int i = 0; i < 4; i++)
{
- int x = spriteram[i+0] + SPR_ADJUST_X;
- int y = spriteram[i+4] + SPR_ADJUST_Y;
- int code = spriteram[i+8] & 0x0f; /* bit #0 .. #3 select sprite */
-/* int bank = (spriteram[i+8] >> 4) & 1; bit #4 selects prom ??? */
- int bank = i; /* that fixes it for now :-/ */
- int flip = spriteram[i+8] >> 5; /* bit #5 flip vertical flag */
+ int x = m_spriteram[i+0] + SPR_ADJUST_X;
+ int y = m_spriteram[i+4] + SPR_ADJUST_Y;
+ int code = m_spriteram[i+8] & 0x0f; /* bit #0 .. #3 select sprite */
+/* int bank = (m_spriteram[i+8] >> 4) & 1; bit #4 selects prom ??? */
+ int bank = i; /* that fixes it for now :-/ */
+ int flip = m_spriteram[i+8] >> 5; /* bit #5 flip vertical flag */
m_gfxdecode->gfx(bank + 1)->transpen(bitmap,clip, code, 0, flip, 0, x, y, 0);
}