From 65238350c713151e1dc9a3b4f1e2966295173990 Mon Sep 17 00:00:00 2001 From: David Haywood <28625134+DavidHaywood@users.noreply.github.com> Date: Thu, 19 Nov 2020 23:38:35 +0000 Subject: MT 07792: quartet, quarteta, quartet2, quartet2a: The moving floors that appear after the 15th stage are not displayed. --- src/mame/drivers/segas16a.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/segas16a.cpp b/src/mame/drivers/segas16a.cpp index 122a69523e6..39938a46248 100644 --- a/src/mame/drivers/segas16a.cpp +++ b/src/mame/drivers/segas16a.cpp @@ -490,7 +490,9 @@ void segas16a_state::mcu_io_w(offs_t offset, uint8_t data) // access text RAM case 1: - if (offset >= 0x8000 && offset < 0x9000) + if (offset < 0x8000) + m_maincpu->space(AS_PROGRAM).write_byte(0x400001 ^ (offset & 0x7fff), data); + else if (offset < 0x9000) m_maincpu->space(AS_PROGRAM).write_byte(0x410001 ^ (offset & 0xfff), data); else logerror("%03X: MCU movx write mode %02X offset %04X = %02X\n", m_mcu->pc(), m_mcu_control, offset, data); @@ -540,8 +542,11 @@ uint8_t segas16a_state::mcu_io_r(address_space &space, offs_t offset) // access text RAM case 1: - if (offset >= 0x8000 && offset < 0x9000) + if (offset < 0x8000) + return m_maincpu->space(AS_PROGRAM).read_byte(0x400001 ^ (offset & 0x7fff)); + else if (offset < 0x9000) return m_maincpu->space(AS_PROGRAM).read_byte(0x410001 ^ (offset & 0xfff)); + logerror("%03X: MCU movx read mode %02X offset %04X\n", m_mcu->pc(), m_mcu_control, offset); return 0xff; -- cgit v1.2.3