BD and DVD region settings not saving.
ps3hen 3.1.2 ; webman mod 1.47.42. When I trying to change the BD or DVD region in the webman settings, after saving, these settings are lost. Does it work on hen at all or only on cfw?
I can confirm this does work on CFW, but not on HEN. No idea if it's supposed to work on HEN.
AFAIK, webMAN passes the command to Cobra and on HEN it's a pseudo Cobra as it lacks some features like LV1 access, maybe it needs it.
For reference:
#ifdef BDVD_REGION
cobra_read_config(cobra_config);
cobra_config->bd_video_region = get_valuen(param, "bdr=", 0, 4); //BD Region
cobra_config->dvd_video_region = get_valuen(param, "dvr=", 0, 32); //DVD Region
if(webman_config->fanc)
cobra_config->fan_speed = (webman_config->man_speed < MIN_FANSPEED_8BIT) ? 1 : webman_config->man_speed;
else
cobra_config->fan_speed = 0; // SYSCON
cobra_write_config(cobra_config);
#endif
static int sys_write_cobra_config(CobraConfig *cfg)
{
// SC_COBRA_SYSCALL8 = 8, SYSCALL8_OPCODE_WRITE_COBRA_CONFIG = 0x7051
system_call_2(SC_COBRA_SYSCALL8, SYSCALL8_OPCODE_WRITE_COBRA_CONFIG, (u64)(u32)cfg);
return (int)p1;
}
Maybe the 0x7051 opcode on HEN does nothing altogether, as cobra_read_config() returns unmodified data the next time being called?
Edit: It indeed seems to land on LV1 related functions eventually region.c on HEN
LV2_HOOKED_FUNCTION_PRECALL_SUCCESS_2(int, region_func, (uint64_t func, uint8_t *buf))
{
if (func == 0x19004) // SS_PID_AIM_GET_PS_CODE, include/lv1/ss.h
{
#ifdef DEBUG
DPRINTF("We are originally in region %02X\n", buf[3]);
#endif
char *procname = get_process_name(get_current_process_critical());
if (procname)
...