Inori / GPCS4

A work-in-progress PlayStation 4 emulator.
GNU General Public License v3.0
2.01k stars 142 forks source link

God of War 4 crashes #28

Open Inori opened 4 years ago

Inori commented 4 years ago

An ideal state would be the game runs in an infinite loop processing input messages, just without graphics output. This crash possibly due to unimplemented import functions. Especially sceKernelVirtualQuery, I don't know what it will return on a real PS4 machine. Maybe a better way is to hook this function on a real PS4 machine and log its' output.

[17628][warning]<FIXME>prepareTables(557):     30 UNKNOWN DTAG: 0x0000000e
[17628][warning]<FIXME>prepareTables(557):     28 UNKNOWN DTAG: 0x0000000e
[17628][warning]<FIXME>prepareTables(557):     40 UNKNOWN DTAG: 0x0000000e
[3352][warning]<FIXME>sceCommonDialogInitialize(16): Not implemented
[3352][warning]<FIXME>sceMsgDialogInitialize(30): Not implemented
[3352][warning]<FIXME>scePthreadMutexInit(150): set name is not supported yet.
[3352][warning]<FIXME>sceKernelReserveVirtualRange(111): SCE Dummy implemented
[3352][warning]<FIXME>sceKernelSetVirtualRangeName(119): Not implemented
[3352][warning]<FIXME>sceKernelVirtualQuery(126): Not implemented
[3352][warning]<FIXME>sceKernelGetDirectMemoryType(42): SCE Dummy implemented
[3352][warning]<FIXME>sceKernelAllocateDirectMemory(9): SCE Dummy implemented
[3352][warning]<FIXME>sceKernelMapNamedDirectMemory(68): SCE Dummy implemented
[3352][warning]<FIXME>sceKernelGetPageTableStats(51): Not implemented
[3352][warning]<FIXME>sceKernelSetPrtAperture(132): Not implemented
[3352][warning]<FIXME>sceKernelMapNamedDirectMemory(68): SCE Dummy implemented
VelocityRa commented 4 years ago

sceKernelVirtualQuery is probably a win32 VirtualQuery equivalent.

What address is it getting called on? An addr inside memory that we have allocated for the game? If so, you may not need hardware tests.

Anyway, presumably GPCS4 will need more accurate memory handling to implement it (lots of sceKernel memory stuff is stubbed afaik).