summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/cpu/mips/mips3.cpp10
-rw-r--r--src/devices/video/mc6845.cpp6
-rw-r--r--src/devices/video/scn2674.cpp2
3 files changed, 11 insertions, 7 deletions
diff --git a/src/devices/cpu/mips/mips3.cpp b/src/devices/cpu/mips/mips3.cpp
index 08ea4197a34..62c20ef7eb4 100644
--- a/src/devices/cpu/mips/mips3.cpp
+++ b/src/devices/cpu/mips/mips3.cpp
@@ -2886,8 +2886,8 @@ inline void r5900le_device::handle_dmfc2(uint32_t op)
{
rtval[i] = reg[i];
}
- m_core->r[rt] = ((uint64_t)rtval[1] << 32) | rtval[0];
- m_core->rh[rt] = ((uint64_t)rtval[3] << 32) | rtval[2];
+ m_core->r[rt] = util::icat<uint64_t>(rtval[1], rtval[0]);
+ m_core->rh[rt] = util::icat<uint64_t>(rtval[3], rtval[2]);
}
inline void r5900le_device::handle_dmtc2(uint32_t op)
@@ -3784,7 +3784,7 @@ void r5900le_device::handle_idt(uint32_t op)
break;
}
}
- m_core->r[rd] = ((uint64_t)count[1] << 32) | count[0];
+ m_core->r[rd] = util::icat<uint64_t>(count[1], count[0]);
}
break;
case 0x08: /* MMI0 */
@@ -4271,8 +4271,8 @@ void r5900le_device::handle_mmi0(uint32_t op)
uint64_t rsval = m_core->r[rs];
uint64_t rtval = m_core->r[rt];
uint32_t rdval[4] = { (uint32_t)rtval, (uint32_t)rsval, (uint32_t)(rtval >> 32), (uint32_t)(rsval >> 32) };
- m_core->r[rd] = (uint64_t)rdval[1] << 32 | rdval[0];
- m_core->rh[rd] = (uint64_t)rdval[3] << 32 | rdval[2];
+ m_core->r[rd] = util::icat<uint64_t>(rdval[1], rdval[0]);
+ m_core->rh[rd] = util::icat<uint64_t>(rdval[3], rdval[2]);
}
break;
}
diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp
index c1e3ca971aa..dfa37d0f568 100644
--- a/src/devices/video/mc6845.cpp
+++ b/src/devices/video/mc6845.cpp
@@ -913,7 +913,11 @@ void mc6845_device::handle_line_timer()
update_cursor_state();
if (has_screen())
- screen().reset_origin();
+ {
+ // HACK: prevent asoccer from hanging MAME by repeatedly stalling VBLANK periods and attendant frame updates
+ if (!m_vsync || !new_vsync)
+ screen().reset_origin();
+ }
}
else
{
diff --git a/src/devices/video/scn2674.cpp b/src/devices/video/scn2674.cpp
index 96e1e7d3ca5..c5fe92250aa 100644
--- a/src/devices/video/scn2674.cpp
+++ b/src/devices/video/scn2674.cpp
@@ -14,7 +14,7 @@
#define LOG_COMMAND (1 << 1)
#define LOG_INTR (1 << 2)
#define LOG_READ (1 << 3)
-#define VERBOSE (0)
+#define VERBOSE (LOG_IR)
#include "logmacro.h"