diff --git a/Core/HLE/sceIo.cpp b/Core/HLE/sceIo.cpp index 8d4b05aac2..e62beaad09 100644 --- a/Core/HLE/sceIo.cpp +++ b/Core/HLE/sceIo.cpp @@ -2805,7 +2805,7 @@ int __IoIoctl(u32 id, u32 cmd, u32 indataPtr, u32 inlen, u32 outdataPtr, u32 out case 0x01020006: // TODO: Should not work for umd0:/, ms0:/, etc. // TODO: Should probably move this to something common between ISOFileSystem and VirtualDiscSystem. - INFO_LOG(Log::sceIo, "sceIoIoctl: Asked for start sector of file %i", id); + DEBUG_LOG(Log::sceIo, "sceIoIoctl: Asked for start sector of file %i", id); if (Memory::IsValidRange(outdataPtr, 4) && outlen >= 4) { Memory::WriteUnchecked_U32(f->FileInfo().startSector, outdataPtr); } else { @@ -2817,7 +2817,7 @@ int __IoIoctl(u32 id, u32 cmd, u32 indataPtr, u32 inlen, u32 outdataPtr, u32 out case 0x01020007: // TODO: Should not work for umd0:/, ms0:/, etc. // TODO: Should probably move this to something common between ISOFileSystem and VirtualDiscSystem. - INFO_LOG(Log::sceIo, "sceIoIoctl: Asked for size of file %i", id); + DEBUG_LOG(Log::sceIo, "sceIoIoctl: Asked for size of file %i", id); if (Memory::IsValid4AlignedRange(outdataPtr, 8)) { Memory::WriteUnchecked_U64(f->FileInfo().size, outdataPtr); } else { diff --git a/Core/KeyMap.cpp b/Core/KeyMap.cpp index 4522f807ac..16f8c4ff80 100644 --- a/Core/KeyMap.cpp +++ b/Core/KeyMap.cpp @@ -515,6 +515,7 @@ const KeyMap_IntStrPair psp_button_names[] = { {VIRTKEY_TEXTURE_REPLACE, "Texture Replacement"}, {VIRTKEY_SCREENSHOT, "Screenshot"}, {VIRTKEY_MUTE_TOGGLE, "Mute toggle"}, + {VIRTKEY_CREATE_FRAME_DUMP, "Create frame dump"}, #ifdef OPENXR {VIRTKEY_VR_CAMERA_ADJUST, "VR camera adjust"}, diff --git a/Core/KeyMap.h b/Core/KeyMap.h index eac575f24a..77484215c1 100644 --- a/Core/KeyMap.h +++ b/Core/KeyMap.h @@ -82,6 +82,7 @@ enum VirtKey : u32 { VIRTKEY_PAUSE_NO_MENU = 0x40000034, VIRTKEY_TOGGLE_TILT = 0x40000035, VIRTKEY_AXIS_SWAP_HOLD = 0x40000036, + VIRTKEY_CREATE_FRAME_DUMP = 0x40000037, VIRTKEY_LAST, VIRTKEY_COUNT = VIRTKEY_LAST - VIRTKEY_FIRST }; diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index 677ef5d4d0..73ba801d2f 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -746,6 +746,23 @@ void EmuScreen::ProcessVKey(VirtKey virtKey, bool down) { } break; + case VIRTKEY_CREATE_FRAME_DUMP: + if (down) { + if (!gpu) { + return; + } + gpu->GetRecorder()->RecordNextFrame([](const Path &dumpPath) { + NOTICE_LOG(Log::System, "Frame dump created at '%s'", dumpPath.c_str()); + g_OSD.Show(OSDType::MESSAGE_SUCCESS, GetFriendlyPath(dumpPath), 7.0f, "framedump"); + if (System_GetPropertyBool(SYSPROP_CAN_SHOW_FILE)) { + g_OSD.SetClickCallback("framedump", [dumpPath]() { + System_ShowFileInFolder(dumpPath); + }); + } + }); + } + break; + case VIRTKEY_TOGGLE_TILT: if (down) { g_Config.bTiltInputEnabled = !g_Config.bTiltInputEnabled;