Add CheatEngine and support for Gateway cheats (#4406)

* Add CheatEngine; Add support for Gateway cheats; Add Cheat UI

* fix a potential crash on some systems

* fix substr with negative length

* Add Joker to the NonOp comp handling

* Fixup JokerOp

* minor fixup in patchop; add todo for nested loops

* Add comment for PadState member variable in HID

* fix: stol to stoul in parsing cheat file

* fix misplaced parsing of values; fix patchop code

* add missing break

* Make read_func and write_func a template parameter
This commit is contained in:
Ben 2018-11-17 02:01:10 +01:00 committed by James Rowe
parent 560df843b1
commit b90ff739a0
23 changed files with 1052 additions and 1 deletions

View file

@ -39,6 +39,10 @@ namespace Kernel {
class KernelSystem;
}
namespace Cheats {
class CheatEngine;
}
namespace Core {
class Timing;
@ -184,6 +188,12 @@ public:
/// Gets a const reference to the timing system
const Timing& CoreTiming() const;
/// Gets a reference to the cheat engine
Cheats::CheatEngine& CheatEngine();
/// Gets a const reference to the cheat engine
const Cheats::CheatEngine& CheatEngine() const;
PerfStats perf_stats;
FrameLimiter frame_limiter;
@ -244,6 +254,9 @@ private:
/// Frontend applets
std::shared_ptr<Frontend::SoftwareKeyboard> registered_swkbd;
/// Cheats manager
std::unique_ptr<Cheats::CheatEngine> cheat_engine;
#ifdef ENABLE_SCRIPTING
/// RPC Server for scripting support
std::unique_ptr<RPC::RPCServer> rpc_server;