diff options
| author | 2017-09-04 22:22:11 +0200 | |
|---|---|---|
| committer | 2017-09-04 22:23:16 +0200 | |
| commit | 0b5d4e663ed6045880bea71806cf8058d8f4874c (patch) | |
| tree | 6fc05de2e2b99e3125635d525ae6eaa3098a5395 /src/devices | |
| parent | f9b8f6e9bd3466fde11092276c823ca7876b3d8d (diff) | |
mb_vcu.cpp: Fixed layer clearances for Great Guns [Angelo Salese]
Diffstat (limited to 'src/devices')
| -rw-r--r-- | src/devices/video/mb_vcu.cpp | 15 | ||||
| -rw-r--r-- | src/devices/video/mb_vcu.h | 1 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/devices/video/mb_vcu.cpp b/src/devices/video/mb_vcu.cpp index 7a5371ec761..1506b3bdfda 100644 --- a/src/devices/video/mb_vcu.cpp +++ b/src/devices/video/mb_vcu.cpp @@ -303,6 +303,7 @@ READ8_MEMBER( mb_vcu_device::load_gfx ) dot = m_cpu->space(AS_PROGRAM).read_byte(((offset + (bits >> 3)) & 0x1fff) + 0x4000) >> (4-(bits & 7)); dot&= 0xf; + //if(dot != 0xf || m_mode & 2) write_byte(dstx|dsty<<8|cur_layer<<16|m_vbank<<18, dot); } @@ -502,10 +503,22 @@ READ8_MEMBER( mb_vcu_device::status_r ) } WRITE8_MEMBER( mb_vcu_device::vbank_w ) -{ +{ m_vbank = (data & 0x40) >> 6; } +WRITE8_MEMBER( mb_vcu_device::vbank_clear_w ) +{ + m_vbank = (data & 0x40) >> 6; + + // setting vbank clears VRAM in the setted bank, applies to Great Guns only since it never ever access the RMW stuff + for(int i=0;i<0x10000;i++) + { + write_byte(i|0x00000|m_vbank<<18,0x0f); + write_byte(i|0x10000|m_vbank<<18,0x0f); + } +} + //------------------------------------------------- // update_screen - //------------------------------------------------- diff --git a/src/devices/video/mb_vcu.h b/src/devices/video/mb_vcu.h index efaad7c7f28..f75810cc16f 100644 --- a/src/devices/video/mb_vcu.h +++ b/src/devices/video/mb_vcu.h @@ -34,6 +34,7 @@ public: DECLARE_WRITE8_MEMBER( background_color_w ); DECLARE_READ8_MEMBER( status_r ); DECLARE_WRITE8_MEMBER( vbank_w ); + DECLARE_WRITE8_MEMBER( vbank_clear_w ); DECLARE_READ8_MEMBER( mb_vcu_paletteram_r ); DECLARE_WRITE8_MEMBER( mb_vcu_paletteram_w ); |
