[ActionReplay] Add HID stuff

This commit is contained in:
wheremyfoodat 2023-07-21 03:34:21 +03:00
parent d007b2d780
commit 4a45599303
5 changed files with 24 additions and 6 deletions

View file

@ -5,6 +5,7 @@
#include "helpers.hpp"
#include "memory.hpp"
#include "services/hid.hpp"
class ActionReplay {
using Cheat = std::vector<u32>; // A cheat is really just a bunch of 64-bit opcodes neatly encoded into 32-bit chunks
@ -24,6 +25,7 @@ class ActionReplay {
// Program counter
u32 pc = 0;
Memory& mem;
HIDService& hid;
// Has the cheat ended?
bool running = false;
@ -41,8 +43,10 @@ class ActionReplay {
void write16(u32 addr, u16 value);
void write32(u32 addr, u32 value);
void pushConditionBlock(bool condition);
public:
ActionReplay(Memory& mem);
ActionReplay(Memory& mem, HIDService& hid);
void runCheat(const Cheat& cheat);
void reset();
};

View file

@ -4,6 +4,7 @@
#include "action_replay.hpp"
#include "helpers.hpp"
#include "services/hid.hpp"
// Forward-declare this since it's just passed and we don't want to include memory.hpp and increase compile time
class Memory;
@ -20,12 +21,12 @@ class Cheats {
std::vector<u32> instructions;
};
Cheats(Memory& mem);
Cheats(Memory& mem, HIDService& hid);
void addCheat(const Cheat& cheat);
void reset();
void run();
private:
ActionReplay ar; // An ActionReplay cheat machine for executing CTRPF codes
ActionReplay ar; // An ActionReplay cheat machine for executing CTRPF codes
std::vector<Cheat> cheats;
};