From e9d9bad6439fd208a908797ce9725d04749fab02 Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Mon, 9 Nov 2015 22:27:33 +0100 Subject: [PATCH] rsx: reset register after each flip Some overlay operation are executed when a flip is requested, it may change register states. Fix depth buffer in SH3 --- rpcs3/Emu/RSX/RSXThread.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 4335bf19ff..6a43a2be51 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -567,6 +567,9 @@ namespace rsx rsx->gcm_current_buffer = arg; rsx->flip(arg); + // After each flip PS3 system is executing a routine that changes registers value to some default. + // Some game use this default state (SH3). + rsx->reset(); rsx->last_flip_time = get_system_time() - 1000000; rsx->gcm_current_buffer = arg;