ppsspp icon indicating copy to clipboard operation
ppsspp copied to clipboard

Screenshot API needs implementing

Open NABN00B opened this issue 5 months ago • 3 comments

Moving this out of #3128 because it affects multiple games:

  • Cladun: This is an RPG / Classic Dungeon: Fuyoku no Masoujin
  • Dead or Alive Paradise
  • Grand Knights History
  • Motorstorm: Arctic Edge
  • Phantasy Star Portable 1 & 2 (possibly)
  • Senjou no Valkyira 3: Unrecorded Chronicles ... maybe others?

Dead or Alive Paradise uses this for saving ingame photos as JPEG screenshots to ms0:\PSP\SCREENSHOT\ULUS10521\ and then listing (but not full screen viewing) these screenshots when you open Precious Memories. Example output screenshot: ULUS10521.zip

Grand Knights History seems to try to take a screenshot every time the player presses Start on any dialog sequence. 37:37:107 user_main W[SCEUTIL]: Dialog\PSPDialog.cpp:70 Game requested language 0, ignoring and using user language 37:37:107 user_main W[SCEUTIL]: HLE\sceUtility.cpp:1097 0=sceUtilityScreenshotInitStart(08de3060) 37:37:107 user_main W[SCEUTIL]: HLE\sceUtility.cpp:1126 1=sceUtilityScreenshotGetStatus(): status changed: STATUS_INITIALIZE 37:37:129 user_main W[SCEUTIL]: HLE\sceUtility.cpp:1126 2=sceUtilityScreenshotGetStatus(): status changed: STATUS_RUNNING 37:37:130 user_main W[SCEUTIL]: HLE\sceUtility.cpp:1114 0=sceUtilityScreenshotUpdate(2) 37:37:140 user_main W[SCEUTIL]: HLE\sceUtility.cpp:1126 3=sceUtilityScreenshotGetStatus(): status changed: STATUS_FINISHED 37:37:140 user_main W[SCEUTIL]: HLE\sceUtility.cpp:1106 0=sceUtilityScreenshotShutdownStart() 37:37:163 user_main W[SCEUTIL]: HLE\sceUtility.cpp:1126 4=sceUtilityScreenshotGetStatus(): status changed: STATUS_SHUTDOWN 37:37:173 user_main W[SCEUTIL]: HLE\sceUtility.cpp:1126 0=sceUtilityScreenshotGetStatus(): status changed: STATUS_NONE

Similarly, Motorstorm: Arctic Edge uses it to save photos.

Hold SELECT for 3-5 seconds in any Phantasy Star Portable game and it snaps a screenshot. Saves directly to ms0:\PICTURE\NPJH50332SS\<timestamp>.jpg in original resolution. Image

Since it's not a very useful thing, even if it's not properly implemented, it would be nice to at least auto-exit out of these API calls to prevent the games from softlocking.

NABN00B avatar Jul 27 '25 17:07 NABN00B

Wipeout Pulse has photo mode by accessing pause menu.

The captured screenshot displays black screen in hardware modes but software mode displays correctly.

Hardware:

Image

Software:

Image

Panderner avatar Jul 27 '25 19:07 Panderner

The Wipeout issue is different since it's not using the sceUtility screenshot API. Instead there's some function we need to hook, where Wipeout reads back the image using the CPU.

As for DOAP, yeah, we should indeed at least implement the funcionality enough to avoid soft-lock.

Actually, we do have a stub implementation, but apparently it's not quite working then.

hrydgard avatar Aug 05 '25 22:08 hrydgard

Image

NABN00B avatar Aug 07 '25 08:08 NABN00B