diff options
author | 2016-03-14 19:42:00 +0000 | |
---|---|---|
committer | 2016-03-14 19:42:00 +0000 | |
commit | bbb9fd448f31e8b52fa12f8d6e66043f72c38729 (patch) | |
tree | adc3bad31bce03f034646d0e506bb5d50c42b447 /src | |
parent | 41c8a9f6fa49b10c021196463adc654ecce25790 (diff) |
add proper flipscreen support to himesiki.cpp, previous support was incorrectly hooked up to the scroll registers (androidp exposed this bug)
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/himesiki.cpp | 5 | ||||
-rw-r--r-- | src/mame/includes/himesiki.h | 1 | ||||
-rw-r--r-- | src/mame/video/himesiki.cpp | 17 |
3 files changed, 7 insertions, 16 deletions
diff --git a/src/mame/drivers/himesiki.cpp b/src/mame/drivers/himesiki.cpp index 7765b04810c..5aab4ee4b4e 100644 --- a/src/mame/drivers/himesiki.cpp +++ b/src/mame/drivers/himesiki.cpp @@ -103,7 +103,10 @@ WRITE8_MEMBER(himesiki_state::himesiki_rombank_w) { membank("bank1")->set_entry(((data & 0x0c) >> 2)); - if (data & 0xf3) + m_flipscreen = (data & 0x10)>>4; + flip_screen_set(m_flipscreen); + + if (data & 0xe3) logerror("p06_w %02x\n", data); } diff --git a/src/mame/includes/himesiki.h b/src/mame/includes/himesiki.h index dd2ece598a4..5412e564b2a 100644 --- a/src/mame/includes/himesiki.h +++ b/src/mame/includes/himesiki.h @@ -38,7 +38,6 @@ public: DECLARE_WRITE8_MEMBER(himesiki_bg_ram_w); DECLARE_WRITE8_MEMBER(himesiki_scrollx_w); DECLARE_WRITE8_MEMBER(himesiki_scrolly_w); -// DECLARE_WRITE8_MEMBER(himesiki_flip_w); TILE_GET_INFO_MEMBER(get_bg_tile_info); virtual void machine_start() override; virtual void machine_reset() override; diff --git a/src/mame/video/himesiki.cpp b/src/mame/video/himesiki.cpp index 4eec742f05e..4d82c84e6ec 100644 --- a/src/mame/video/himesiki.cpp +++ b/src/mame/video/himesiki.cpp @@ -43,17 +43,6 @@ WRITE8_MEMBER(himesiki_state::himesiki_scrolly_w) m_scrolly = data; } -#if 0 // this can't be flipscreen (android uses it for scroll, same PCB) -WRITE8_MEMBER(himesiki_state::himesiki_flip_w) -{ - m_flipscreen = data & 0xc0; - flip_screen_set(m_flipscreen); - - if (data & 0x3f) - logerror("p08_w %02x\n",data); -} -#endif - void himesiki_state::himesiki_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT8 *spriteram; @@ -77,7 +66,7 @@ void himesiki_state::himesiki_draw_sprites( bitmap_ind16 &bitmap, const rectangl if (m_flipscreen) { - y = (y + 33) & 0xff; + y = (y - 31) & 0xff; x = 224 - x; fx ^= 4; fy = 1; @@ -116,7 +105,7 @@ void himesiki_state::himesiki_draw_sprites( bitmap_ind16 &bitmap, const rectangl if (m_flipscreen) { - y += 49; + y = (y - 15) &0xff; x = 240 - x; f = 1; } @@ -135,7 +124,7 @@ UINT32 himesiki_state::screen_update_himesiki(screen_device &screen, bitmap_ind1 { int x = -(m_scrollx[0] << 8 | m_scrollx[1]) & 0x1ff; m_bg_tilemap->set_scrolldx(x, x); - m_bg_tilemap->set_scrolldy(-m_scrolly, -m_scrolly); + m_bg_tilemap->set_scrolldy(-m_scrolly, -m_scrolly-64); m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); himesiki_draw_sprites(bitmap, cliprect); |