mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-21 09:49:01 +00:00
Merge pull request #4250 from leoetlino/hle-patch-fix
HLE_OS: Minor fixes (function patching, output encoding)
This commit is contained in:
commit
bd1218a3c4
5 changed files with 17 additions and 5 deletions
|
@ -16,6 +16,15 @@
|
|||
#include "Core/PowerPC/PowerPC.h"
|
||||
#include "Core/PowerPC/SignatureDB.h"
|
||||
|
||||
static std::string GetStrippedFunctionName(const std::string& symbol_name)
|
||||
{
|
||||
std::string name = symbol_name.substr(0, symbol_name.find('('));
|
||||
size_t position = name.find(' ');
|
||||
if (position != std::string::npos)
|
||||
name.erase(position);
|
||||
return name;
|
||||
}
|
||||
|
||||
PPCSymbolDB g_symbolDB;
|
||||
|
||||
PPCSymbolDB::PPCSymbolDB()
|
||||
|
@ -62,6 +71,7 @@ void PPCSymbolDB::AddKnownSymbol(u32 startAddr, u32 size, const std::string& nam
|
|||
// already got it, let's just update name, checksum & size to be sure.
|
||||
Symbol* tempfunc = &iter->second;
|
||||
tempfunc->name = name;
|
||||
tempfunc->function_name = GetStrippedFunctionName(name);
|
||||
tempfunc->hash = SignatureDB::ComputeCodeChecksum(startAddr, startAddr + size - 4);
|
||||
tempfunc->type = type;
|
||||
tempfunc->size = size;
|
||||
|
@ -77,6 +87,7 @@ void PPCSymbolDB::AddKnownSymbol(u32 startAddr, u32 size, const std::string& nam
|
|||
{
|
||||
PPCAnalyst::AnalyzeFunction(startAddr, tf, size);
|
||||
checksumToFunction[tf.hash] = &(functions[startAddr]);
|
||||
tf.function_name = GetStrippedFunctionName(name);
|
||||
}
|
||||
tf.size = size;
|
||||
functions[startAddr] = tf;
|
||||
|
@ -101,7 +112,7 @@ Symbol* PPCSymbolDB::GetSymbolFromAddr(u32 addr)
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
const std::string PPCSymbolDB::GetDescription(u32 addr)
|
||||
std::string PPCSymbolDB::GetDescription(u32 addr)
|
||||
{
|
||||
Symbol* symbol = GetSymbolFromAddr(addr);
|
||||
if (symbol)
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
|
||||
Symbol* GetSymbolFromAddr(u32 addr) override;
|
||||
|
||||
const std::string GetDescription(u32 addr);
|
||||
std::string GetDescription(u32 addr);
|
||||
|
||||
void FillInCallers();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue