[cheats] add runtime cheats toggles with master code support (#4334)

add per-cheat runtime toggles (thread-safe).
add master code handling (master code cannot be disabled, as noted in Atmosphere's implementation).
add configurable global / per-game initial states for cheat entries.
remove fixed opcode limits and do some fixes to text parsing / file loading.
do not run debug log while cheat logging is not enabled, to reduce performance impacts.
update the `Using Cheats` document to reflect the changes.

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4334
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: John <john@eden-emu.dev>
This commit is contained in:
Soar Qin 2026-10-30 03:47:38 +01:00 • committed by crueter
parent b4d5760014
commit 69665063a9
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
24 changed files with 365 additions and 55 deletions

View file

@ -176,6 +176,9 @@ public:
std::filesystem::path GetShortcutPath(QtCommon::Game::ShortcutTarget target);
protected:
bool eventFilter(QObject* watched, QEvent* event) override;
signals:
/**
@ -264,6 +267,8 @@ private:
void ConnectWidgetEvents();
void ConnectMenuEvents();
void UpdateMenuState();
void RefreshRuntimeCheats();
void ClearRuntimeCheats();
void SetupPrepareForSleep();
@ -552,6 +557,7 @@ private:
QString startup_icon_theme;
QActionGroup* game_size_actions;
std::vector<QAction*> runtime_cheat_actions;
// Debugger panes
ControllerDialog* controller_dialog = nullptr;