summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
author angelosa <salese_corp_ltd@email.it>2017-09-04 22:22:11 +0200
committer angelosa <salese_corp_ltd@email.it>2017-09-04 22:23:16 +0200
commit0b5d4e663ed6045880bea71806cf8058d8f4874c (patch)
tree6fc05de2e2b99e3125635d525ae6eaa3098a5395 /src/devices
parentf9b8f6e9bd3466fde11092276c823ca7876b3d8d (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.cpp15
-rw-r--r--src/devices/video/mb_vcu.h1
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 );