From 423f41d7d3fa954c2be9c77feb093aa7830ce660 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Tue, 21 Mar 2017 14:58:25 +0300 Subject: [PATCH] rsx: Skip unknown/invalid commands in cb --- rpcs3/Emu/RSX/rsx_methods.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index 8c52039e95..5ac11fd75b 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -29,9 +29,11 @@ namespace rsx std::array methods{}; - [[noreturn]] void invalid_method(thread*, u32 _reg, u32 arg) + void invalid_method(thread*, u32 _reg, u32 arg) { - fmt::throw_exception("Invalid RSX method 0x%x (arg=0x%x)" HERE, _reg << 2, arg); + //Don't throw, gather information and ignore broken/garbage commands + //TODO: Investigate why these commands are executed at all. (Heap corruption? Alignment padding?) + LOG_ERROR(RSX, "Invalid RSX method 0x%x (arg=0x%x)" HERE, _reg << 2, arg); } template struct vertex_data_type_from_element_type;