WIP: [cheat] add dmnt, indiviual cheats, etc. #3178

Draft
Maufeat wants to merge 6 commits from dmnt2 into master
Member

Add's dmnt:cht service for cheats, needs more refinement later on and probably a separate cheat window for handling cheats on runtime.
Also can handle now multiple cheats in one file.

Tested on Android and Windows.

Credits to @crueter for initial the implementation

Current TODO:

  • per-cheat enable/disable [android/desktop]
  • Prevent each cheat being deleted
  • Get cheat name from first line if incompatible (cheat files should match build_id)
  • Read cheats from SDMC
  • Fix: SDMC cheats properly disable on add-on
  • Add runtime enable/disable
  • Don't show cheats with "parent_name" on main menu
  • Fix: crash when running a game (with cheats on) a second time (liz: its referencing a cheat process that doesnt exist)
  • Fix: cheats that don't use first line as name of patch
  • Fix: incompatible cheats showing the name of the cheat (cheat is not properly using the first [] as name of patch), fallback to build_id
Add's dmnt:cht service for cheats, needs more refinement later on and probably a separate cheat window for handling cheats on runtime. Also can handle now multiple cheats in one file. Tested on Android and Windows. Credits to @crueter for initial the implementation Current TODO: - [x] per-cheat enable/disable [android/desktop] - [x] Prevent each cheat being deleted - [x] Get cheat name from first line if incompatible (cheat files should match build_id) - [x] Read cheats from SDMC - [ ] Fix: SDMC cheats properly disable on add-on - [ ] Add runtime enable/disable - [ ] Don't show cheats with "parent_name" on main menu - [ ] Fix: crash when running a game (with cheats on) a second time (liz: its referencing a cheat process that doesnt exist) - [ ] Fix: cheats that don't use first line as name of patch - [ ] Fix: incompatible cheats showing the name of the cheat (cheat is not properly using the first [] as name of patch), fallback to build_id
Maufeat force-pushed dmnt2 from 397a1f4022
All checks were successful
eden-license / license-header (pull_request) Successful in 31s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to eb52e55f78
Some checks failed
eden-license / license-header (pull_request) Failing after 39s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
2026-01-21 06:25:33 +01:00
Compare
DraVee force-pushed dmnt2 from 8875d3f998
Some checks failed
eden-license / license-header (pull_request) Failing after 41s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Build succeeded – Release published
to 7308c2c6a3
Some checks are pending
GitHub Actions [CI] Build started
eden-license / license-header (pull_request) Successful in 10m47s
2026-02-02 19:04:57 +01:00
Compare
DraVee force-pushed dmnt2 from 7308c2c6a3
Some checks are pending
GitHub Actions [CI] Build started
eden-license / license-header (pull_request) Successful in 10m47s
to 396701b426
All checks were successful
eden-license / license-header (pull_request) Successful in 21s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
2026-02-05 05:07:28 +01:00
Compare
Owner

this should be good once it's rebased. though, it will need some additional work to integrate with my add-on list changes

