diff --git a/src/mame/amiga/agnus_copper.cpp b/src/mame/amiga/agnus_copper.cpp index 688ebf6c5c5..a4c74d4e802 100644 --- a/src/mame/amiga/agnus_copper.cpp +++ b/src/mame/amiga/agnus_copper.cpp @@ -312,13 +312,14 @@ int agnus_copper_device::execute_next(int xpos, int ypos, bool is_blitter_busy, if (word0 >= m_cdang_setting) { // SKIP applies to valid MOVEs only - // - apocalyps (gameplay) + // - apocalyps (gameplay, chain of SKIPs & WAIT) + // - rbisland (loading screen at least, tries to SKIP a CDANG MOVE) if (m_state_skipping) { LOGINST(" (Ignored)\n"); m_state_skipping = false; // TODO: verify timings - // may depend on num of planes enabled (move_offset) or opcode fetch above is enough. + // may depend on num of planes enabled (move_offset) or opcode fetch above is enough. xpos += COPPER_CYCLES_TO_PIXELS(2); return xpos; } diff --git a/src/mame/amiga/amiga_m.cpp b/src/mame/amiga/amiga_m.cpp index d529e683e7e..e0e2118c7ae 100644 --- a/src/mame/amiga/amiga_m.cpp +++ b/src/mame/amiga/amiga_m.cpp @@ -1365,8 +1365,10 @@ uint16_t amiga_state::custom_chip_r(offs_t offset) case REG_CLXDAT: temp = CUSTOM_REG(REG_CLXDAT); - CUSTOM_REG(REG_CLXDAT) = 0; - return temp; + if (!machine().side_effects_disabled()) + CUSTOM_REG(REG_CLXDAT) = 0; + // - "Barney [& Freddy] Mouse" requires bit 15 high all the time + return temp | (1 << 15); case REG_DENISEID: return CUSTOM_REG(REG_DENISEID);