2013-08-19 01:06:11 +02:00
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "Emu/SysCalls/SysCalls.h"
|
|
|
|
|
#include "Emu/SysCalls/SC_FUNC.h"
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_LANG = 0x0111,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN = 0x0112,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_DATE_FORMAT = 0x0114,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_TIME_FORMAT = 0x0115,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_TIMEZONE = 0x0116,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_SUMMERTIME = 0x0117,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_GAME_PARENTAL_LEVEL = 0x0121,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_GAME_PARENTAL_LEVEL0_RESTRICT = 0x0123,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_CURRENT_USER_HAS_NP_ACCOUNT = 0x0141,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_CAMERA_PLFREQ = 0x0151,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_PAD_RUMBLE = 0x0152,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_KEYBOARD_TYPE = 0x0153,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_JAPANESE_KEYBOARD_ENTRY_METHOD = 0x0154,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_CHINESE_KEYBOARD_ENTRY_METHOD = 0x0155,
|
|
|
|
|
CELL_SYSUTIL_SYSTEMPARAM_ID_PAD_AUTOOFF = 0x0156,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_LANG_JAPANESE = 0,
|
|
|
|
|
CELL_SYSUTIL_LANG_ENGLISH_US = 1,
|
|
|
|
|
CELL_SYSUTIL_LANG_FRENCH = 2,
|
|
|
|
|
CELL_SYSUTIL_LANG_SPANISH = 3,
|
|
|
|
|
CELL_SYSUTIL_LANG_GERMAN = 4,
|
|
|
|
|
CELL_SYSUTIL_LANG_ITALIAN = 5,
|
|
|
|
|
CELL_SYSUTIL_LANG_DUTCH = 6,
|
|
|
|
|
CELL_SYSUTIL_LANG_PORTUGUESE_PT = 7,
|
|
|
|
|
CELL_SYSUTIL_LANG_RUSSIAN = 8,
|
|
|
|
|
CELL_SYSUTIL_LANG_KOREAN = 9,
|
|
|
|
|
CELL_SYSUTIL_LANG_CHINESE_T = 10,
|
|
|
|
|
CELL_SYSUTIL_LANG_CHINESE_S = 11,
|
|
|
|
|
CELL_SYSUTIL_LANG_FINNISH = 12,
|
|
|
|
|
CELL_SYSUTIL_LANG_SWEDISH = 13,
|
|
|
|
|
CELL_SYSUTIL_LANG_DANISH = 14,
|
|
|
|
|
CELL_SYSUTIL_LANG_NORWEGIAN = 15,
|
|
|
|
|
CELL_SYSUTIL_LANG_POLISH = 16,
|
|
|
|
|
CELL_SYSUTIL_LANG_PORTUGUESE_BR = 17,
|
|
|
|
|
CELL_SYSUTIL_LANG_ENGLISH_GB = 18,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_ENTER_BUTTON_ASSIGN_CIRCLE = 0,
|
|
|
|
|
CELL_SYSUTIL_ENTER_BUTTON_ASSIGN_CROSS = 1,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_DATE_FMT_YYYYMMDD = 0,
|
|
|
|
|
CELL_SYSUTIL_DATE_FMT_DDMMYYYY = 1,
|
|
|
|
|
CELL_SYSUTIL_DATE_FMT_MMDDYYYY = 2,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_TIME_FMT_CLOCK12 = 0,
|
|
|
|
|
CELL_SYSUTIL_TIME_FMT_CLOCK24 = 1,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_OFF = 0,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL01 = 1,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL02 = 2,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL03 = 3,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL04 = 4,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL05 = 5,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL06 = 6,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL07 = 7,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL08 = 8,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL09 = 9,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL10 = 10,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL11 = 11,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL0_RESTRICT_OFF = 0,
|
|
|
|
|
CELL_SYSUTIL_GAME_PARENTAL_LEVEL0_RESTRICT_ON = 1,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_CAMERA_PLFREQ_DISABLED = 0,
|
|
|
|
|
CELL_SYSUTIL_CAMERA_PLFREQ_50HZ = 1,
|
|
|
|
|
CELL_SYSUTIL_CAMERA_PLFREQ_60HZ = 2,
|
|
|
|
|
CELL_SYSUTIL_CAMERA_PLFREQ_DEVCIE_DEPEND = 4,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
CELL_SYSUTIL_PAD_RUMBLE_OFF = 0,
|
|
|
|
|
CELL_SYSUTIL_PAD_RUMBLE_ON = 1,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void cellSysutil_init();
|
|
|
|
|
Module cellSysutil(0x0015, cellSysutil_init);
|
|
|
|
|
|
2013-11-09 02:05:58 +01:00
|
|
|
int cellVideoOutGetDeviceInfo(u32 videoOut, u32 deviceIndex, mem_struct_ptr_t<CellVideoOutDeviceInfo> info)
|
2013-08-19 01:06:11 +02:00
|
|
|
{
|
2013-11-09 02:05:58 +01:00
|
|
|
cellSysutil.Error("Unimplemented function: cellVideoOutGetDeviceInfo(videoOut=%u, deviceIndex=%u, info_addr=0x%x)",
|
|
|
|
|
videoOut, deviceIndex, info.GetAddr());
|
|
|
|
|
|
|
|
|
|
if(deviceIndex) return CELL_VIDEO_OUT_ERROR_DEVICE_NOT_FOUND;
|
|
|
|
|
|
|
|
|
|
//info->portType = CELL_VIDEO_OUT_PORT_HDMI;
|
|
|
|
|
info->colorSpace = Emu.GetGSManager().GetColorSpace();
|
|
|
|
|
//info->latency = ;
|
|
|
|
|
//info->availableModeCount = ;
|
|
|
|
|
//info->state = CELL_VIDEO_OUT_DEVICE_STATE_AVAILABLE;
|
|
|
|
|
//info->rgbOutputRange = ;
|
|
|
|
|
|
|
|
|
|
return CELL_OK;
|
2013-08-19 01:06:11 +02:00
|
|
|
}
|
|
|
|
|
|
2013-09-28 16:30:04 +02:00
|
|
|
int cellSysutilGetSystemParamInt(int id, mem32_t value)
|
2013-08-19 01:06:11 +02:00
|
|
|
{
|
2013-09-28 16:30:04 +02:00
|
|
|
cellSysutil.Log("cellSysutilGetSystemParamInt(id=0x%x, value_addr=0x%x)", id, value.GetAddr());
|
2013-08-19 01:06:11 +02:00
|
|
|
|
2013-09-28 23:05:56 +02:00
|
|
|
if(!value.IsGood())
|
2013-08-19 01:06:11 +02:00
|
|
|
{
|
|
|
|
|
return CELL_EFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch(id)
|
|
|
|
|
{
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_LANG:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_LANG");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = CELL_SYSUTIL_LANG_ENGLISH_US;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = CELL_SYSUTIL_ENTER_BUTTON_ASSIGN_CROSS;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_DATE_FORMAT:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_DATE_FORMAT");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = CELL_SYSUTIL_DATE_FMT_DDMMYYYY;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_TIME_FORMAT:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_TIME_FORMAT");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = CELL_SYSUTIL_TIME_FMT_CLOCK24;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_TIMEZONE:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_TIMEZONE");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = 3;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_SUMMERTIME:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_SUMMERTIME");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = 1;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_GAME_PARENTAL_LEVEL:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_GAME_PARENTAL_LEVEL");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = CELL_SYSUTIL_GAME_PARENTAL_OFF;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_GAME_PARENTAL_LEVEL0_RESTRICT:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_GAME_PARENTAL_LEVEL0_RESTRICT");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = CELL_SYSUTIL_GAME_PARENTAL_LEVEL0_RESTRICT_OFF;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_CURRENT_USER_HAS_NP_ACCOUNT:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_CURRENT_USER_HAS_NP_ACCOUNT");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = 0;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_CAMERA_PLFREQ:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_CAMERA_PLFREQ");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = CELL_SYSUTIL_CAMERA_PLFREQ_DISABLED;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_PAD_RUMBLE:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_PAD_RUMBLE");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = CELL_SYSUTIL_PAD_RUMBLE_OFF;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_KEYBOARD_TYPE:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_KEYBOARD_TYPE");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = 0;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_JAPANESE_KEYBOARD_ENTRY_METHOD:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_JAPANESE_KEYBOARD_ENTRY_METHOD");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = 0;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_CHINESE_KEYBOARD_ENTRY_METHOD:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_CHINESE_KEYBOARD_ENTRY_METHOD");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = 0;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case CELL_SYSUTIL_SYSTEMPARAM_ID_PAD_AUTOOFF:
|
|
|
|
|
cellSysutil.Warning("cellSysutilGetSystemParamInt: CELL_SYSUTIL_SYSTEMPARAM_ID_PAD_AUTOOFF");
|
2013-09-28 16:30:04 +02:00
|
|
|
value = 0;
|
2013-08-19 01:06:11 +02:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
return CELL_EINVAL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return CELL_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void cellSysutil_init()
|
|
|
|
|
{
|
|
|
|
|
cellSysutil.AddFunc(0x0bae8772, cellVideoOutConfigure);
|
|
|
|
|
cellSysutil.AddFunc(0x189a74da, cellSysutilCheckCallback);
|
|
|
|
|
cellSysutil.AddFunc(0x1e930eef, cellVideoOutGetDeviceInfo);
|
|
|
|
|
cellSysutil.AddFunc(0x40e895d3, cellSysutilGetSystemParamInt);
|
|
|
|
|
cellSysutil.AddFunc(0x887572d5, cellVideoOutGetState);
|
|
|
|
|
cellSysutil.AddFunc(0x9d98afa0, cellSysutilRegisterCallback);
|
|
|
|
|
cellSysutil.AddFunc(0xe558748d, cellVideoOutGetResolution);
|
|
|
|
|
}
|