summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2021-06-19 21:58:53 -0500
committer cracyc <cracyc@users.noreply.github.com>2021-06-19 21:58:53 -0500
commitec687c94a03c80896e1553135f76ead5ebda312f (patch)
tree29ebcadb1b893157d977be930760d26fb472ad5b
parent553042e2b610313369e0432abbf26d23406335a6 (diff)
fmtowns: make sure programs can't override the sprite page
-rw-r--r--src/mame/video/fmtowns.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mame/video/fmtowns.cpp b/src/mame/video/fmtowns.cpp
index 124b404be7f..34b912b54f9 100644
--- a/src/mame/video/fmtowns.cpp
+++ b/src/mame/video/fmtowns.cpp
@@ -461,6 +461,12 @@ void towns_state::towns_video_440_w(offs_t offset, uint8_t data)
break;
case 0x03:
// logerror("CRTC: writing register %i (0x443) [%02x]\n",towns_crtc_sel,data);
+ if((m_video.towns_crtc_sel == 21) && (m_video.towns_sprite_reg[1] & 0x80))
+ {
+ m_video.towns_crtc_reg[m_video.towns_crtc_sel] =
+ (m_video.towns_crtc_reg[m_video.towns_crtc_sel] & 0x80ff) | ((data & 0x7f) << 8);
+ return;
+ }
m_video.towns_crtc_reg[m_video.towns_crtc_sel] =
(m_video.towns_crtc_reg[m_video.towns_crtc_sel] & 0x00ff) | (data << 8);
towns_crtc_refresh_mode();