meadows.cpp: fixed MT07783

This commit is contained in:
Ivan Vangelista 2020-11-09 20:36:46 +01:00
parent 3e04e4b78e
commit 62c7af1813
3 changed files with 29 additions and 32 deletions

View File

@ -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 ) )

View File

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

View File

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