From adb2acdb39078f6a9af792fac4f8f65ffb31ade4 Mon Sep 17 00:00:00 2001 From: Berk Date: Sun, 5 Jul 2026 22:09:14 +0300 Subject: [PATCH] [sceMsgDialog] implemented sceMsgDialogInitialize (#22) --- .../CommonDialog/MsgDialogExports.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/SharpEmu.Libs/CommonDialog/MsgDialogExports.cs diff --git a/src/SharpEmu.Libs/CommonDialog/MsgDialogExports.cs b/src/SharpEmu.Libs/CommonDialog/MsgDialogExports.cs new file mode 100644 index 0000000..a8946f5 --- /dev/null +++ b/src/SharpEmu.Libs/CommonDialog/MsgDialogExports.cs @@ -0,0 +1,27 @@ +// Copyright (C) 2026 SharpEmu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +using SharpEmu.HLE; +using System.Threading; + +namespace SharpEmu.Libs.CommonDialog; + +public static class MsgDialogExports +{ + private const int AlreadyInitialized = unchecked((int)0x80B80002); + private static int _initialized; + + [SysAbiExport( + Nid = "lDqxaY1UbEo", + ExportName = "sceMsgDialogInitialize", + Target = Generation.Gen4 | Generation.Gen5, + LibraryName = "libSceMsgDialog")] + public static int MsgDialogInitialize(CpuContext ctx) + { + var result = Interlocked.Exchange(ref _initialized, 1) == 0 + ? 0 + : AlreadyInitialized; + ctx[CpuRegister.Rax] = unchecked((ulong)result); + return result; + } +}