Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Persona 3 Portable text disappears from save screen #13518

Closed
sumit0190 opened this issue Oct 7, 2020 · 3 comments · Fixed by #14078
Closed

Persona 3 Portable text disappears from save screen #13518

sumit0190 opened this issue Oct 7, 2020 · 3 comments · Fixed by #14078
Milestone

Comments

@sumit0190
Copy link

What happens?

After playing Persona 3 (ULUS10512) for a while (usually after an hour or so), the text on the save screen disappears entirely, and an error is seen in the console:
E[SCEKERNEL]: Util\BlockAllocator.cpp:140 Block Allocator (08000000-08400000) failed to allocate 46080 (0000b400) bytes of contiguous memory.
The error is repeated on the console for as long as the user is on the save screen.

This is visible in the screenshots below (the first one is the screen when the system asks you to select the save data, the second one is when the system asks you if you are sure you want to overwrite the data).

saveDataInfo
savePrompt

This is always reproducible from the attached savestate.

To reproduce this:

  1. Load the ROM.
  2. Load the attached savestate.
  3. Try to save the game (using the open register on the desk).

The problem vanishes after resetting the emulator.

To see this behavior:

  1. Load the ROM.
  2. Load the attached savefile.
  3. Try to save the game (using the open register on the desk).

To be clear, the game save is from the same point in the game as the savestate.

What should happen?

The save prompt and the save-data info should be correctly visible, like in the screenshot below (taken after resetting the system).
ULUS10512_00000

What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues.

Windows 10 x64 (Version 10.0.18363 Build 18363)
Intel i5-6600K @ 3.5GHz
GeForce GTX 970
Direct3D 11
PPSSPP v1.10.3 release build
persona3saveStateAndData.zip

@hrydgard
Copy link
Owner

hrydgard commented Oct 7, 2020

Thanks for reporting, the new truetype font rendering caches text images in kernel memory and that can run out then I guess. Some kind of leak bug or just fragmentation? hm.

@hrydgard hrydgard added this to the v1.11.0 milestone Oct 7, 2020
@sumit0190
Copy link
Author

Looks like the allocation fails when trying to set the texture for the save icon. I put a breakpoint at Util\BlockAllocator.cpp:141 (where the error occurs) and observed the stack:

PPSSPPDebug.exe!BlockAllocator::AllocAligned(unsigned int & size, unsigned int sizeGrain, unsigned int grain, bool fromTop, const char * tag) Line 141
PPSSPPDebug.exe!BlockAllocator::Alloc(unsigned int & size, bool fromTop, const char * tag) Line 149
PPSSPPDebug.exe!__PPGeDoAlloc(unsigned int & size, bool fromTop, const char * name) Line 194
PPSSPPDebug.exe!PPGeImage::Load() Line 1221
PPSSPPDebug.exe!PPGeImage::SetTexture() Line 1283
PPSSPPDebug.exe!PSPSaveDialog::DisplaySaveList(bool canMove) Line 381
PPSSPPDebug.exe!PSPSaveDialog::Update(int animSpeed) Line 628
PPSSPPDebug.exe!sceUtilitySavedataUpdate(int animSpeed) Line 250
PPSSPPDebug.exe!WrapI_I<&sceUtilitySavedataUpdate>() Line 251
PPSSPPDebug.exe!CallSyscallWithoutFlags(const HLEFunction * info) Line 652

I can probably investigate further if you'd be kind enough to give me some pointers on where to go next.

@Lemoncak3
Copy link

Lemoncak3 commented Oct 18, 2020

I can't produce this issue or is it only for male protagonist?

Screenshot_20201018-184223

This is the video
https://drive.google.com/file/d/1NxCLeZLwJn0O2DlSRBTisOgYrYdBd5t9/view?usp=drivesdk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants