Add TODO notes for caching.

This commit is contained in:
Luke Usher 2017-04-19 23:22:53 +01:00
parent 39c10087cb
commit 53632f7890
1 changed files with 11 additions and 1 deletions

View File

@ -48,7 +48,9 @@ static xbaddr EmuLocateFunction(OOVPA *Oovpa, xbaddr lower, xbaddr upper);
static void EmuInstallPatches(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xbe::Header *pXbeHeader);
#include <shlobj.h>
#include <vector>
#include <unordered_map>
std::unordered_map<std::string, uint32_t> g_HLECache;
uint32 g_BuildVersion;
@ -70,6 +72,12 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
printf("*******************************************************************************\n");
printf("\n");
// TODO: Hash the loaded XBE, use it as a filename
// TODO: Attempt to open the HLE Cache file of this filename
// TODO: Check the cache header to make sure the compiletime is valid
// TODO: If so, load it
// TODO: Iterate through the cache calling GetProcAddress on all functions.
//
// initialize Microsoft XDK emulation
//
@ -412,6 +420,7 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
printf("\n");
// TODO: Save the found symbols into the file
return;
}
@ -643,6 +652,7 @@ static void EmuInstallPatches(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xbe
if ((OovpaTable[a].Flags & Flag_DontScan) == 0 && (addr != nullptr))
{
printf("\t*PATCHED*");
g_HLECache[OovpaTable[a].szFuncName] = (uint32_t)addr;
EmuInstallPatch(pFunc, addr);
}