[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
24 changed files with 365 additions and 55 deletions
+4
View File
@@ -418,6 +418,10 @@ void SetGlobalFilter(const Filter& filter) {
logging_instance->filter = filter;
}
bool IsMessageEnabled(Class log_class, Level log_level) {
return logging_instance && logging_instance->filter.CheckMessage(log_class, log_level);
}
void SetColorConsoleBackendEnabled(bool enabled) {
if (logging_instance)
logging_instance->color_console_backend.enabled = enabled;
+1
View File
@@ -138,6 +138,7 @@ void Stop();
/// The global filter will prevent any messages from even being processed if they are filtered.
void SetGlobalFilter(const Filter& filter);
[[nodiscard]] bool IsMessageEnabled(Class log_class, Level log_level);
void SetColorConsoleBackendEnabled(bool enabled);
} // namespace Common::Log
+1
View File
@@ -247,6 +247,7 @@ struct Values {
SwitchableSetting<bool> sync_core_speed{linkage, false, "sync_core_speed", Category::Core,
Specialization::Default};
SwitchableSetting<bool> enable_cheats_by_default{linkage, true, "enable_cheats_by_default", Category::Core};
// Cpu
SwitchableSetting<CpuBackend, true> cpu_backend{linkage,