dolphin/Source/Core/Core/PatchEngine.h

71 lines
1.3 KiB
C
Raw Normal View History

// Copyright 2008 Dolphin Emulator Project
2015-05-18 01:08:10 +02:00
// Licensed under GPLv2+
// Refer to the license.txt file included.
#pragma once
#include <string>
2014-07-08 15:58:25 +02:00
#include <vector>
#include "Common/CommonTypes.h"
class IniFile;
namespace PatchEngine
{
enum class PatchType
{
Patch8Bit,
Patch16Bit,
Patch32Bit,
};
struct PatchEntry
{
PatchEntry() = default;
PatchEntry(PatchType t, u32 addr, u32 value_) : type(t), address(addr), value(value_) {}
PatchType type = PatchType::Patch8Bit;
u32 address = 0;
u32 value = 0;
};
struct Patch
{
std::string name;
std::vector<PatchEntry> entries;
bool active = false;
bool user_defined = false; // False if this code is shipped with Dolphin.
};
const char* PatchTypeAsString(PatchType type);
int GetSpeedhackCycles(const u32 addr);
void LoadPatchSection(const std::string& section, std::vector<Patch>& patches, IniFile& globalIni,
IniFile& localIni);
void LoadPatches();
bool ApplyFramePatches();
void Shutdown();
2017-04-06 15:34:40 +01:00
void Reload();
inline int GetPatchTypeCharLength(PatchType type)
{
int size = 8;
switch (type)
{
case PatchType::Patch8Bit:
size = 2;
break;
case PatchType::Patch16Bit:
size = 4;
break;
case PatchType::Patch32Bit:
size = 8;
break;
}
return size;
}
} // namespace PatchEngine