From 5c215383b25bac5fa6d57187da253eac2b4f47f2 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Wed, 21 Jul 2021 19:21:58 -0700 Subject: [PATCH] dmnt: various cheat changes/suggestions that have been cooking a while --- libstratosphere/source/dmnt/dmntcht.c | 11 +++++++++++ libstratosphere/source/dmnt/dmntcht.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/libstratosphere/source/dmnt/dmntcht.c b/libstratosphere/source/dmnt/dmntcht.c index dd5faaa1..9fa5e843 100644 --- a/libstratosphere/source/dmnt/dmntcht.c +++ b/libstratosphere/source/dmnt/dmntcht.c @@ -74,6 +74,10 @@ Result dmntchtResumeCheatProcess(void) { return _dmntchtCmdVoid(&g_dmntchtSrv, 65005); } +Result dmntchtForceCloseCheatProcess(void) { + return _dmntchtCmdVoid(&g_dmntchtSrv, 65006); +} + static Result _dmntchtGetCount(u64 *out_count, u32 cmd_id) { return serviceDispatchOut(&g_dmntchtSrv, cmd_id, *out_count); } @@ -171,6 +175,13 @@ Result dmntchtResetStaticRegisters() { return _dmntchtCmdVoid(&g_dmntchtSrv, 65208); } +Result dmntchtSetMasterCheat(DmntCheatDefinition *cheat_def) { + return serviceDispatch(&g_dmntchtSrv, 65209, + .buffer_attrs = { SfBufferAttr_In | SfBufferAttr_HipcMapAlias | SfBufferAttr_FixedSize }, + .buffers = { { cheat_def, sizeof(*cheat_def) } }, + ); +} + Result dmntchtGetFrozenAddressCount(u64 *out_count) { return _dmntchtGetCount(out_count, 65300); } diff --git a/libstratosphere/source/dmnt/dmntcht.h b/libstratosphere/source/dmnt/dmntcht.h index 62f89573..85929778 100644 --- a/libstratosphere/source/dmnt/dmntcht.h +++ b/libstratosphere/source/dmnt/dmntcht.h @@ -66,6 +66,7 @@ Result dmntchtHasCheatProcess(bool *out); Result dmntchtGetCheatProcessEvent(Event *event); Result dmntchtGetCheatProcessMetadata(DmntCheatProcessMetadata *out_metadata); Result dmntchtForceOpenCheatProcess(void); +Result dmntchtForceCloseCheatProcess(void); Result dmntchtGetCheatProcessMappingCount(u64 *out_count); Result dmntchtGetCheatProcessMappings(MemoryInfo *buffer, u64 max_count, u64 offset, u64 *out_count); @@ -84,6 +85,7 @@ Result dmntchtRemoveCheat(u32 cheat_id); Result dmntchtReadStaticRegister(u64 *out, u8 which); Result dmntchtWriteStaticRegister(u8 which, u64 value); Result dmntchtResetStaticRegisters(); +Result dmntchtSetMasterCheat(DmntCheatDefinition *cheat); Result dmntchtGetFrozenAddressCount(u64 *out_count); Result dmntchtGetFrozenAddresses(DmntFrozenAddressEntry *buffer, u64 max_count, u64 offset, u64 *out_count);