From 90e3f2075231297e47fc96d201a5c963647c9c4f Mon Sep 17 00:00:00 2001 From: sum2012 Date: Fri, 31 Jan 2014 14:04:06 +0800 Subject: [PATCH 1/4] Fix sceUtilityMsgDialogAbort Fix #2508 --- Core/HLE/sceUtility.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index 83071a4cf6..45a409526b 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -312,9 +312,13 @@ int sceUtilityMsgDialogAbort() WARN_LOG(SCEUTILITY, "sceUtilityMsgDialogAbort(): wrong dialog type"); return SCE_ERROR_UTILITY_WRONG_TYPE; } - - DEBUG_LOG(SCEUTILITY, "sceUtilityMsgDialogAbort()"); - return msgDialog.Abort(); + //Fix Katekyoushi Hitman Reborn! Battle Arena + int status = msgDialog.GetStatus(); + DEBUG_LOG(SCEUTILITY, "sceUtilityMsgDialogAbort() status %08x",status); + if (status == 4) + return SCE_ERROR_UTILITY_INVALID_STATUS; + else + return msgDialog.Abort(); } From 4c4d7c7a14a746d944fadb45548338208e4517c5 Mon Sep 17 00:00:00 2001 From: sum2012 Date: Fri, 31 Jan 2014 15:00:05 +0800 Subject: [PATCH 2/4] Move to PSPMSgDialog --- Core/Dialog/PSPMsgDialog.cpp | 7 ++++++- Core/HLE/sceUtility.cpp | 10 +++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Core/Dialog/PSPMsgDialog.cpp b/Core/Dialog/PSPMsgDialog.cpp index e4483866a9..28df65c0a3 100755 --- a/Core/Dialog/PSPMsgDialog.cpp +++ b/Core/Dialog/PSPMsgDialog.cpp @@ -290,8 +290,13 @@ int PSPMsgDialog::Update(int animSpeed) int PSPMsgDialog::Abort() { - status = SCE_UTILITY_STATUS_FINISHED; + //Fix Katekyoushi Hitman Reborn! Battle Arena + if (status == SCE_UTILITY_STATUS_NONE) + return SCE_ERROR_UTILITY_INVALID_STATUS; + else { + status = SCE_UTILITY_STATUS_FINISHED; return 0; + } } int PSPMsgDialog::Shutdown(bool force) diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index 45a409526b..83071a4cf6 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -312,13 +312,9 @@ int sceUtilityMsgDialogAbort() WARN_LOG(SCEUTILITY, "sceUtilityMsgDialogAbort(): wrong dialog type"); return SCE_ERROR_UTILITY_WRONG_TYPE; } - //Fix Katekyoushi Hitman Reborn! Battle Arena - int status = msgDialog.GetStatus(); - DEBUG_LOG(SCEUTILITY, "sceUtilityMsgDialogAbort() status %08x",status); - if (status == 4) - return SCE_ERROR_UTILITY_INVALID_STATUS; - else - return msgDialog.Abort(); + + DEBUG_LOG(SCEUTILITY, "sceUtilityMsgDialogAbort()"); + return msgDialog.Abort(); } From ee5912bc5ca5ba937b85b40b5b6b6fea8b56219a Mon Sep 17 00:00:00 2001 From: sum2012 Date: Fri, 31 Jan 2014 15:58:22 +0800 Subject: [PATCH 3/4] Fix formating --- Core/Dialog/PSPMsgDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/Dialog/PSPMsgDialog.cpp b/Core/Dialog/PSPMsgDialog.cpp index 28df65c0a3..403dc042f1 100755 --- a/Core/Dialog/PSPMsgDialog.cpp +++ b/Core/Dialog/PSPMsgDialog.cpp @@ -295,7 +295,7 @@ int PSPMsgDialog::Abort() return SCE_ERROR_UTILITY_INVALID_STATUS; else { status = SCE_UTILITY_STATUS_FINISHED; - return 0; + return 0; } } From b08cef4353034fe65aa337a94aea62774dee9bdf Mon Sep 17 00:00:00 2001 From: sum2012 Date: Fri, 31 Jan 2014 17:18:53 +0800 Subject: [PATCH 4/4] Fix logic --- Core/Dialog/PSPMsgDialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/Dialog/PSPMsgDialog.cpp b/Core/Dialog/PSPMsgDialog.cpp index 403dc042f1..9bdb8c5b07 100755 --- a/Core/Dialog/PSPMsgDialog.cpp +++ b/Core/Dialog/PSPMsgDialog.cpp @@ -291,7 +291,7 @@ int PSPMsgDialog::Update(int animSpeed) int PSPMsgDialog::Abort() { //Fix Katekyoushi Hitman Reborn! Battle Arena - if (status == SCE_UTILITY_STATUS_NONE) + if (status != SCE_UTILITY_STATUS_RUNNING) return SCE_ERROR_UTILITY_INVALID_STATUS; else { status = SCE_UTILITY_STATUS_FINISHED;