summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/seibu_crtc.cpp
diff options
context:
space:
mode:
author angelosa <salese_corp_ltd@email.it>2015-12-30 03:09:10 +0100
committer angelosa <salese_corp_ltd@email.it>2015-12-30 03:09:38 +0100
commitd1cc1254ad2b5f7d99390dc480620c957b8c090a (patch)
tree50b9bbf931430ce8c48b19e96f510275e90c4945 /src/mame/video/seibu_crtc.cpp
parent70e995d09ba7e7abed05927e8a61de36ad2aa7b6 (diff)
legionna.cpp/seibu_crtc.cpp: Fixed Godzilla text tilemap vertical placement, added preliminary flip screen support [Angelo Salese]
Diffstat (limited to 'src/mame/video/seibu_crtc.cpp')
-rw-r--r--src/mame/video/seibu_crtc.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/mame/video/seibu_crtc.cpp b/src/mame/video/seibu_crtc.cpp
index 413fb5468d7..c1f6148f93c 100644
--- a/src/mame/video/seibu_crtc.cpp
+++ b/src/mame/video/seibu_crtc.cpp
@@ -30,7 +30,8 @@ preliminary memory map:
(screen 3 -> Text layer)
[0x00]: Total number of visible cells?
[0x02]: Single cell H size +1?
-[0x1a]: Layer Dynamic Paging?
+[0x1a]: --x- Layer Dynamic Size?
+ ---x Flip Screen
[0x1c]: Layer Enable
---x ---- sprite enable
---- x--- tilemap screen 3 enable
@@ -179,7 +180,9 @@ const device_type SEIBU_CRTC = &device_creator<seibu_crtc_device>;
static ADDRESS_MAP_START( seibu_crtc_vregs, AS_0, 16, seibu_crtc_device )
AM_RANGE(0x001c, 0x001d) AM_WRITE(layer_en_w)
+ AM_RANGE(0x001a, 0x001b) AM_WRITE(reg_1a_w)
AM_RANGE(0x0020, 0x002b) AM_WRITE(layer_scroll_w)
+ AM_RANGE(0x002c, 0x003b) AM_WRITE(layer_scroll_base_w)
AM_RANGE(0x0000, 0x004f) AM_RAM // debug
ADDRESS_MAP_END
@@ -195,6 +198,18 @@ WRITE16_MEMBER( seibu_crtc_device::layer_scroll_w)
m_layer_scroll_cb(offset,data,mem_mask);
}
+WRITE16_MEMBER( seibu_crtc_device::reg_1a_w)
+{
+ if (!m_reg_1a_cb.isnull())
+ m_reg_1a_cb(offset,data,mem_mask);
+}
+
+WRITE16_MEMBER( seibu_crtc_device::layer_scroll_base_w)
+{
+ if (!m_layer_scroll_base_cb.isnull())
+ m_layer_scroll_base_cb(offset,data,mem_mask);
+}
+
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
@@ -209,6 +224,8 @@ seibu_crtc_device::seibu_crtc_device(const machine_config &mconfig, const char *
device_video_interface(mconfig, *this),
m_layer_en_cb(*this),
m_layer_scroll_cb(*this),
+ m_reg_1a_cb(*this),
+ m_layer_scroll_base_cb(*this),
m_space_config("vregs", ENDIANNESS_LITTLE, 16, 7, 0, nullptr, *ADDRESS_MAP_NAME(seibu_crtc_vregs))
{
}
@@ -231,6 +248,8 @@ void seibu_crtc_device::device_start()
{
m_layer_en_cb.resolve();
m_layer_scroll_cb.resolve();
+ m_reg_1a_cb.resolve();
+ m_layer_scroll_base_cb.resolve();
}