mirror of
https://github.com/Atmosphere-NX/Atmosphere
synced 2024-12-23 12:51:13 +00:00
42 lines
2.1 KiB
Markdown
42 lines
2.1 KiB
Markdown
# dmnt
|
|
This module is a reimplementation of the Horizon OS's `dmnt` system module, which provides a debug monitor.
|
|
|
|
## Extensions
|
|
Atmosphère implements an extension to provide cheat code functionality.
|
|
|
|
### Cheat Service
|
|
A HIPC service API is provided for interacting with the cheat code manager through the service `dmnt:cht`. See [here](../../features/cheats.md) for more information on the cheat code format.
|
|
|
|
The SwIPC definition for `dmnt:cht` follows:
|
|
```
|
|
interface ams::dmnt::cheat::CheatService is dmnt:cht {
|
|
[65000] HasCheatProcess() -> sf::Out<bool> out;
|
|
[65001] GetCheatProcessEvent() -> sf::OutCopyHandle out_event;
|
|
[65002] GetCheatProcessMetadata() -> sf::Out<CheatProcessMetadata> out_metadata;
|
|
[65003] ForceOpenCheatProcess();
|
|
[65004] PauseCheatProcess();
|
|
[65005] ResumeCheatProcess();
|
|
|
|
[65100] GetCheatProcessMappingCount() -> sf::Out<u64> out_count;
|
|
[65101] GetCheatProcessMappings(u64 offset) -> sf::OutArray<MemoryInfo> &mappings, sf::Out<u64> out_count;
|
|
[65102] ReadCheatProcessMemory(u64 address, u64 out_size) -> sf::OutBuffer &buffer;
|
|
[65103] WriteCheatProcessMemory(sf::InBuffer &buffer, u64 address, u64 in_size);
|
|
[65104] QueryCheatProcessMemory(u64 address) -> sf::Out<MemoryInfo> mapping;
|
|
|
|
[65200] GetCheatCount() -> sf::Out<u64> out_count;
|
|
[65201] GetCheats(u64 offset) -> sf::OutArray<CheatEntry> &cheats, sf::Out<u64> out_count;
|
|
[65202] GetCheatById(u32 cheat_id) -> sf::Out<CheatEntry> cheat;
|
|
[65203] ToggleCheat(u32 cheat_id);
|
|
[65204] AddCheat(CheatDefinition &cheat, bool enabled) -> sf::Out<u32> out_cheat_id;
|
|
[65205] RemoveCheat(u32 cheat_id);
|
|
[65206] ReadStaticRegister(u8 which) -> sf::Out<u64> out;
|
|
[65207] WriteStaticRegister(u8 which, u64 value);
|
|
[65208] ResetStaticRegisters();
|
|
|
|
[65300] GetFrozenAddressCount() -> sf::Out<u64> out_count;
|
|
[65301] GetFrozenAddresses(u64 offset) ->sf::OutArray<FrozenAddressEntry> &addresses, sf::Out<u64> out_count;
|
|
[65302] GetFrozenAddress(u64 address) -> sf::Out<FrozenAddressEntry> entry;
|
|
[65303] EnableFrozenAddress(u64 address, u64 width) -> sf::Out<u64> out_value;
|
|
[65304] DisableFrozenAddress(u64 address);
|
|
}
|
|
```
|