protected Action<CpuThreadState> CreateDelegate(HleModuleManager ModuleManager, HleModuleHost Module, uint NID, string ModuleImportName, string NIDName)
{
Action<CpuThreadState> Callback = null;
if (Module != null)
{
if (Module.EntriesByNID.ContainsKey(NID))
{
Callback = Module.EntriesByNID[NID].Delegate;
}
else
{
Callback = null;
}
}
return (CpuThreadState) =>
{
if (Callback == null)
{
if (CpuThreadState.CpuProcessor.CpuConfig.DebugSyscalls)
{
Console.WriteLine(
"Thread({0}:'{1}'):{2}:{3}",
HleThreadManager.Current.Id,
HleThreadManager.Current.Name,
ModuleImportName, NIDName
);
}
throw (new NotImplementedException("Not Implemented '" + String.Format("{0}:{1}", ModuleImportName, NIDName) + "'"));
}
else
{
Callback(CpuThreadState);
}
};
}