summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author tim lindner <tlindner@macmess.org>2025-11-11 04:42:04 -0800
committer GitHub <noreply@github.com>2025-11-11 07:42:04 -0500
commit2fdf69267df06827f4fd47a90f3e58b29cc119a4 (patch)
treebbceb0a079969025538b5413ac1cf62a8f76e82e
parent7a4c1687bf7481788c87ab02a1432d8c985062b5 (diff)
trs/coco3.cpp: enable GIME vertical text scroll register (#14503)
-rw-r--r--src/mame/trs/gime.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mame/trs/gime.cpp b/src/mame/trs/gime.cpp
index 7c218644331..484deaf13b1 100644
--- a/src/mame/trs/gime.cpp
+++ b/src/mame/trs/gime.cpp
@@ -1238,7 +1238,11 @@ void gime_device::new_frame()
/* latch in the video position */
m_video_position = get_video_base();
- m_line_in_row = m_gime_registers[0x0C] & 0x0F;
+
+ /* latch in the vertical scroll position */
+ m_line_in_row = m_gime_registers[0x00] & 0x80 ? 0 : m_gime_registers[0x0C] & 0x0F;
+ if (m_line_in_row >= get_lines_per_row())
+ m_line_in_row = 0;
/* update the geometry, as appropriate */
if (legacy_video_changed)
@@ -1312,7 +1316,6 @@ void gime_device::update_border(uint16_t physical_scanline)
void gime_device::record_border_scanline(uint16_t physical_scanline)
{
- m_line_in_row = 0;
update_border(physical_scanline);
update_value(&m_scanlines[physical_scanline].m_line_in_row, uint8_t(~0));
}