diff --git a/rpcs3/Emu/RSX/RSXFIFO.cpp b/rpcs3/Emu/RSX/RSXFIFO.cpp index 69cffc5012..7752219e6c 100644 --- a/rpcs3/Emu/RSX/RSXFIFO.cpp +++ b/rpcs3/Emu/RSX/RSXFIFO.cpp @@ -465,7 +465,7 @@ namespace rsx // Check for flow control if ((cmd & RSX_METHOD_OLD_JUMP_CMD_MASK) == RSX_METHOD_OLD_JUMP_CMD) { - const u32 offs = cmd & 0x1ffffffc; + const u32 offs = cmd & RSX_METHOD_OLD_JUMP_OFFSET_MASK; if (offs == fifo_ctrl->get_pos()) { //Jump to self. Often preceded by NOP @@ -484,7 +484,7 @@ namespace rsx } if ((cmd & RSX_METHOD_NEW_JUMP_CMD_MASK) == RSX_METHOD_NEW_JUMP_CMD) { - const u32 offs = cmd & 0xfffffffc; + const u32 offs = cmd & RSX_METHOD_NEW_JUMP_OFFSET_MASK; if (offs == fifo_ctrl->get_pos()) { //Jump to self. Often preceded by NOP @@ -511,7 +511,7 @@ namespace rsx return; } - const u32 offs = cmd & 0xfffffffc; + const u32 offs = cmd & RSX_METHOD_CALL_OFFSET_MASK; m_return_addr = fifo_ctrl->get_pos() + 4; fifo_ctrl->set_get(offs); return; diff --git a/rpcs3/Emu/RSX/gcm_enums.h b/rpcs3/Emu/RSX/gcm_enums.h index 00ffc71a44..479fa60697 100644 --- a/rpcs3/Emu/RSX/gcm_enums.h +++ b/rpcs3/Emu/RSX/gcm_enums.h @@ -1047,13 +1047,13 @@ enum Method RSX_METHOD_NON_INCREMENT_COUNT_SHIFT = 18, RSX_METHOD_NON_INCREMENT_METHOD_MASK = 0x0000fffc, - RSX_METHOD_NEW_JUMP_CMD_MASK = 0x00000003, + RSX_METHOD_NEW_JUMP_CMD_MASK = 0xe0000003, RSX_METHOD_NEW_JUMP_CMD = 0x00000001, RSX_METHOD_NEW_JUMP_OFFSET_MASK = 0xfffffffc, RSX_METHOD_CALL_CMD_MASK = 0x00000003, RSX_METHOD_CALL_CMD = 0x00000002, - RSX_METHOD_CALL_OFFSET_MASK = 0xfffffffc, + RSX_METHOD_CALL_OFFSET_MASK = 0x1ffffffc, RSX_METHOD_NON_METHOD_CMD_MASK = 0xa0030003, RSX_METHOD_RETURN_CMD = 0x00020000,