|
|
|
@ -17,7 +17,7 @@
|
|
|
|
|
|
|
|
|
|
namespace FileSys {
|
|
|
|
|
|
|
|
|
|
constexpr u64 CHEAT_ENGINE_TICKS = Core::Timing::BASE_CLOCK_RATE / 60;
|
|
|
|
|
constexpr s64 CHEAT_ENGINE_TICKS = static_cast<s64>(Core::Timing::BASE_CLOCK_RATE / 60);
|
|
|
|
|
constexpr u32 KEYPAD_BITMASK = 0x3FFFFFF;
|
|
|
|
|
|
|
|
|
|
u64 Cheat::Address() const {
|
|
|
|
@ -185,8 +185,9 @@ void CheatList::Loop(const Cheat& cheat) {
|
|
|
|
|
ASSERT(iter != block_pairs.end());
|
|
|
|
|
ASSERT(iter->first < iter->second);
|
|
|
|
|
|
|
|
|
|
for (int i = cheat.Value(4, 4); i >= 0; --i) {
|
|
|
|
|
register_3 = i;
|
|
|
|
|
const s32 initial_value = static_cast<s32>(cheat.Value(4, sizeof(s32)));
|
|
|
|
|
for (s32 i = initial_value; i >= 0; --i) {
|
|
|
|
|
register_3 = static_cast<u64>(i);
|
|
|
|
|
for (std::size_t c = iter->first + 1; c < iter->second; ++c) {
|
|
|
|
|
current_index = c;
|
|
|
|
|
ExecuteSingleCheat(
|
|
|
|
@ -478,7 +479,7 @@ CheatEngine::~CheatEngine() {
|
|
|
|
|
core_timing.UnscheduleEvent(event, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CheatEngine::FrameCallback(u64 userdata, int cycles_late) {
|
|
|
|
|
void CheatEngine::FrameCallback(u64 userdata, s64 cycles_late) {
|
|
|
|
|
for (auto& list : cheats) {
|
|
|
|
|
list.Execute();
|
|
|
|
|
}
|
|
|
|
|