mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-14 10:21:21 +00:00
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.
This commit is contained in:
parent
ea376e7751
commit
8204737efa
@ -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)];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -889,11 +889,8 @@ s32 l10n_convert_str(s32 cd, vm::cptr<void> src, vm::ptr<u32> src_len, vm::ptr<v
|
||||
{
|
||||
cellL10n.Warning("l10n_convert_str(cd=%d, src=*0x%x, src_len=*0x%x, dst=*0x%x, dst_len=*0x%x)", cd, src, src_len, dst, dst_len);
|
||||
|
||||
s32 src_code, dst_code;
|
||||
auto element = converters.find(cd);
|
||||
|
||||
src_code = element->second.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);
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
namespace vm { using namespace ps3; }
|
||||
|
||||
std::map<s32, std::pair<s32, s32>> 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);
|
||||
}
|
@ -114,40 +114,24 @@ s32 cellMusicInitialize2(s32 mode, s32 spuPriority, vm::ptr<CellMusic2Callback>
|
||||
{
|
||||
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<u32> ret(CPU);
|
||||
*ret = CELL_MUSIC2_ERROR_PARAM;
|
||||
func(static_cast<PPUThread&>(CPU), CELL_MUSIC2_EVENT_INITIALIZE_RESULT, ret, userData);
|
||||
});
|
||||
}
|
||||
|
||||
const auto music = fxm::make<music2_t>();
|
||||
|
||||
if (!music)
|
||||
{
|
||||
Emu.GetCallbackManager().Async([=](CPUThread& CPU)
|
||||
{
|
||||
vm::var<u32> ret(CPU);
|
||||
*ret = CELL_MUSIC2_ERROR_GENERIC;
|
||||
func(static_cast<PPUThread&>(CPU), CELL_MUSIC2_EVENT_INITIALIZE_RESULT, ret, userData);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const auto music = fxm::make_always<music2_t>();
|
||||
music->func = func;
|
||||
music->userData = userData;
|
||||
|
||||
Emu.GetCallbackManager().Async([=](CPUThread& CPU)
|
||||
Emu.GetCallbackManager().Register([=](CPUThread& CPU) -> s32
|
||||
{
|
||||
vm::var<u32> ret(CPU);
|
||||
*ret = CELL_OK;
|
||||
func(static_cast<PPUThread&>(CPU), CELL_MUSIC2_EVENT_INITIALIZE_RESULT, ret, userData);
|
||||
return CELL_OK;
|
||||
});
|
||||
}).detach();
|
||||
|
||||
|
@ -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<void> param, vm::ptr<void> userData);
|
||||
using CellMusic2Callback = void(u32 evnt, vm::ptr<u32> param, vm::ptr<void> userData);
|
||||
using CellMusicCallback = void(u32 event, vm::ptr<void> param, vm::ptr<void> userData);
|
||||
using CellMusic2Callback = void(u32 event, vm::ptr<u32> param, vm::ptr<void> userData);
|
||||
|
||||
struct CellMusicSelectionContext
|
||||
{
|
||||
char data[CELL_MUSIC_SELECTION_CONTEXT_SIZE];
|
||||
};
|
||||
};
|
||||
|
@ -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<CellNetCtlInfo> 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<CellNetCtlNetStartDialogParam> 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;
|
||||
|
@ -261,18 +261,9 @@ struct CellNetCtlNatInfo
|
||||
|
||||
typedef void(cellNetCtlHandler)(s32 prev_state, s32 new_state, s32 event, s32 error_code, vm::ptr<u32> arg);
|
||||
|
||||
enum SignInDialogState
|
||||
{
|
||||
signInDialogNone,
|
||||
signInDialogInit,
|
||||
signInDialogOpen,
|
||||
signInDialogClose,
|
||||
signInDialogAbort,
|
||||
};
|
||||
|
||||
struct SignInDialogInstance
|
||||
{
|
||||
std::atomic<SignInDialogState> state;
|
||||
//std::atomic<SignInDialogState> state;
|
||||
|
||||
s32 status;
|
||||
|
||||
|
@ -15,8 +15,8 @@ void playerBoot(vm::ptr<CellSailPlayer> 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<PPUThread&>(cpu), pSelf->callbackArg, event, CELL_SAIL_PLAYER_STATE_BOOT_TRANSITION, 0);
|
||||
});
|
||||
|
||||
@ -26,8 +26,8 @@ void playerBoot(vm::ptr<CellSailPlayer> 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<PPUThread&>(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<PPUThread&>(cpu), pSelf->callbackArg, event, CELL_SAIL_PLAYER_STATE_INITIALIZED, 0);
|
||||
});
|
||||
|
||||
|
@ -664,8 +664,12 @@ struct CellSailSourceStreamingProfile
|
||||
|
||||
union CellSailEvent
|
||||
{
|
||||
be_t<u32> major;
|
||||
be_t<u32> minor;
|
||||
struct
|
||||
{
|
||||
be_t<u32> major;
|
||||
be_t<u32> minor;
|
||||
} u32x2;
|
||||
|
||||
be_t<u64> value;
|
||||
};
|
||||
|
||||
|
@ -203,4 +203,4 @@ struct CellSysutilAvc2WindowAttribute
|
||||
{
|
||||
be_t<CellSysutilAvc2WindowAttributeId> attr_id;
|
||||
CellSysutilAvc2WindowAttributeParam attr_param;
|
||||
};
|
||||
};
|
||||
|
@ -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", []()
|
||||
|
@ -145,12 +145,13 @@ s32 console_putc()
|
||||
throw EXCEPTION("");
|
||||
}
|
||||
|
||||
void console_write(vm::ptr<char> data, u32 len)
|
||||
s32 console_write(vm::ptr<char> 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;
|
||||
}
|
||||
|
||||
|
||||
|
@ -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; i<m_games.size(); ++i)
|
||||
for (u32 i = 0; i < m_games.size(); ++i)
|
||||
{
|
||||
const std::string sfb = m_path + m_games[i] + "/PS3_DISC.SFB";
|
||||
const std::string sfo = m_path + m_games[i] + (Emu.GetVFS().ExistsFile(sfb) ? "/PS3_GAME/PARAM.SFO" : "/PARAM.SFO");
|
||||
@ -174,6 +176,21 @@ void GameViewer::LoadPSF()
|
||||
game.category = "Disc Game";
|
||||
game.icon_path = local_path + "/" + m_games[i] + "/PS3_GAME/ICON0.PNG";
|
||||
}
|
||||
else if (game.category.substr(0, 2) == "HM")
|
||||
{
|
||||
game.category = "Home";
|
||||
game.icon_path = local_path + "/" + m_games[i] + "/ICON0.PNG";
|
||||
}
|
||||
else if (game.category.substr(0, 2) == "AV")
|
||||
{
|
||||
game.category = "Audio/Video";
|
||||
game.icon_path = local_path + "/" + m_games[i] + "/ICON0.PNG";
|
||||
}
|
||||
else if (game.category.substr(0, 2) == "GD")
|
||||
{
|
||||
game.category = "Game Data";
|
||||
game.icon_path = local_path + "/" + m_games[i] + "/PS3_GAME/ICON0.PNG";
|
||||
}
|
||||
|
||||
m_game_data.push_back(game);
|
||||
}
|
||||
@ -210,7 +227,7 @@ void GameViewer::LoadSettings()
|
||||
void GameViewer::DClick(wxListEvent& event)
|
||||
{
|
||||
long i = GetFirstSelected();
|
||||
if(i < 0) return;
|
||||
if (i < 0) return;
|
||||
|
||||
const std::string& path = m_path + m_game_data[i].root;
|
||||
|
||||
@ -220,12 +237,14 @@ void GameViewer::DClick(wxListEvent& event)
|
||||
|
||||
Emu.GetVFS().Init("/");
|
||||
std::string local_path;
|
||||
if (Emu.GetVFS().GetDevice(path, local_path) && !Emu.BootGame(local_path)) {
|
||||
if (Emu.GetVFS().GetDevice(path, local_path) && !Emu.BootGame(local_path))
|
||||
{
|
||||
LOG_ERROR(HLE, "Boot error: elf not found! [%s]", path.c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
if (Ini.HLEAlwaysStart.GetValue() && Emu.IsReady()) {
|
||||
if (Ini.HLEAlwaysStart.GetValue() && Emu.IsReady())
|
||||
{
|
||||
Emu.Run();
|
||||
}
|
||||
}
|
||||
@ -250,7 +269,7 @@ void GameViewer::RemoveGame(wxCommandEvent& event)
|
||||
|
||||
Emu.GetVFS().UnMountAll();
|
||||
|
||||
//TODO: Replace wxWidgetsSpecific filesystem stuff?
|
||||
// TODO: Replace wxWidgetsSpecific filesystem stuff?
|
||||
WxDirDeleteTraverser deleter;
|
||||
wxDir localDir(del_path);
|
||||
localDir.Traverse(deleter);
|
||||
|
@ -133,7 +133,7 @@ SettingsDialog::SettingsDialog(wxWindow *parent)
|
||||
wxCheckBox* chbox_dbg_ap_functioncall = new wxCheckBox(p_misc, wxID_ANY, "Auto Pause at Function Call");
|
||||
|
||||
//Custom EmulationDir
|
||||
wxCheckBox* chbox_emulationdir_enable = new wxCheckBox(p_system, wxID_ANY, "Use Path Below as EmulationDir ? (Need Restart)");
|
||||
wxCheckBox* chbox_emulationdir_enable = new wxCheckBox(p_system, wxID_ANY, "Use path below as EmulationDir. (Restart required)");
|
||||
wxTextCtrl* txt_emulationdir_path = new wxTextCtrl(p_system, wxID_ANY, Emu.GetEmulatorPath());
|
||||
|
||||
|
||||
@ -308,6 +308,7 @@ SettingsDialog::SettingsDialog(wxWindow *parent)
|
||||
|
||||
s_round_audio_out->Add(cbox_audio_out, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
|
||||
// Miscellaneous
|
||||
s_round_hle_log_lvl->Add(cbox_hle_loglvl, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
|
||||
// Networking
|
||||
|
@ -76,4 +76,4 @@ void SignInDialogFrame::Create()
|
||||
void SignInDialogFrame::Destroy()
|
||||
{
|
||||
m_dialog.reset();
|
||||
}
|
||||
}
|
||||
|
@ -9,4 +9,4 @@ class SignInDialogFrame : public SignInDialogInstance
|
||||
public:
|
||||
virtual void Create() override;
|
||||
virtual void Destroy() override;
|
||||
};
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user