From 8204737efad3180865829121d9938aa7752d2bcd Mon Sep 17 00:00:00 2001 From: Raul Tambre Date: Sun, 13 Sep 2015 10:26:01 +0300 Subject: [PATCH] Implement GetLicenseArea, category improvements Also fixed newlines, CellSailEvent, fixed CellMusic changes, fixed console_write, fixed L10n changes and removed the login dialog for now, until a more proper implementation. --- rpcs3/Emu/RSX/GL/GLGSRender.cpp | 2 +- rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp | 4 +- rpcs3/Emu/SysCalls/Modules/cellL10n.cpp | 22 +- rpcs3/Emu/SysCalls/Modules/cellL10n.h | 207 ------------------ rpcs3/Emu/SysCalls/Modules/cellMusic.cpp | 34 +-- rpcs3/Emu/SysCalls/Modules/cellMusic.h | 142 ++++++------ rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp | 70 +----- rpcs3/Emu/SysCalls/Modules/cellNetCtl.h | 11 +- rpcs3/Emu/SysCalls/Modules/cellSail.cpp | 12 +- rpcs3/Emu/SysCalls/Modules/cellSail.h | 8 +- rpcs3/Emu/SysCalls/Modules/cellSysutilAvc2.h | 2 +- .../Emu/SysCalls/Modules/cellSysutilMisc.cpp | 26 ++- rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp | 7 +- rpcs3/Gui/GameViewer.cpp | 33 ++- rpcs3/Gui/SettingsDialog.cpp | 3 +- rpcs3/Gui/SignInDialog.cpp | 2 +- rpcs3/Gui/SignInDialog.h | 2 +- 17 files changed, 164 insertions(+), 423 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 60802dc612..71b1cfe14f 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -188,7 +188,7 @@ void GLTexture::Init(RSXTexture& tex) { for (int j = 0; j < tex.GetWidth(); j++) { - dst[(i*tex.GetWidth()) + j] = src[LinearToSwizzleAddress(j, i, 0, log2width, log2height, 0)]; + dst[(i * tex.GetWidth()) + j] = src[LinearToSwizzleAddress(j, i, 0, log2width, log2height, 0)]; } } } diff --git a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp index 82adb5d307..6fc5512ba5 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp @@ -742,9 +742,9 @@ u64 cellGcmGetLastFlipTime() return Emu.GetGSManager().GetRender().m_last_flip_time; } -s32 cellGcmGetLastSecondVTime() +u64 cellGcmGetLastSecondVTime() { - UNIMPLEMENTED_FUNC(cellGcmSys); + cellGcmSys.Todo("cellGcmGetLastSecondVTime()"); return CELL_OK; } diff --git a/rpcs3/Emu/SysCalls/Modules/cellL10n.cpp b/rpcs3/Emu/SysCalls/Modules/cellL10n.cpp index 2906827504..12a38d26c2 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellL10n.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellL10n.cpp @@ -889,11 +889,8 @@ s32 l10n_convert_str(s32 cd, vm::cptr src, vm::ptr src_len, vm::ptrsecond.first; - dst_code = element->second.second; + s32 src_code = cd >> 16; + s32 dst_code = cd & 0xffff; return L10nConvertStr(src_code, src, src_len, dst_code, dst, dst_len); } @@ -1001,18 +998,7 @@ s32 MSJISstoUCS2s() s32 l10n_get_converter(u32 src_code, u32 dst_code) { cellL10n.Warning("l10n_get_converter(src_code=%d, dst_code=%d)", src_code, dst_code); - - auto it = converters.begin(); - - while (it != converters.end()) - { - if (it->second.first == src_code && it->second.second == dst_code) - { - return it->first; - } - - ++it; - } + return (src_code << 16) | dst_code; } s32 GB18030stoUTF8s() @@ -1179,8 +1165,6 @@ s32 UTF8stoUCS2s() Module cellL10n("cellL10n", []() { - insertConverters(); - REG_FUNC(cellL10n, UCS2toEUCJP); REG_FUNC(cellL10n, l10n_convert); REG_FUNC(cellL10n, UCS2toUTF32); diff --git a/rpcs3/Emu/SysCalls/Modules/cellL10n.h b/rpcs3/Emu/SysCalls/Modules/cellL10n.h index a1a8d02e94..04c39af03a 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellL10n.h +++ b/rpcs3/Emu/SysCalls/Modules/cellL10n.h @@ -2,8 +2,6 @@ namespace vm { using namespace ps3; } -std::map> converters; - // L10nResult enum { @@ -83,208 +81,3 @@ enum { L10N_CODEPAGE_869, _L10N_CODE_ }; - -static void insertConverters() -{ - converters.clear(); - converters[1] = std::make_pair(L10N_UTF8, L10N_UTF16); - converters[2] = std::make_pair(L10N_UTF8, L10N_UTF32); - converters[3] = std::make_pair(L10N_UTF8, L10N_UCS2); - converters[5] = std::make_pair(L10N_UTF8, L10N_ISO_8859_1); - converters[6] = std::make_pair(L10N_UTF8, L10N_ISO_8859_2); - converters[7] = std::make_pair(L10N_UTF8, L10N_ISO_8859_3); - converters[8] = std::make_pair(L10N_UTF8, L10N_ISO_8859_4); - converters[9] = std::make_pair(L10N_UTF8, L10N_ISO_8859_5); - converters[10] = std::make_pair(L10N_UTF8, L10N_ISO_8859_6); - converters[11] = std::make_pair(L10N_UTF8, L10N_ISO_8859_7); - converters[12] = std::make_pair(L10N_UTF8, L10N_ISO_8859_8); - converters[13] = std::make_pair(L10N_UTF8, L10N_ISO_8859_9); - converters[14] = std::make_pair(L10N_UTF8, L10N_ISO_8859_10); - converters[15] = std::make_pair(L10N_UTF8, L10N_ISO_8859_11); - converters[16] = std::make_pair(L10N_UTF8, L10N_ISO_8859_13); - converters[17] = std::make_pair(L10N_UTF8, L10N_ISO_8859_14); - converters[18] = std::make_pair(L10N_UTF8, L10N_ISO_8859_15); - converters[19] = std::make_pair(L10N_UTF8, L10N_ISO_8859_16); - converters[20] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_437); - converters[21] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_850); - converters[22] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_863); - converters[23] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_866); - converters[24] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_932); - converters[25] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_936); - converters[26] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_949); - converters[27] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_950); - converters[28] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_1251); - converters[29] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_1252); - converters[30] = std::make_pair(L10N_UTF8, L10N_EUC_CN); - converters[31] = std::make_pair(L10N_UTF8, L10N_EUC_JP); - converters[32] = std::make_pair(L10N_UTF8, L10N_EUC_KR); - converters[33] = std::make_pair(L10N_UTF8, L10N_ISO_2022_JP); - converters[34] = std::make_pair(L10N_UTF8, L10N_ARIB); - converters[35] = std::make_pair(L10N_UTF8, L10N_HZ); - converters[36] = std::make_pair(L10N_UTF8, L10N_GB18030); - converters[37] = std::make_pair(L10N_UTF8, L10N_RIS_506); - converters[38] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_852); - converters[39] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_1250); - converters[40] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_737); - converters[41] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_1253); - converters[42] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_857); - converters[43] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_1254); - converters[44] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_775); - converters[45] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_1257); - converters[46] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_855); - converters[47] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_858); - converters[48] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_860); - converters[49] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_861); - converters[50] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_865); - converters[51] = std::make_pair(L10N_UTF8, L10N_CODEPAGE_869); - converters[65536] = std::make_pair(L10N_UTF16, L10N_UTF8); - converters[65538] = std::make_pair(L10N_UTF16, L10N_UTF32); - converters[65539] = std::make_pair(L10N_UTF16, L10N_UCS2); - converters[131072] = std::make_pair(L10N_UTF32, L10N_UTF8); - converters[131073] = std::make_pair(L10N_UTF32, L10N_UTF32); - converters[131075] = std::make_pair(L10N_UTF32, L10N_UCS2); - converters[196608] = std::make_pair(L10N_UCS2, L10N_UTF8); - converters[196609] = std::make_pair(L10N_UCS2, L10N_UTF16); - converters[196610] = std::make_pair(L10N_UCS2, L10N_UTF32); - converters[196613] = std::make_pair(L10N_UCS2, L10N_ISO_8859_1); - converters[196614] = std::make_pair(L10N_UCS2, L10N_ISO_8859_2); - converters[196615] = std::make_pair(L10N_UCS2, L10N_ISO_8859_3); - converters[196616] = std::make_pair(L10N_UCS2, L10N_ISO_8859_4); - converters[196617] = std::make_pair(L10N_UCS2, L10N_ISO_8859_5); - converters[196618] = std::make_pair(L10N_UCS2, L10N_ISO_8859_6); - converters[196619] = std::make_pair(L10N_UCS2, L10N_ISO_8859_7); - converters[196620] = std::make_pair(L10N_UCS2, L10N_ISO_8859_8); - converters[196621] = std::make_pair(L10N_UCS2, L10N_ISO_8859_9); - converters[196622] = std::make_pair(L10N_UCS2, L10N_ISO_8859_10); - converters[196623] = std::make_pair(L10N_UCS2, L10N_ISO_8859_11); - converters[196624] = std::make_pair(L10N_UCS2, L10N_ISO_8859_13); - converters[196625] = std::make_pair(L10N_UCS2, L10N_ISO_8859_14); - converters[196626] = std::make_pair(L10N_UCS2, L10N_ISO_8859_15); - converters[196627] = std::make_pair(L10N_UCS2, L10N_ISO_8859_16); - converters[196628] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_437); - converters[196629] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_850); - converters[196630] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_863); - converters[196631] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_866); - converters[196632] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_932); - converters[196633] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_936); - converters[196634] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_949); - converters[196635] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_950); - converters[196636] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_1251); - converters[196637] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_1252); - converters[196638] = std::make_pair(L10N_UCS2, L10N_EUC_CN); - converters[196639] = std::make_pair(L10N_UCS2, L10N_EUC_JP); - converters[196640] = std::make_pair(L10N_UCS2, L10N_EUC_KR); - converters[196641] = std::make_pair(L10N_UCS2, L10N_ISO_2022_JP); - converters[196642] = std::make_pair(L10N_UCS2, L10N_ARIB); - converters[196643] = std::make_pair(L10N_UCS2, L10N_HZ); - converters[196644] = std::make_pair(L10N_UCS2, L10N_GB18030); - converters[196645] = std::make_pair(L10N_UCS2, L10N_RIS_506); - converters[196646] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_852); - converters[196647] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_1250); - converters[196648] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_737); - converters[196649] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_1253); - converters[196650] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_857); - converters[196651] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_1254); - converters[196652] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_775); - converters[196653] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_1257); - converters[196654] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_855); - converters[196655] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_858); - converters[196656] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_860); - converters[196657] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_861); - converters[196658] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_865); - converters[196659] = std::make_pair(L10N_UCS2, L10N_CODEPAGE_869); - converters[327680] = std::make_pair(L10N_ISO_8859_1, L10N_UTF8); - converters[327683] = std::make_pair(L10N_ISO_8859_1, L10N_UCS2); - converters[393216] = std::make_pair(L10N_ISO_8859_2, L10N_UTF8); - converters[393219] = std::make_pair(L10N_ISO_8859_2, L10N_UCS2); - converters[458752] = std::make_pair(L10N_ISO_8859_3, L10N_UTF8); - converters[458755] = std::make_pair(L10N_ISO_8859_3, L10N_UCS2); - converters[524288] = std::make_pair(L10N_ISO_8859_4, L10N_UTF8); - converters[524291] = std::make_pair(L10N_ISO_8859_4, L10N_UCS2); - converters[589824] = std::make_pair(L10N_ISO_8859_5, L10N_UTF8); - converters[589827] = std::make_pair(L10N_ISO_8859_5, L10N_UCS2); - converters[655360] = std::make_pair(L10N_ISO_8859_6, L10N_UTF8); - converters[655363] = std::make_pair(L10N_ISO_8859_6, L10N_UCS2); - converters[720896] = std::make_pair(L10N_ISO_8859_7, L10N_UTF8); - converters[720899] = std::make_pair(L10N_ISO_8859_7, L10N_UCS2); - converters[786432] = std::make_pair(L10N_ISO_8859_8, L10N_UTF8); - converters[786435] = std::make_pair(L10N_ISO_8859_8, L10N_UCS2); - converters[851968] = std::make_pair(L10N_ISO_8859_9, L10N_UTF8); - converters[851971] = std::make_pair(L10N_ISO_8859_9, L10N_UCS2); - converters[917504] = std::make_pair(L10N_ISO_8859_10, L10N_UTF8); - converters[917507] = std::make_pair(L10N_ISO_8859_10, L10N_UCS2); - converters[983040] = std::make_pair(L10N_ISO_8859_11, L10N_UTF8); - converters[983043] = std::make_pair(L10N_ISO_8859_11, L10N_UCS2); - converters[1048576] = std::make_pair(L10N_ISO_8859_13, L10N_UTF8); - converters[1048579] = std::make_pair(L10N_ISO_8859_13, L10N_UCS2); - converters[1114112] = std::make_pair(L10N_ISO_8859_14, L10N_UTF8); - converters[1114115] = std::make_pair(L10N_ISO_8859_14, L10N_UCS2); - converters[1179648] = std::make_pair(L10N_ISO_8859_15, L10N_UTF8); - converters[1179651] = std::make_pair(L10N_ISO_8859_15, L10N_UCS2); - converters[1245184] = std::make_pair(L10N_ISO_8859_16, L10N_UTF8); - converters[1245187] = std::make_pair(L10N_ISO_8859_16, L10N_UCS2); - converters[1310720] = std::make_pair(L10N_CODEPAGE_437, L10N_UTF8); - converters[1310723] = std::make_pair(L10N_CODEPAGE_437, L10N_UCS2); - converters[1376256] = std::make_pair(L10N_CODEPAGE_850, L10N_UTF8); - converters[1376259] = std::make_pair(L10N_CODEPAGE_850, L10N_UCS2); - converters[1441792] = std::make_pair(L10N_CODEPAGE_863, L10N_UTF8); - converters[1441795] = std::make_pair(L10N_CODEPAGE_863, L10N_UCS2); - converters[1507328] = std::make_pair(L10N_CODEPAGE_866, L10N_UTF8); - converters[1507331] = std::make_pair(L10N_CODEPAGE_866, L10N_UCS2); - converters[1572864] = std::make_pair(L10N_CODEPAGE_932, L10N_UTF8); - converters[1572867] = std::make_pair(L10N_CODEPAGE_932, L10N_UCS2); - converters[1638400] = std::make_pair(L10N_CODEPAGE_936, L10N_UTF8); - converters[1638403] = std::make_pair(L10N_CODEPAGE_936, L10N_UCS2); - converters[1703936] = std::make_pair(L10N_CODEPAGE_949, L10N_UTF8); - converters[1703939] = std::make_pair(L10N_CODEPAGE_949, L10N_UCS2); - converters[1769472] = std::make_pair(L10N_CODEPAGE_950, L10N_UTF8); - converters[1769475] = std::make_pair(L10N_CODEPAGE_950, L10N_UCS2); - converters[1835008] = std::make_pair(L10N_CODEPAGE_1251, L10N_UTF8); - converters[1835011] = std::make_pair(L10N_CODEPAGE_1251, L10N_UCS2); - converters[1900544] = std::make_pair(L10N_CODEPAGE_1252, L10N_UTF8); - converters[1900547] = std::make_pair(L10N_CODEPAGE_1252, L10N_UCS2); - converters[1966080] = std::make_pair(L10N_EUC_CN, L10N_UTF8); - converters[1966083] = std::make_pair(L10N_EUC_CN, L10N_UCS2); - converters[2031616] = std::make_pair(L10N_EUC_JP, L10N_UTF8); - converters[2031619] = std::make_pair(L10N_EUC_JP, L10N_UCS2); - converters[2097152] = std::make_pair(L10N_EUC_KR, L10N_UTF8); - converters[2097155] = std::make_pair(L10N_EUC_KR, L10N_UCS2); - converters[2162688] = std::make_pair(L10N_ISO_2022_JP, L10N_UTF8); - converters[2162691] = std::make_pair(L10N_ISO_2022_JP, L10N_UCS2); - converters[2228224] = std::make_pair(L10N_ARIB, L10N_UTF8); - converters[2228227] = std::make_pair(L10N_ARIB, L10N_UCS2); - converters[2293760] = std::make_pair(L10N_HZ, L10N_UTF8); - converters[2293763] = std::make_pair(L10N_HZ, L10N_UCS2); - converters[2359296] = std::make_pair(L10N_GB18030, L10N_UTF8); - converters[2359299] = std::make_pair(L10N_GB18030, L10N_UCS2); - converters[2424832] = std::make_pair(L10N_RIS_506, L10N_UTF8); - converters[2424835] = std::make_pair(L10N_RIS_506, L10N_UCS2); - converters[2490368] = std::make_pair(L10N_CODEPAGE_852, L10N_UTF8); - converters[2490371] = std::make_pair(L10N_CODEPAGE_852, L10N_UCS2); - converters[2555904] = std::make_pair(L10N_CODEPAGE_1250, L10N_UTF8); - converters[2555907] = std::make_pair(L10N_CODEPAGE_1250, L10N_UCS2); - converters[2621440] = std::make_pair(L10N_CODEPAGE_737, L10N_UTF8); - converters[2621443] = std::make_pair(L10N_CODEPAGE_737, L10N_UCS2); - converters[2686976] = std::make_pair(L10N_CODEPAGE_1253, L10N_UTF8); - converters[2686979] = std::make_pair(L10N_CODEPAGE_1253, L10N_UCS2); - converters[2752512] = std::make_pair(L10N_CODEPAGE_857, L10N_UTF8); - converters[2752515] = std::make_pair(L10N_CODEPAGE_857, L10N_UCS2); - converters[2818048] = std::make_pair(L10N_CODEPAGE_1254, L10N_UTF8); - converters[2818051] = std::make_pair(L10N_CODEPAGE_1254, L10N_UCS2); - converters[2883584] = std::make_pair(L10N_CODEPAGE_775, L10N_UTF8); - converters[2883587] = std::make_pair(L10N_CODEPAGE_775, L10N_UCS2); - converters[2949120] = std::make_pair(L10N_CODEPAGE_1257, L10N_UTF8); - converters[2949123] = std::make_pair(L10N_CODEPAGE_1257, L10N_UCS2); - converters[3014656] = std::make_pair(L10N_CODEPAGE_855, L10N_UTF8); - converters[3014659] = std::make_pair(L10N_CODEPAGE_855, L10N_UCS2); - converters[3080192] = std::make_pair(L10N_CODEPAGE_858, L10N_UTF8); - converters[3080195] = std::make_pair(L10N_CODEPAGE_858, L10N_UCS2); - converters[3145728] = std::make_pair(L10N_CODEPAGE_860, L10N_UTF8); - converters[3145731] = std::make_pair(L10N_CODEPAGE_860, L10N_UCS2); - converters[3211264] = std::make_pair(L10N_CODEPAGE_861, L10N_UTF8); - converters[3211267] = std::make_pair(L10N_CODEPAGE_861, L10N_UCS2); - converters[3276800] = std::make_pair(L10N_CODEPAGE_865, L10N_UTF8); - converters[3276803] = std::make_pair(L10N_CODEPAGE_865, L10N_UCS2); - converters[3342336] = std::make_pair(L10N_CODEPAGE_869, L10N_UTF8); - converters[3342339] = std::make_pair(L10N_CODEPAGE_869, L10N_UCS2); -} \ No newline at end of file diff --git a/rpcs3/Emu/SysCalls/Modules/cellMusic.cpp b/rpcs3/Emu/SysCalls/Modules/cellMusic.cpp index d0c3261dd0..bd5993b56c 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellMusic.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellMusic.cpp @@ -114,40 +114,24 @@ s32 cellMusicInitialize2(s32 mode, s32 spuPriority, vm::ptr { cellMusic.Todo("cellMusicInitialize2(mode=%d, spuPriority=%d, func=*0x%x, userData=*0x%x)", mode, spuPriority, func, userData); + if (mode != CELL_MUSIC2_PLAYER_MODE_NORMAL) + { + cellMusic.Todo("Unknown player mode: 0x%x", mode); + return CELL_MUSIC2_ERROR_PARAM; + } + named_thread_t(WRAP_EXPR("CellMusicInit"), [=]() { - if (mode != CELL_MUSIC2_PLAYER_MODE_NORMAL) - { - cellMusic.Todo("Unknown player mode: 0x%x", mode); - Emu.GetCallbackManager().Async([=](CPUThread& CPU) - { - vm::var ret(CPU); - *ret = CELL_MUSIC2_ERROR_PARAM; - func(static_cast(CPU), CELL_MUSIC2_EVENT_INITIALIZE_RESULT, ret, userData); - }); - } - - const auto music = fxm::make(); - - if (!music) - { - Emu.GetCallbackManager().Async([=](CPUThread& CPU) - { - vm::var ret(CPU); - *ret = CELL_MUSIC2_ERROR_GENERIC; - func(static_cast(CPU), CELL_MUSIC2_EVENT_INITIALIZE_RESULT, ret, userData); - }); - return; - } - + const auto music = fxm::make_always(); music->func = func; music->userData = userData; - Emu.GetCallbackManager().Async([=](CPUThread& CPU) + Emu.GetCallbackManager().Register([=](CPUThread& CPU) -> s32 { vm::var ret(CPU); *ret = CELL_OK; func(static_cast(CPU), CELL_MUSIC2_EVENT_INITIALIZE_RESULT, ret, userData); + return CELL_OK; }); }).detach(); diff --git a/rpcs3/Emu/SysCalls/Modules/cellMusic.h b/rpcs3/Emu/SysCalls/Modules/cellMusic.h index 44d9cc8b6b..7b41d7a2ee 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellMusic.h +++ b/rpcs3/Emu/SysCalls/Modules/cellMusic.h @@ -5,114 +5,114 @@ namespace vm { using namespace ps3; } // Error Codes enum { - CELL_MUSIC_OK = 0, - CELL_MUSIC_CANCELED = 1, - CELL_MUSIC_PLAYBACK_FINISHED = 0x8002c101, - CELL_MUSIC_ERROR_PARAM = 0x8002c102, - CELL_MUSIC_ERROR_BUSY = 0x8002c103, - CELL_MUSIC_ERROR_NO_ACTIVE_CONTENT = 0x8002c104, - CELL_MUSIC_ERROR_NO_MATCH_FOUND = 0x8002c105, - CELL_MUSIC_ERROR_INVALID_CONTEXT = 0x8002c106, - CELL_MUSIC_ERROR_PLAYBACK_FAILURE = 0x8002c107, - CELL_MUSIC_ERROR_NO_MORE_CONTENT = 0x8002c108, - CELL_MUSIC_DIALOG_OPEN = 0x8002c109, - CELL_MUSIC_DIALOG_CLOSE = 0x8002c10A, - CELL_MUSIC_ERROR_GENERIC = 0x8002c1FF, - CELL_MUSIC2_OK = CELL_MUSIC_OK, - CELL_MUSIC2_CANCELED = CELL_MUSIC_CANCELED, - CELL_MUSIC2_PLAYBACK_FINISHED = CELL_MUSIC_PLAYBACK_FINISHED, - CELL_MUSIC2_ERROR_PARAM = CELL_MUSIC_ERROR_PARAM, - CELL_MUSIC2_ERROR_BUSY = CELL_MUSIC_ERROR_BUSY, + CELL_MUSIC_OK = 0, + CELL_MUSIC_CANCELED = 1, + CELL_MUSIC_PLAYBACK_FINISHED = 0x8002c101, + CELL_MUSIC_ERROR_PARAM = 0x8002c102, + CELL_MUSIC_ERROR_BUSY = 0x8002c103, + CELL_MUSIC_ERROR_NO_ACTIVE_CONTENT = 0x8002c104, + CELL_MUSIC_ERROR_NO_MATCH_FOUND = 0x8002c105, + CELL_MUSIC_ERROR_INVALID_CONTEXT = 0x8002c106, + CELL_MUSIC_ERROR_PLAYBACK_FAILURE = 0x8002c107, + CELL_MUSIC_ERROR_NO_MORE_CONTENT = 0x8002c108, + CELL_MUSIC_DIALOG_OPEN = 0x8002c109, + CELL_MUSIC_DIALOG_CLOSE = 0x8002c10A, + CELL_MUSIC_ERROR_GENERIC = 0x8002c1FF, + CELL_MUSIC2_OK = CELL_MUSIC_OK, + CELL_MUSIC2_CANCELED = CELL_MUSIC_CANCELED, + CELL_MUSIC2_PLAYBACK_FINISHED = CELL_MUSIC_PLAYBACK_FINISHED, + CELL_MUSIC2_ERROR_PARAM = CELL_MUSIC_ERROR_PARAM, + CELL_MUSIC2_ERROR_BUSY = CELL_MUSIC_ERROR_BUSY, CELL_MUSIC2_ERROR_NO_ACTIVE_CONTENT = CELL_MUSIC_ERROR_NO_ACTIVE_CONTENT, - CELL_MUSIC2_ERROR_NO_MATCH_FOUND = CELL_MUSIC_ERROR_NO_MATCH_FOUND, - CELL_MUSIC2_ERROR_INVALID_CONTEXT = CELL_MUSIC_ERROR_INVALID_CONTEXT, - CELL_MUSIC2_ERROR_PLAYBACK_FAILURE = CELL_MUSIC_ERROR_PLAYBACK_FAILURE, - CELL_MUSIC2_ERROR_NO_MORE_CONTENT = CELL_MUSIC_ERROR_NO_MORE_CONTENT, - CELL_MUSIC2_DIALOG_OPEN = CELL_MUSIC_DIALOG_OPEN, - CELL_MUSIC2_DIALOG_CLOSE = CELL_MUSIC_DIALOG_CLOSE, - CELL_MUSIC2_ERROR_GENERIC = CELL_MUSIC_ERROR_GENERIC, + CELL_MUSIC2_ERROR_NO_MATCH_FOUND = CELL_MUSIC_ERROR_NO_MATCH_FOUND, + CELL_MUSIC2_ERROR_INVALID_CONTEXT = CELL_MUSIC_ERROR_INVALID_CONTEXT, + CELL_MUSIC2_ERROR_PLAYBACK_FAILURE = CELL_MUSIC_ERROR_PLAYBACK_FAILURE, + CELL_MUSIC2_ERROR_NO_MORE_CONTENT = CELL_MUSIC_ERROR_NO_MORE_CONTENT, + CELL_MUSIC2_DIALOG_OPEN = CELL_MUSIC_DIALOG_OPEN, + CELL_MUSIC2_DIALOG_CLOSE = CELL_MUSIC_DIALOG_CLOSE, + CELL_MUSIC2_ERROR_GENERIC = CELL_MUSIC_ERROR_GENERIC, }; enum { CELL_SYSUTIL_MUSIC_INITIALIZING_FINISHED = 1, - CELL_SYSUTIL_MUSIC_SHUTDOWN_FINISHED = 4, // Was 3 in 1.03, changed to 4 in 1.1 - CELL_SYSUTIL_MUSIC_LOADING_FINISHED = 5, - CELL_SYSUTIL_MUSIC_UNLOADING_FINISHED = 7, - CELL_SYSUTIL_MUSIC_RELEASED = 9, - CELL_SYSUTIL_MUSIC_GRABBED = 11, + CELL_SYSUTIL_MUSIC_SHUTDOWN_FINISHED = 4, // Was 3 in 1.03, changed to 4 in 1.1 + CELL_SYSUTIL_MUSIC_LOADING_FINISHED = 5, + CELL_SYSUTIL_MUSIC_UNLOADING_FINISHED = 7, + CELL_SYSUTIL_MUSIC_RELEASED = 9, + CELL_SYSUTIL_MUSIC_GRABBED = 11, }; enum { CELL_SYSUTIL_MUSIC2_INITIALIZING_FINISHED = CELL_SYSUTIL_MUSIC_INITIALIZING_FINISHED, - CELL_SYSUTIL_MUSIC2_SHUTDOWN_FINISHED = CELL_SYSUTIL_MUSIC_SHUTDOWN_FINISHED, - CELL_SYSUTIL_MUSIC2_LOADING_FINISHED = CELL_SYSUTIL_MUSIC_LOADING_FINISHED, - CELL_SYSUTIL_MUSIC2_UNLOADING_FINISHED = CELL_SYSUTIL_MUSIC_UNLOADING_FINISHED, - CELL_SYSUTIL_MUSIC2_RELEASED = CELL_SYSUTIL_MUSIC_RELEASED, - CELL_SYSUTIL_MUSIC2_GRABBED = CELL_SYSUTIL_MUSIC_GRABBED, + CELL_SYSUTIL_MUSIC2_SHUTDOWN_FINISHED = CELL_SYSUTIL_MUSIC_SHUTDOWN_FINISHED, + CELL_SYSUTIL_MUSIC2_LOADING_FINISHED = CELL_SYSUTIL_MUSIC_LOADING_FINISHED, + CELL_SYSUTIL_MUSIC2_UNLOADING_FINISHED = CELL_SYSUTIL_MUSIC_UNLOADING_FINISHED, + CELL_SYSUTIL_MUSIC2_RELEASED = CELL_SYSUTIL_MUSIC_RELEASED, + CELL_SYSUTIL_MUSIC2_GRABBED = CELL_SYSUTIL_MUSIC_GRABBED, }; enum { - CELL_MUSIC_EVENT_STATUS_NOTIFICATION = 0, - CELL_MUSIC_EVENT_INITIALIZE_RESULT = 1, - CELL_MUSIC_EVENT_FINALIZE_RESULT = 2, - CELL_MUSIC_EVENT_SELECT_CONTENTS_RESULT = 3, - CELL_MUSIC_EVENT_SET_PLAYBACK_COMMAND_RESULT = 4, - CELL_MUSIC_EVENT_SET_VOLUME_RESULT = 5, + CELL_MUSIC_EVENT_STATUS_NOTIFICATION = 0, + CELL_MUSIC_EVENT_INITIALIZE_RESULT = 1, + CELL_MUSIC_EVENT_FINALIZE_RESULT = 2, + CELL_MUSIC_EVENT_SELECT_CONTENTS_RESULT = 3, + CELL_MUSIC_EVENT_SET_PLAYBACK_COMMAND_RESULT = 4, + CELL_MUSIC_EVENT_SET_VOLUME_RESULT = 5, CELL_MUSIC_EVENT_SET_SELECTION_CONTEXT_RESULT = 6, - CELL_MUSIC_EVENT_UI_NOTIFICATION = 7, + CELL_MUSIC_EVENT_UI_NOTIFICATION = 7, }; enum { - CELL_MUSIC2_EVENT_STATUS_NOTIFICATION = CELL_MUSIC_EVENT_STATUS_NOTIFICATION, - CELL_MUSIC2_EVENT_INITIALIZE_RESULT = CELL_MUSIC_EVENT_INITIALIZE_RESULT, - CELL_MUSIC2_EVENT_FINALIZE_RESULT = CELL_MUSIC_EVENT_FINALIZE_RESULT, - CELL_MUSIC2_EVENT_SELECT_CONTENTS_RESULT = CELL_MUSIC_EVENT_SELECT_CONTENTS_RESULT, - CELL_MUSIC2_EVENT_SET_PLAYBACK_COMMAND_RESULT = CELL_MUSIC_EVENT_SET_PLAYBACK_COMMAND_RESULT, - CELL_MUSIC2_EVENT_SET_VOLUME_RESULT = CELL_MUSIC_EVENT_SET_VOLUME_RESULT, + CELL_MUSIC2_EVENT_STATUS_NOTIFICATION = CELL_MUSIC_EVENT_STATUS_NOTIFICATION, + CELL_MUSIC2_EVENT_INITIALIZE_RESULT = CELL_MUSIC_EVENT_INITIALIZE_RESULT, + CELL_MUSIC2_EVENT_FINALIZE_RESULT = CELL_MUSIC_EVENT_FINALIZE_RESULT, + CELL_MUSIC2_EVENT_SELECT_CONTENTS_RESULT = CELL_MUSIC_EVENT_SELECT_CONTENTS_RESULT, + CELL_MUSIC2_EVENT_SET_PLAYBACK_COMMAND_RESULT = CELL_MUSIC_EVENT_SET_PLAYBACK_COMMAND_RESULT, + CELL_MUSIC2_EVENT_SET_VOLUME_RESULT = CELL_MUSIC_EVENT_SET_VOLUME_RESULT, CELL_MUSIC2_EVENT_SET_SELECTION_CONTEXT_RESULT = CELL_MUSIC_EVENT_SET_SELECTION_CONTEXT_RESULT, - CELL_MUSIC2_EVENT_UI_NOTIFICATION = CELL_MUSIC_EVENT_UI_NOTIFICATION, + CELL_MUSIC2_EVENT_UI_NOTIFICATION = CELL_MUSIC_EVENT_UI_NOTIFICATION, }; enum { - CELL_MUSIC_PB_CMD_STOP = 0, - CELL_MUSIC_PB_CMD_PLAY = 1, - CELL_MUSIC_PB_CMD_PAUSE = 2, - CELL_MUSIC_PB_CMD_NEXT = 3, - CELL_MUSIC_PB_CMD_PREV = 4, + CELL_MUSIC_PB_CMD_STOP = 0, + CELL_MUSIC_PB_CMD_PLAY = 1, + CELL_MUSIC_PB_CMD_PAUSE = 2, + CELL_MUSIC_PB_CMD_NEXT = 3, + CELL_MUSIC_PB_CMD_PREV = 4, CELL_MUSIC_PB_CMD_FASTFORWARD = 5, CELL_MUSIC_PB_CMD_FASTREVERSE = 6, }; enum { - CELL_MUSIC2_PB_CMD_STOP = CELL_MUSIC_PB_CMD_STOP, - CELL_MUSIC2_PB_CMD_PLAY = CELL_MUSIC_PB_CMD_PLAY, - CELL_MUSIC2_PB_CMD_PAUSE = CELL_MUSIC_PB_CMD_PAUSE, - CELL_MUSIC2_PB_CMD_NEXT = CELL_MUSIC_PB_CMD_NEXT, - CELL_MUSIC2_PB_CMD_PREV = CELL_MUSIC_PB_CMD_PREV, + CELL_MUSIC2_PB_CMD_STOP = CELL_MUSIC_PB_CMD_STOP, + CELL_MUSIC2_PB_CMD_PLAY = CELL_MUSIC_PB_CMD_PLAY, + CELL_MUSIC2_PB_CMD_PAUSE = CELL_MUSIC_PB_CMD_PAUSE, + CELL_MUSIC2_PB_CMD_NEXT = CELL_MUSIC_PB_CMD_NEXT, + CELL_MUSIC2_PB_CMD_PREV = CELL_MUSIC_PB_CMD_PREV, CELL_MUSIC2_PB_CMD_FASTFORWARD = CELL_MUSIC_PB_CMD_FASTFORWARD, CELL_MUSIC2_PB_CMD_FASTREVERSE = CELL_MUSIC_PB_CMD_FASTREVERSE, }; enum { - CELL_MUSIC_PB_STATUS_STOP = 0, - CELL_MUSIC_PB_STATUS_PLAY = 1, - CELL_MUSIC_PB_STATUS_PAUSE = 2, + CELL_MUSIC_PB_STATUS_STOP = 0, + CELL_MUSIC_PB_STATUS_PLAY = 1, + CELL_MUSIC_PB_STATUS_PAUSE = 2, CELL_MUSIC_PB_STATUS_FASTFORWARD = 3, CELL_MUSIC_PB_STATUS_FASTREVERSE = 4, }; enum { - CELL_MUSIC2_PB_STATUS_STOP = CELL_MUSIC_PB_STATUS_STOP, - CELL_MUSIC2_PB_STATUS_PLAY = CELL_MUSIC_PB_STATUS_PLAY, - CELL_MUSIC2_PB_STATUS_PAUSE = CELL_MUSIC_PB_STATUS_PAUSE, + CELL_MUSIC2_PB_STATUS_STOP = CELL_MUSIC_PB_STATUS_STOP, + CELL_MUSIC2_PB_STATUS_PLAY = CELL_MUSIC_PB_STATUS_PLAY, + CELL_MUSIC2_PB_STATUS_PAUSE = CELL_MUSIC_PB_STATUS_PAUSE, CELL_MUSIC2_PB_STATUS_FASTFORWARD = CELL_MUSIC_PB_STATUS_FASTFORWARD, CELL_MUSIC2_PB_STATUS_FASTREVERSE = CELL_MUSIC_PB_STATUS_FASTREVERSE, }; @@ -120,15 +120,15 @@ enum enum { CELL_MUSIC_PLAYBACK_MEMORY_CONTAINER_SIZE = 11 * 1024 * 1024, - CELL_MUSIC_PLAYER_MODE_NORMAL = 0, - CELL_MUSIC2_PLAYER_MODE_NORMAL = CELL_MUSIC_PLAYER_MODE_NORMAL, - CELL_MUSIC_SELECTION_CONTEXT_SIZE = 2048, + CELL_MUSIC_PLAYER_MODE_NORMAL = 0, + CELL_MUSIC2_PLAYER_MODE_NORMAL = CELL_MUSIC_PLAYER_MODE_NORMAL, + CELL_MUSIC_SELECTION_CONTEXT_SIZE = 2048, }; -using CellMusicCallback = void(u32 evnt, vm::ptr param, vm::ptr userData); -using CellMusic2Callback = void(u32 evnt, vm::ptr param, vm::ptr userData); +using CellMusicCallback = void(u32 event, vm::ptr param, vm::ptr userData); +using CellMusic2Callback = void(u32 event, vm::ptr param, vm::ptr userData); struct CellMusicSelectionContext { char data[CELL_MUSIC_SELECTION_CONTEXT_SIZE]; -}; \ No newline at end of file +}; diff --git a/rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp b/rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp index bb3b8d179b..831a19c846 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp @@ -38,7 +38,7 @@ SignInDialogInstance::SignInDialogInstance() void SignInDialogInstance::Close() { - state = signInDialogClose; + //state = signInDialogClose; } s32 cellNetCtlInit() @@ -345,83 +345,23 @@ s32 cellNetCtlGetInfo(s32 code, vm::ptr info) return CELL_OK; } -void dialogOpenCallback() -{ - named_thread_t(WRAP_EXPR("SignInDialog Thread"), [=]() - { - while (g_sign_in_dialog->state == signInDialogOpen) - { - if (Emu.IsStopped()) - { - g_sign_in_dialog->state = signInDialogAbort; - break; - } - - std::this_thread::sleep_for(std::chrono::milliseconds(1)); // hack - } - - CallAfter([]() - { - g_sign_in_dialog->Destroy(); - g_sign_in_dialog->state = signInDialogNone; - }); - }).detach(); -} - s32 cellNetCtlNetStartDialogLoadAsync(vm::ptr param) { cellNetCtl.Warning("cellNetCtlNetStartDialogLoadAsync(param=*0x%x)", param); // TODO: Actually sign into PSN or an emulated network similar to PSN (ESN) + // TODO: Properly open the dialog prompt for sign in sysutilSendSystemCommand(CELL_SYSUTIL_NET_CTL_NETSTART_LOADED, 0); + g_sign_in_dialog->status = CELL_NET_CTL_ERROR_DIALOG_CANCELED; + sysutilSendSystemCommand(CELL_SYSUTIL_NET_CTL_NETSTART_FINISHED, 0); - // The way this is handled, is heavily inspired by the cellMsgDialogOpen2 implementation - if (param->type == CELL_NET_CTL_NETSTART_TYPE_NP) - { - cellNetCtl.Warning("cellNetCtlNetStartDialogLoadAsync(CELL_NET_CTL_NETSTART_TYPE_NP)", param); - - // Make sure that the dialog is not already open. - SignInDialogState old = signInDialogNone; - if (!g_sign_in_dialog->state.compare_exchange_strong(old, signInDialogInit)) - { - return CELL_SYSUTIL_ERROR_BUSY; - } - - CallAfter([]() - { - if (Emu.IsStopped()) - { - g_sign_in_dialog->state.exchange(signInDialogNone); - - return; - } - - g_sign_in_dialog->Create(); - - g_sign_in_dialog->state.exchange(signInDialogOpen); - dialogOpenCallback(); - }); - } - else - { - cellNetCtl.Warning("cellNetCtlNetStartDialogLoadAsync(CELL_NET_CTL_NETSTART_TYPE_NET)", param); - sysutilSendSystemCommand(CELL_SYSUTIL_NET_CTL_NETSTART_FINISHED, 0); - } - - return CELL_OK; + return CELL_NET_CTL_ERROR_NOT_CONNECTED; } s32 cellNetCtlNetStartDialogAbortAsync() { cellNetCtl.Todo("cellNetCtlNetStartDialogAbortAsync()"); - SignInDialogState old = signInDialogOpen; - - if (!g_sign_in_dialog->state.compare_exchange_strong(old, signInDialogAbort)) - { - cellNetCtl.Error("cellNetCtlNetStartDialogAbortAsync(): Aborting the dialog failed."); - } - g_sign_in_dialog->status = CELL_NET_CTL_ERROR_DIALOG_ABORTED; return CELL_OK; diff --git a/rpcs3/Emu/SysCalls/Modules/cellNetCtl.h b/rpcs3/Emu/SysCalls/Modules/cellNetCtl.h index ba6417f32d..de60bfe1d4 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellNetCtl.h +++ b/rpcs3/Emu/SysCalls/Modules/cellNetCtl.h @@ -261,18 +261,9 @@ struct CellNetCtlNatInfo typedef void(cellNetCtlHandler)(s32 prev_state, s32 new_state, s32 event, s32 error_code, vm::ptr arg); -enum SignInDialogState -{ - signInDialogNone, - signInDialogInit, - signInDialogOpen, - signInDialogClose, - signInDialogAbort, -}; - struct SignInDialogInstance { - std::atomic state; + //std::atomic state; s32 status; diff --git a/rpcs3/Emu/SysCalls/Modules/cellSail.cpp b/rpcs3/Emu/SysCalls/Modules/cellSail.cpp index e44c10b7c1..c532f8626c 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSail.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSail.cpp @@ -15,8 +15,8 @@ void playerBoot(vm::ptr pSelf, u64 userParam) Emu.GetCallbackManager().Async([=](CPUThread& cpu) { CellSailEvent event; - event.major = CELL_SAIL_EVENT_PLAYER_STATE_CHANGED; - event.minor = 0; + event.u32x2.major = CELL_SAIL_EVENT_PLAYER_STATE_CHANGED; + event.u32x2.minor = 0; pSelf->callback(static_cast(cpu), pSelf->callbackArg, event, CELL_SAIL_PLAYER_STATE_BOOT_TRANSITION, 0); }); @@ -26,8 +26,8 @@ void playerBoot(vm::ptr pSelf, u64 userParam) Emu.GetCallbackManager().Async([=](CPUThread& cpu) { CellSailEvent event; - event.major = CELL_SAIL_EVENT_PLAYER_CALL_COMPLETED; - event.minor = CELL_SAIL_PLAYER_CALL_BOOT; + event.u32x2.major = CELL_SAIL_EVENT_PLAYER_CALL_COMPLETED; + event.u32x2.minor = CELL_SAIL_PLAYER_CALL_BOOT; pSelf->callback(static_cast(cpu), pSelf->callbackArg, event, 0, 0); }); } @@ -636,8 +636,8 @@ s32 cellSailPlayerInitialize2( Emu.GetCallbackManager().Async([=](CPUThread& cpu) { CellSailEvent event; - event.major = CELL_SAIL_EVENT_PLAYER_STATE_CHANGED; - event.minor = 0; + event.u32x2.major = CELL_SAIL_EVENT_PLAYER_STATE_CHANGED; + event.u32x2.minor = 0; pSelf->callback(static_cast(cpu), pSelf->callbackArg, event, CELL_SAIL_PLAYER_STATE_INITIALIZED, 0); }); diff --git a/rpcs3/Emu/SysCalls/Modules/cellSail.h b/rpcs3/Emu/SysCalls/Modules/cellSail.h index 302d905d4c..105beac7fb 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSail.h +++ b/rpcs3/Emu/SysCalls/Modules/cellSail.h @@ -664,8 +664,12 @@ struct CellSailSourceStreamingProfile union CellSailEvent { - be_t major; - be_t minor; + struct + { + be_t major; + be_t minor; + } u32x2; + be_t value; }; diff --git a/rpcs3/Emu/SysCalls/Modules/cellSysutilAvc2.h b/rpcs3/Emu/SysCalls/Modules/cellSysutilAvc2.h index 03c6790c37..dc08ffa39b 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSysutilAvc2.h +++ b/rpcs3/Emu/SysCalls/Modules/cellSysutilAvc2.h @@ -203,4 +203,4 @@ struct CellSysutilAvc2WindowAttribute { be_t attr_id; CellSysutilAvc2WindowAttributeParam attr_param; -}; \ No newline at end of file +}; diff --git a/rpcs3/Emu/SysCalls/Modules/cellSysutilMisc.cpp b/rpcs3/Emu/SysCalls/Modules/cellSysutilMisc.cpp index 7658cbee4c..3800b104a0 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSysutilMisc.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSysutilMisc.cpp @@ -1,12 +1,36 @@ #include "stdafx.h" +#include "Emu/System.h" #include "Emu/Memory/Memory.h" #include "Emu/SysCalls/Modules.h" extern Module cellSysutilMisc; +// License areas +enum +{ + CELL_SYSUTIL_LICENSE_AREA_J = 0, + CELL_SYSUTIL_LICENSE_AREA_A = 1, + CELL_SYSUTIL_LICENSE_AREA_E = 2, + CELL_SYSUTIL_LICENSE_AREA_H = 3, + CELL_SYSUTIL_LICENSE_AREA_K = 4, + CELL_SYSUTIL_LICENSE_AREA_C = 5, + CELL_SYSUTIL_LICENSE_AREA_OTHER = 100, +}; + s32 cellSysutilGetLicenseArea() { - throw EXCEPTION(""); + cellSysutilMisc.Warning("cellSysutilGetLicenseArea()"); + + switch (const char region = Emu.GetTitleID().at(2)) + { + case 'J': return CELL_SYSUTIL_LICENSE_AREA_J; + case 'U': return CELL_SYSUTIL_LICENSE_AREA_A; + case 'E': return CELL_SYSUTIL_LICENSE_AREA_E; + case 'H': return CELL_SYSUTIL_LICENSE_AREA_H; + case 'K': return CELL_SYSUTIL_LICENSE_AREA_K; + case 'A': return CELL_SYSUTIL_LICENSE_AREA_C; + default: cellSysutilMisc.Todo("Unknown license area: %s", Emu.GetTitleID().c_str()); return CELL_SYSUTIL_LICENSE_AREA_OTHER; + } } Module cellSysutilMisc("cellSysutilMisc", []() diff --git a/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp b/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp index d5bc0d1f14..94b59b2ce1 100644 --- a/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp @@ -145,12 +145,13 @@ s32 console_putc() throw EXCEPTION(""); } -void console_write(vm::ptr data, u32 len) +s32 console_write(vm::ptr data, u32 len) { sysPrxForUser.Warning("console_write(data=*0x%x, len=%d)", data, len); - sysPrxForUser.Warning("*** data='%s'", data.get_ptr()); - LOG_NOTICE(TTY, "%s", data.get_ptr()); + LOG_NOTICE(TTY, { data.get_ptr(), len }); + + return CELL_OK; } diff --git a/rpcs3/Gui/GameViewer.cpp b/rpcs3/Gui/GameViewer.cpp index cada6a51fd..b60d69c75f 100644 --- a/rpcs3/Gui/GameViewer.cpp +++ b/rpcs3/Gui/GameViewer.cpp @@ -42,7 +42,8 @@ class WxDirDeleteTraverser : public wxDirTraverser public: virtual wxDirTraverseResult OnFile(const wxString& filename) override { - if (!wxRemoveFile(filename)){ + if (!wxRemoveFile(filename)) + { LOG_ERROR(HLE, "Couldn't delete File: %s", fmt::ToUTF8(filename).c_str()); } return wxDIR_CONTINUE; @@ -51,7 +52,8 @@ public: { wxDir dir(dirname); dir.Traverse(*this); - if (!wxRmDir(dirname)){ + if (!wxRmDir(dirname)) + { //this get triggered a few times while clearing folders //but if this gets reimplented we should probably warn //if directories can't be removed @@ -120,7 +122,7 @@ void GameViewer::LoadGames() void GameViewer::LoadPSF() { m_game_data.clear(); - for(uint i=0; iAdd(cbox_audio_out, wxSizerFlags().Border(wxALL, 5).Expand()); + // Miscellaneous s_round_hle_log_lvl->Add(cbox_hle_loglvl, wxSizerFlags().Border(wxALL, 5).Expand()); // Networking diff --git a/rpcs3/Gui/SignInDialog.cpp b/rpcs3/Gui/SignInDialog.cpp index e471465d23..951b75033f 100644 --- a/rpcs3/Gui/SignInDialog.cpp +++ b/rpcs3/Gui/SignInDialog.cpp @@ -76,4 +76,4 @@ void SignInDialogFrame::Create() void SignInDialogFrame::Destroy() { m_dialog.reset(); -} \ No newline at end of file +} diff --git a/rpcs3/Gui/SignInDialog.h b/rpcs3/Gui/SignInDialog.h index 540efed6eb..f1808188ae 100644 --- a/rpcs3/Gui/SignInDialog.h +++ b/rpcs3/Gui/SignInDialog.h @@ -9,4 +9,4 @@ class SignInDialogFrame : public SignInDialogInstance public: virtual void Create() override; virtual void Destroy() override; -}; \ No newline at end of file +};