diff --git a/rpcs3/Emu/Cell/lv2/sys_sm.cpp b/rpcs3/Emu/Cell/lv2/sys_sm.cpp index 8ccf2221dc..32cf796aff 100644 --- a/rpcs3/Emu/Cell/lv2/sys_sm.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_sm.cpp @@ -24,7 +24,21 @@ error_code sys_sm_get_ext_event2(vm::ptr a1, vm::ptr a2, vm::ptr { sys_sm.todo("sys_sm_get_ext_event2(a1=*0x%x, a2=*0x%x, a3=*0x%x, a4=*0x%x, a4=0x%xll", a1, a2, a3, a4); - return CELL_OK; + if (a4 != 0 && a4 != 1) + { + return CELL_EINVAL; + } + + // a1 == 7 - 'console too hot, restart' + // a2 looks to be used if a1 is either 5 or 3? + // a3 looks to be ignored in vsh + + if (a1) *a1 = 0; else return CELL_EFAULT; + if (a2) *a2 = 0; else return CELL_EFAULT; + if (a3) *a3 = 0; else return CELL_EFAULT; + + // eagain for no event + return not_an_error(CELL_EAGAIN); } error_code sys_sm_shutdown(u16 op, vm::ptr param, u64 size)