From fc50e6abcb47f2465d48387e8e7c111c0459eee3 Mon Sep 17 00:00:00 2001 From: eladash Date: Tue, 28 Aug 2018 22:03:28 +0300 Subject: [PATCH] Rsx: remove method registers reset cellGcm manually resets registers each flip, tested with cellGcmSetFlip --- rpcs3/Emu/RSX/gcm_printing.cpp | 5 +++++ rpcs3/Emu/RSX/rsx_methods.cpp | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/gcm_printing.cpp b/rpcs3/Emu/RSX/gcm_printing.cpp index 7df6e05e84..820478d9a0 100644 --- a/rpcs3/Emu/RSX/gcm_printing.cpp +++ b/rpcs3/Emu/RSX/gcm_printing.cpp @@ -719,6 +719,11 @@ namespace {NV3062_SET_OFFSET_DESTIN, "NV3062_SET_OFFSET_DESTIN"}, {NV308A_POINT, "NV308A_POINT"}, {NV308A_SIZE_OUT, "NV308A_SIZE_OUT"}, {NV308A_SIZE_IN, "NV308A_SIZE_IN"}, {NV308A_COLOR, "NV308A_COLOR"}, + {GCM_SET_USER_COMMAND, "GCM_SET_USER_COMMAND"}, + {GCM_DRIVER_QUEUE, "GCM_DRIVER_QUEUE + 0x0"}, + {GCM_DRIVER_QUEUE+1, "GCM_DRIVER_QUEUE + 0x4"}, + {GCM_FLIP_HEAD, "GCM_FLIP_HEAD"}, + {GCM_FLIP_HEAD+1, "GCM_FLIP_HEAD + 0x4"}, }; } diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index 0ea249c68e..c362be3fff 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -1182,9 +1182,9 @@ namespace rsx rsx->int_flip_index++; rsx->current_display_buffer = arg; rsx->flip(arg); - // After each flip PS3 system is executing a routine that changes registers value to some default. + // After each flip cellGcmSys is executing a routine that changes registers value to some default. // Some game use this default state (SH3). - rsx->reset(); + if (rsx->isHLE) rsx->reset(); rsx->last_flip_time = get_system_time() - 1000000; rsx->flip_status = CELL_GCM_DISPLAY_FLIP_STATUS_DONE;