Improved unknown HLE functions logging

Fixed Fragment Shader Decompiler
This commit is contained in:
DH 2014-06-07 18:08:14 +03:00
parent f8e8e2f624
commit a4740d5f09
6 changed files with 3844 additions and 3855 deletions

View File

@ -71,9 +71,7 @@ private:
if(Ini.HLELogging.GetValue())
{
ConLog.Warning("SysCall[0x%llx] done with code [0x%llx]! #pc: 0x%llx", CPU.GPR[11], CPU.GPR[3], CPU.PC);
if(CPU.GPR[11] > 1024)
SysCalls::DoFunc(CPU.GPR[11]);
ConLog.Warning("SysCall[0x%llx ('%s')] done with code [0x%llx]! #pc: 0x%llx", CPU.GPR[11], SysCalls::GetHLEFuncName(CPU.GPR[11]).c_str(), CPU.GPR[3], CPU.PC);
}
/*else if ((s64)CPU.GPR[3] < 0) // probably, error code
{

View File

@ -78,12 +78,6 @@ std::string GLFragmentDecompilerThread::GetMask()
std::string GLFragmentDecompilerThread::AddReg(u32 index, int fp16)
{
if(index >= 2 && index <= 4)
{
return m_parr.AddParam(PARAM_OUT, "vec4", std::string(fp16 ? "h" : "r") + std::to_string(index),
(fp16) ? -1 : (index - 1));
}
return m_parr.AddParam(PARAM_NONE, "vec4", std::string(fp16 ? "h" : "r") + std::to_string(index), "vec4(0.0, 0.0, 0.0, 0.0)");
//return m_parr.AddParam((index >= 2 && index <= 4) ? PARAM_OUT : PARAM_NONE, "vec4",

File diff suppressed because it is too large Load Diff

View File

@ -580,10 +580,9 @@ void SysCalls::DoSyscall(u32 code)
{
return;
}
//ConLog.Error("Unknown function 0x%08x", code);
//return 0;
//TODO: remove this
ConLog.Error("Unknown function 0x%08x", code);
declCPU();
RESULT(DoFunc(code));
RESULT(0);
}

View File

@ -451,7 +451,7 @@ class SysCalls
{
public:
static void DoSyscall(u32 code);
static s64 DoFunc(const u32 id);
static std::string GetHLEFuncName(const u32 fid);
};
//extern SysCalls SysCallsManager;

View File

@ -374,8 +374,7 @@ bool ELF64Loader::LoadPhdrData(u64 offset)
{
if(!module->Load(nid))
{
ConLog.Warning("Unknown function 0x%08x in '%s' module", nid, module_name.c_str());
SysCalls::DoFunc(nid);
ConLog.Warning("Unimplemented function '%s' in '%s' module", SysCalls::GetHLEFuncName(nid).c_str(), module_name.c_str());
}
}
#ifdef LOADER_DEBUG