Open KenGodEaterwiki opened 9 years ago
...........
Alright then...
You might have more luck getting someone to look at it by posting more actionable information, like, where to get the demo, how to install the upgrade, on what platforms it is a problem (all?), a savegame before the problem, etc.
It happen on all platforms. This problem does not happen in the demo
Alright, I'll try explain things better. Go to Hibari, accept a mission, lunch the mission, when the loading is finish, the game freeze
This is a already known issue and seems to happen because the memory allocation feature...
http://forums.ppsspp.org/showthread.php?tid=7350&pid=102863&highlight=unknown#pid102863
Anyway i will just post my log from the tutorial mission with the npc on my group, and its interesting that the blackscreen only happens after the monsters spawns.
Log : http://pastebin.com/f1jq6vjX
*Note: Update 1.40 added a new feature to npcs were you can leveling them . Plus now you can change mission difficulty from 1-99. Seems that the interaction between these two new features break the game when trying to bring npc to the missions on the ppsspp. Anyway you can play the entire game without npc's whithout a single error or crash.
PPSSPP v1.0.1-832-ge99ba86 x64 Version Windows 10 Pro
It crash without NPCs too. test with PPSSPP v1.9.3-960-gb23f94993.
Logcat from Android. ge2_logcat.zip
Log from Windows (use PPSSPP Debug build). https://drive.google.com/open?id=1Ou59Rtjsy7WtSHMcHnELq37CKZrsByaz
This issue still happen on v1.10.3-1565.
PPSSPP Ver.:1.10.3-1565 OS:Windows10(64-bit)Japanese CPU:Ryzen7 3800X(8-core) GPU:RADEON RX5700XT Resolution:2560×1440 RAM:32GB
I got a Log. (GE2 v1.40. It will happen Invalid memory access error at start the any mission.)
https://gist.github.com/nassau-tk/29ccd1de638f3730b0b9e83f735aad56
I got a Log.(GE2 v1.01. It will not happen Invalid memory access error.) https://gist.github.com/nassau-tk/97becd397d43859ac2ad02192c94d8ba
But,Many Red code appear both Version.
Probably, related or duplicate with #8075 ?
Based on your logs: https://gist.github.com/nassau-tk/29ccd1de638f3730b0b9e83f735aad56
May be it's related to the missing EDAT file?
38:21:695 Back I[HLE]: hle\scepspnpdrm_user.cpp:9 call sceNpDrmSetLicenseeKey(08af8b28)
38:21:695 Back I[HLE]: hle\scepspnpdrm_user.cpp:21 call sceNpDrmRenameCheck(ms0:/PSP/GAME/NPJH50832/f3594808fb6a0f2123811d0d26b0af74.edat)
38:21:695 Back E[FILESYS]: filesystems\directoryfilesystem.cpp:62 DirectoryFileSystem::OpenFile: FAILED, 2 - access = 1
38:21:695 Back W[SCEIO]: hle\sceio.cpp:1499 80010002=sceIoOpen(ms0:/PSP/GAME/NPJH50832/f3594808fb6a0f2123811d0d26b0af74.edat, 1073741825, 0): file not found
38:21:695 Back I[SCEIO]: hle\sceio.cpp:1143 stdout: !!! Error !!! : src/app_mod/npdrm.c 122 : openEdat : ms0:/PSP/GAME/NPJH50832/f3594808fb6a0f2123811d0d26b0af74.edat:80010002
I also wondered why it failed to allocate 8192 bytes of memory, that's quite a small size.
38:27:436 Back E[SCEKERNEL]: util\blockallocator.cpp:141 Block Allocator (08800000-0a000000) failed to allocate 8192 (00002000) bytes of contiguous memory
May be something is draining up all PSP's memory without freeing it?
Edit:
If i put breakpint at blockallocator.cpp:141
, the first "Out of memory" occurrence during AllocAligned(0x00100000, 0x00000100, 0x00000100, false, "mem")
is during SysMemUserForUser_FE707FDF
with currentMIPS->pc = 0x0882b178
and hleCurrentThreadName = "Back"
rangeStart_ = 0x08800000
rangeSize_ = 0x01800000
this->bottom_ = {start=0x08800000, size=0x00004000, taken=true, tag ="usersystemlib", prev = 0, ... }
37:00:301 Back E[SCEIO]: HLE\sceIo.cpp:2405 Not a valid PGD file. Open as normal file.
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:394 -----------
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08800000 - 08804000 size 00004000 taken=1 tag=usersystemlib
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08804000 - 08b56300 size 00352300 taken=1 tag=ELF/main
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b56300 - 08b56400 size 00000100 taken=1 tag=mem
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b56400 - 08b56c00 size 00000800 taken=1 tag=ELF/sceMD5_Library
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b56c00 - 08b56d00 size 00000100 taken=1 tag=gim
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b56d00 - 08b56e00 size 00000100 taken=1 tag=gmo
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b56e00 - 08b57000 size 00000200 taken=0 tag=(untitled)
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b57000 - 08b5b000 size 00004000 taken=1 tag=UserSbrk
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b5b000 - 08b63000 size 00008000 taken=1 tag=stack/Main
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b63000 - 08b66000 size 00003000 taken=1 tag=stack/Back
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b66000 - 08b69000 size 00003000 taken=1 tag=stack/PowerLocker
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b69000 - 08b71000 size 00008000 taken=1 tag=UtilityModule/302
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b71000 - 08b85000 size 00014000 taken=1 tag=UtilityModule/100
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08b85000 - 08ba5000 size 00020000 taken=1 tag=UtilityModule/101
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08ba5000 - 08bad300 size 00008300 taken=1 tag=ELF/sceFont_Library
37:26:106 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bad300 - 08bae800 size 00001500 taken=1 tag=ELF/sceDEFLATE_Library
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bae800 - 08baf800 size 00001000 taken=1 tag=ELF/sceCcc_Library
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08baf800 - 08bb2800 size 00003000 taken=1 tag=stack/Sound
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bb2800 - 08bd2800 size 00020000 taken=1 tag=netpool
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bd2800 - 08bd4800 size 00002000 taken=1 tag=stack/NetConnManager
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bd4800 - 08bd7800 size 00003000 taken=1 tag=stack/MovieAudio
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bd7800 - 08bd8000 size 00000800 taken=1 tag=ELF/system
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bd8000 - 08bd9a00 size 00001a00 taken=1 tag=ELF/god_menu
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bd9a00 - 08bda700 size 00000d00 taken=1 tag=ELF/god_game
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08bda700 - 08cda700 size 00100000 taken=1 tag=mem
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08cda700 - 08dda700 size 00100000 taken=1 tag=mem
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08dda700 - 08ea1400 size 000c6d00 taken=1 tag=ELF/god_g999_Base
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08ea1400 - 08fbb800 size 0011a400 taken=1 tag=ELF/layout
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 08fbb800 - 09089800 size 000ce000 taken=1 tag=extra
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 09089800 - 09189800 size 00100000 taken=1 tag=mem
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 09189800 - 09289800 size 00100000 taken=1 tag=mem
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 09289800 - 09389800 size 00100000 taken=1 tag=mem
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 09389800 - 0943a400 size 000b0c00 taken=0 tag=(untitled)
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 0943a400 - 0947a400 size 00040000 taken=1 tag=reserve
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 0947a400 - 0947c000 size 00001c00 taken=1 tag=stack/AdhocThread
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 0947c000 - 0947d000 size 00001000 taken=1 tag=netstack2
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 0947d000 - 0947e000 size 00001000 taken=1 tag=netstack1
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 0947e000 - 0947f000 size 00001000 taken=1 tag=Log
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 0947f000 - 096ff000 size 00280000 taken=1 tag=xmem
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 096ff000 - 098ff000 size 00200000 taken=1 tag=mem
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 098ff000 - 09eff000 size 00600000 taken=1 tag=mbl-fixed
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 09eff000 - 09fff000 size 00100000 taken=1 tag=mbl-fragment
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:398 Block: 09fff000 - 0a000000 size 00001000 taken=1 tag=rsv
37:26:107 Back D[SCEKERNEL]: Util\BlockAllocator.cpp:400 -----------
37:26:108 Back E[SCEKERNEL]: Util\BlockAllocator.cpp:141 Block Allocator (08800000-0a000000) failed to allocate 1048576 (00100000) bytes of contiguous memory
37:26:108 Back E[SCEKERNEL]: HLE\sceKernelMemory.cpp:1811 AllocMemoryBlock(mem, 0, 00100000, 00000000): allocation failed
So many "mem" tag O.o
PS: Tested to return error code during allocation of "mem" doesn't seems to have any effect to the game (assuming it's some kind of tricks to prevent it from running properly on emulators) and still getting invalid address when entering mission door.
During Loading scene (The one with running wolf on bottom right corner) the game will free these "mem" blocks (especially the one with 0x00100000 size) and then allocate a new one, along with ELF blocks.
This is memory block list before 6x "mem" of size 0x00100000 (located after ELF/layout) are being freed.
This is after 6x "mem" freed
This is when the game try to allocate 6x (or more) "mem" of size 0x00100000 each, but failed on the 6th one due to not enough contiguous free memory
I think this 6th "mem" supposed to be allocated at 09389800
May be we should allocate from Top for internal memory used for system/firmware library? to prevent it from scattered and causing fragmentation Or may be using kernelMemory instead?
Edit: That "netpool" seems to be from Bottom :(
After moving "netpool" to Top, the 6th "mem" allocation is still not enough for a contiguous block :(
Anything else that can be moved to Top?
Edit2: Even after moving network-related memory blocks to kernelMemory, it's still not enough space for contiguous blocks on 6th "mem" :(
Edit3:
Even after moving Utility
memory blocks to kernelMemory, the 7th "mem" allocation of size 0x00100000 failed :(
I wondered why is this game allocating so many "mem" with large size during Loading scene.
Btw, i wished this kind of Memory Block List that contains their Start address and Tag name could be listed in Memory Viewer
There are actually tests for the Utility allocations, which I'm pretty sure do hit user memory. But maybe we get some of the top/bottom wrong.
Some time ago, I did some JpscpTrace of GEB (not GE2) to compare some of the allocations to get it more accurate. It was fruitful but painfully slow. That's how I figured out the UserSbrk stuff.
We should really improve the memory viewer...
-[Unknown]
It's been years and the version 1.40 of the game is still not playable.
I know that it's not your priority and it was released on other platforms as well but hoping you guys fix it someday.
Btw, i wished this kind of Memory Block List that contains their Start address and Tag name could be listed in Memory Viewer
If it helps, this is in now, it should make it easier to understand where this RAM is being used. There's no "zoom out" though, which is a thing I was thinking about how to implement.
Anyway, it might be a really good idea to get a RAM dump from a real PSP at the start menu, even, and compare to a RAM dump from PPSSPP in the same place. It's a bit hard and might need to be complimented with a JpcspTrace to log allocations. Finding the differences is probably the path to fixing this.
For example, the netpool allocations were generally validated on a PSP, but maybe top/bottom isn't right or maybe it's not actually one solid allocation.
-[Unknown]
1.14.4 😢 , God Eater 2 1.40
yes that's right, can only bring npc on training missions https://youtu.be/DVE7vTY6Rik and fc in minutes 28:28 ppsspp v1.1.1
if multiplayer is possible, if i bring npc it will be fc
This problem have been existed for a long time (I think). I did turn off the Fast Mem option and it's still the same. http://forums.ppsspp.org/showthread.php?tid=7350&pid=100350#pid100350 This might help a little bit more.
I'm asking this because God Eater 2 Rage Burst demo have come out and people that don't have PSV/PS4 are left behind...