this should be good once it's rebased. though, it will need some additional work to integrate with my add-on list changes
DraVee force-pushed dmnt2 from 396701b426
All checks were successful
eden-license / license-header (pull_request) Successful in 21s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
to 527e0a618e
Some checks reported errors
eden-license / license-header (pull_request) Successful in 24s
GitHub Actions [CI] Build cancelled
2026-03-09 03:39:58 +01:00
Compare
DraVee force-pushed dmnt2 from 527e0a618e
Some checks reported errors
eden-license / license-header (pull_request) Successful in 24s
GitHub Actions [CI] Build cancelled
to 1457123bcc
Some checks failed
eden-license / license-header (pull_request) Successful in 25s
GitHub Actions [CI] Build failed
2026-03-09 03:45:36 +01:00
Compare
@ -0,0 +76,4 @@
manager.CommandLog(
fmt::format("Math Type: {:X}", static_cast<u32>(perform_math_static->math_type)));
manager.CommandLog(fmt::format("Value: {:X}", perform_math_static->value));
} else if (auto begin_keypress_cond =
Member

Oh god, need to fix indentation

Oh god, need to fix indentation
DraVee marked this conversation as resolved
DraVee force-pushed dmnt2 from 1457123bcc
Some checks failed
eden-license / license-header (pull_request) Successful in 25s
GitHub Actions [CI] Build failed
to 167f4f40ad
Some checks reported errors
eden-license / license-header (pull_request) Successful in 25s
GitHub Actions [CI] Build cancelled
2026-03-10 15:09:53 +01:00
Compare
DraVee force-pushed dmnt2 from 167f4f40ad
Some checks reported errors
eden-license / license-header (pull_request) Successful in 25s
GitHub Actions [CI] Build cancelled
to 1c57cb5603
All checks were successful
eden-license / license-header (pull_request) Successful in 27s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
2026-03-10 15:26:56 +01:00
Compare
Update src/common/android/id_cache.cpp
All checks were successful
eden-license / license-header (pull_request) Successful in 26s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
311420a49e
dont go kaboon plz dont

Signed-off-by: xbzk <xbzk@eden-emu.dev>
DraVee force-pushed dmnt2 from 311420a49e
All checks were successful
eden-license / license-header (pull_request) Successful in 26s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
to b6f4cc1873
Some checks reported errors
eden-license / license-header (pull_request) Successful in 25s
GitHub Actions [CI] Build cancelled
2026-03-11 17:25:40 +01:00
Compare
DraVee force-pushed dmnt2 from b6f4cc1873
Some checks reported errors
eden-license / license-header (pull_request) Successful in 25s
GitHub Actions [CI] Build cancelled
to c2e4484172
Some checks reported errors
eden-license / license-header (pull_request) Successful in 33s
GitHub Actions [CI] Build cancelled
2026-03-11 17:26:39 +01:00
Compare
[fixup] fix problem introduced on fix merge conflicts
All checks were successful
eden-license / license-header (pull_request) Successful in 27s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
69c29c651e
Signed-off-by: xbzk <xbzk@eden-emu.dev>
Member

@DraVee wrote in #3178 (comment):

Cheats are being detected as mods

image

Need to change message from Mods to Add-ons

@DraVee wrote in https://git.eden-emu.dev/eden-emu/eden/pulls/3178#issuecomment-22548: > Cheats are being detected as mods > > [![image](/attachments/c34f747a-258e-4739-ae7f-98a1b15c59bc)](/eden-emu/eden/attachments/c34f747a-258e-4739-ae7f-98a1b15c59bc) Need to change message from Mods to Add-ons
Owner

@DraVee wrote in #3178 (comment):

Need to change message from Mods to Add-ons

The add-on manager only supports deleting mods.

@DraVee wrote in https://git.eden-emu.dev/eden-emu/eden/pulls/3178#issuecomment-22596: > Need to change message from Mods to Add-ons The add-on manager **only** supports deleting mods.
[dmnt] Fix CheatCompatibility
All checks were successful
eden-license / license-header (pull_request) Successful in 27s
GitHub Actions [CI] Build succeeded
GitHub Releases [CD] Release published
80e2a7382b
* now it follows Atmosphere system to only enable cheat if cheat_name.txt = build_id
* also deduplicate active update

Signed-off-by: DraVee <chimera@dravee.dev>
Member

@crueter wrote in #3178 (comment):

@DraVee wrote in #3178 (comentário):

Need to change message from Mods to Add-ons

The add-on manager only supports deleting mods.

Well a cheat is mod, so its ok then

@crueter wrote in https://git.eden-emu.dev/eden-emu/eden/pulls/3178#issuecomment-22598: > @DraVee wrote in #3178 (comentário): > > > Need to change message from Mods to Add-ons > > The add-on manager **only** supports deleting mods. Well a cheat is mod, so its ok then
[file_sys] Check for Mods the same way on SDMC and non-SDMC
Some checks reported errors
eden-license / license-header (pull_request) Successful in 26s
GitHub Actions [CI] Build cancelled
3092d2274f
* fix getting cheats from SDMC (allow usage with aio-switch-updater)
@ -947,1 +947,4 @@
AppendCommaIfNotEmpty(types, "Cheats");
}
if (has_cheats && is_sdmc)
mod_name = "Atmosphère Cheats";
Member

Can this lead to problem in the future?

Can this lead to problem in the future?
DraVee marked this conversation as resolved
...
Some checks failed
eden-license / license-header (pull_request) Successful in 27s
GitHub Actions [CI] Build failed
7fc2b0f93d
DraVee changed title from [cheat] add dmnt, indiviual cheats, etc. to WIP: [cheat] add dmnt, indiviual cheats, etc. 2026-03-12 04:03:25 +01:00
Member
                // Note: This function *MUST* be called only with the cheat lock held.
                bool has_cheat_process =
                    cheat_process_debug_handle != InvalidHandle
                    && system.ApplicationProcess()
                    && system.ApplicationProcess()->GetProcessId() == cheat_process_metadata.process_id;
            
                if (!has_cheat_process) {
                    CloseActiveCheatProcess();
                }
            
                return has_cheat_process;
            }```
```bool CheatProcessManager::HasActiveCheatProcess() { // Note: This function *MUST* be called only with the cheat lock held. bool has_cheat_process = cheat_process_debug_handle != InvalidHandle && system.ApplicationProcess() && system.ApplicationProcess()->GetProcessId() == cheat_process_metadata.process_id; if (!has_cheat_process) { CloseActiveCheatProcess(); } return has_cheat_process; }```
Some checks failed
eden-license / license-header (pull_request) Successful in 27s
Required
Details
GitHub Actions [CI] Build failed
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin dmnt2:dmnt2
git switch dmnt2
Sign in to join this conversation.
No description provided.