MCPcopy Create free account
hub / github.com/DaedalusX64/daedalus / Patch_GetCache

Function Patch_GetCache

Source/OSHLE/patch.cpp:1004–1059  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1002
1003
1004static bool Patch_GetCache()
1005{
1006 IO::Filename name;
1007
1008 Dump_GetSaveDirectory(name, g_ROM.mFileName, ".hle");
1009 FILE *fp = fopen(name, "rb");
1010
1011 if (fp != nullptr)
1012 {
1013 #ifdef DAEDALUS_DEBUG_CONSOLE
1014 DBGConsole_Msg(0, "Read from OSHLE cache: %s", name);
1015 #endif
1016 u32 data;
1017
1018 fread(&data, 1, sizeof(data), fp);
1019 if (data != MAGIC_HEADER)
1020 {
1021 fclose(fp);
1022 return false;
1023 }
1024
1025 for (u32 i = 0; i < nPatchSymbols; i++)
1026 {
1027 fread(&data, 1, sizeof(data), fp);
1028 if (data != 0)
1029 {
1030 g_PatchSymbols[i]->Found = true;
1031 g_PatchSymbols[i]->Location = data;
1032 fread(&data, 1, sizeof(data), fp);
1033 g_PatchSymbols[i]->Function = g_PatchSymbols[i]->Signatures[data].Function;
1034 }
1035 else
1036 g_PatchSymbols[i]->Found = false;
1037 }
1038
1039 for (u32 i = 0; i < nPatchVariables; i++)
1040 {
1041 fread(&data, 1, sizeof(data), fp);
1042 if (data != 0)
1043 {
1044 g_PatchVariables[i]->Found = true;
1045 g_PatchVariables[i]->Location = data;
1046 }
1047 else
1048 {
1049 g_PatchVariables[i]->Found = false;
1050 g_PatchVariables[i]->Location = 0;
1051 }
1052 }
1053
1054 fclose(fp);
1055 return true;
1056 }
1057
1058 return false;
1059}
1060
1061static u32 RET_NOT_PROCESSED(PatchSymbol* ps)

Callers 1

Patch_ApplyPatchesFunction · 0.85

Calls 1

Dump_GetSaveDirectoryFunction · 0.85

Tested by

no test coverage detected