mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-11-06 04:01:44 +00:00
dmnt-cheat: Fix a few bugs in vm.
This commit is contained in:
parent
433b01aaf8
commit
7551bebb88
2 changed files with 4 additions and 3 deletions
|
@ -147,6 +147,7 @@ void DmntCheatVm::LogOpcode(const CheatVmOpcode *opcode) {
|
||||||
case CheatVmOpcodeType_BeginRegisterConditionalBlock:
|
case CheatVmOpcodeType_BeginRegisterConditionalBlock:
|
||||||
this->LogToDebugFile("Opcode: Begin Register Conditional\n");
|
this->LogToDebugFile("Opcode: Begin Register Conditional\n");
|
||||||
this->LogToDebugFile("Bit Width: %x\n", opcode->begin_reg_cond.bit_width);
|
this->LogToDebugFile("Bit Width: %x\n", opcode->begin_reg_cond.bit_width);
|
||||||
|
this->LogToDebugFile("Cond Type: %x\n", opcode->begin_reg_cond.cond_type);
|
||||||
this->LogToDebugFile("V Reg Idx: %x\n", opcode->begin_reg_cond.val_reg_index);
|
this->LogToDebugFile("V Reg Idx: %x\n", opcode->begin_reg_cond.val_reg_index);
|
||||||
switch (opcode->begin_reg_cond.comp_type) {
|
switch (opcode->begin_reg_cond.comp_type) {
|
||||||
case CompareRegisterValueType_StaticValue:
|
case CompareRegisterValueType_StaticValue:
|
||||||
|
@ -300,7 +301,7 @@ bool DmntCheatVm::DecodeNextOpcode(CheatVmOpcode *out) {
|
||||||
{
|
{
|
||||||
/* 400R0000 VVVVVVVV VVVVVVVV */
|
/* 400R0000 VVVVVVVV VVVVVVVV */
|
||||||
/* Read additional words. */
|
/* Read additional words. */
|
||||||
opcode.ldr_static.reg_index = ((first_dword >> 20) & 0xF);
|
opcode.ldr_static.reg_index = ((first_dword >> 16) & 0xF);
|
||||||
opcode.ldr_static.value = (((u64)GetNextDword()) << 32ul) | ((u64)GetNextDword());
|
opcode.ldr_static.value = (((u64)GetNextDword()) << 32ul) | ((u64)GetNextDword());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -461,7 +462,7 @@ void DmntCheatVm::SkipConditionalBlock() {
|
||||||
const size_t desired_depth = this->condition_depth - 1;
|
const size_t desired_depth = this->condition_depth - 1;
|
||||||
|
|
||||||
CheatVmOpcode skip_opcode;
|
CheatVmOpcode skip_opcode;
|
||||||
while (this->DecodeNextOpcode(&skip_opcode) && this->condition_depth > desired_depth) {
|
while (this->condition_depth > desired_depth && this->DecodeNextOpcode(&skip_opcode)) {
|
||||||
/* Decode instructions until we see end of the current conditional block. */
|
/* Decode instructions until we see end of the current conditional block. */
|
||||||
/* NOTE: This is broken in gateway's implementation. */
|
/* NOTE: This is broken in gateway's implementation. */
|
||||||
/* Gateway currently checks for "0x2" instead of "0x20000000" */
|
/* Gateway currently checks for "0x2" instead of "0x20000000" */
|
||||||
|
|
|
@ -26,7 +26,7 @@ Result HidManagement::GetKeysDown(u64 *keys) {
|
||||||
std::scoped_lock<HosMutex> lk(g_hid_keys_down_lock);
|
std::scoped_lock<HosMutex> lk(g_hid_keys_down_lock);
|
||||||
|
|
||||||
hidScanInput();
|
hidScanInput();
|
||||||
*keys = hidKeysDown(CONTROLLER_P1_AUTO);
|
*keys = hidKeysHeld(CONTROLLER_P1_AUTO);
|
||||||
|
|
||||||
return 0x0;
|
return 0x0;
|
||||||
}
|
}
|
Loading…
Reference in a new issue