jpd002 / Play-Compatibility

Play! - Compatibility Tracker
175 stars 25 forks source link

[SLUS-21029] Midnight Club 3 Dub Edition #897

Open Zer0xFF opened 5 years ago

Zer0xFF commented 5 years ago

Last Tested On 2021-03-11 - https://github.com/jpd002/Play-/commit/586b23987fecaa518840bbd712d8c054119f61e0

Known Issues & Notes

Related

Screenshots image

with the edit mentioned above image

image

image

jpd002 commented 5 years ago

Function 6 of SYSMEM is QueryMemSize and returns the total amount of memory managed by the kernel (which should be something like 2MBs). Might be interesting to see what's loaded at the time when it's trying to allocate that huge block.

Zer0xFF commented 5 years ago

Function 6 of SYSMEM is QueryMemSize

I gather as much looking at the code and online, but its odd that the game will always try to allocate QueryMemSize - 0x22000, and always fail, since presumably > 0x22000 is already in use. note this is also true when I change IOP_RAM_SIZE, as QueryMemSize also gets bigger

so does the PS2 not expose all the memory, aka reserves? is sif memory allocation different then sysmem? or is free not freeing enough memory (correctly)?

uyjulian commented 5 years ago

There may be a possibility that the game is checking for TOOL RAM size, which contains 8MB of IOP RAM.

rcaridade145 commented 5 years ago

From here https://assemblergames.com/threads/playstation-2-tool-unit-rom-layout.67937/ it mentions

QueryMemSize()

QueryMemSize() returns a value of 8MB-256 bytes (0x007FFF00) on the TOOL, as well as any console (i.e. the PSX) with 8MB of IOP memory installed.

This is due to SYSMEM limiting memory in software.

icydevice commented 4 years ago
Screenshot 1441-08-26 at 5 15 33 AM

Stuck in infinite loop

Zer0xFF commented 3 years ago

this commit https://github.com/jpd002/Play-/commit/9317656e772bb7b5cf17771ffeb4d12c6cfbad40 seemed relevent to this issue and a quick test shows it is, this allows the game to get past the "infinite loading", though the emu crashes before making it in game

jpd002 commented 3 years ago

Yup, turns out we had the wrong command ids in the emulator. Gonna check what crashes it to be sure it's not collateral damage.

jpd002 commented 3 years ago

Ok, seems it's crashing due to the game passing NO_WAIT flag when opening a file. Easy to fix (just remove that bit when opening the file), I'm gonna push something later.