From 9433e80b419b79f99faffa8d49fde4f5bc9c3fb7 Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Thu, 22 Jul 2010 02:25:53 +0000 Subject: [PATCH] RSP: Fix sign issue in VCL opcode [angrylion] --- src/emu/cpu/rsp/rsp.c | 2 +- src/emu/cpu/rsp/rspdrc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emu/cpu/rsp/rsp.c b/src/emu/cpu/rsp/rsp.c index a7667431b3f..3cdea5d8414 100644 --- a/src/emu/cpu/rsp/rsp.c +++ b/src/emu/cpu/rsp/rsp.c @@ -1892,7 +1892,7 @@ static void handle_vector_ops(rsp_state *rsp, UINT32 op) { if (rsp->flag[2] & (1 << (del))) { - if (((UINT32)(INT16)(s1) + (UINT32)(INT16)(s2)) > 0x10000) + if (((UINT32)(UINT16)(s1) + (UINT32)(UINT16)(s2)) > 0x10000) { W_ACCUM_L(del, s1); CLEAR_COMPARE_FLAG(del); diff --git a/src/emu/cpu/rsp/rspdrc.c b/src/emu/cpu/rsp/rspdrc.c index e3f120ee539..44265df787a 100644 --- a/src/emu/cpu/rsp/rspdrc.c +++ b/src/emu/cpu/rsp/rspdrc.c @@ -5151,7 +5151,7 @@ INLINE void cfunc_rsp_vcl(void *param) { if (rsp->flag[2] & (1 << (del))) { - if (((UINT32)(INT16)(s1) + (UINT32)(INT16)(s2)) > 0x10000) + if (((UINT32)(UINT16)(s1) + (UINT32)(UINT16)(s2)) > 0x10000) { W_ACCUM_L(del, s1); CLEAR_COMPARE_FLAG(del);