jpd002 / Play-

Play! - PlayStation2 Emulator
http://purei.org
Other
2.13k stars 259 forks source link

Max payne : crash after the Rockstar Games logo (Windows 10 64bit and Android 6.0) #599

Closed ghost closed 6 years ago

ghost commented 7 years ago

Last stable build The game Max Payne crash after the Rockstar Games logo. It would be nice to fix this.

Hope get you help.

jpd002 commented 7 years ago

This game used to go a bit further, but it never went in game. I'll take a look.

ghost commented 7 years ago

Its in the pal version, wich have a chose language screen.

jpd002 commented 7 years ago

The US version has the same issue.

jpd002 commented 7 years ago

Added some patches to get past the movies. Fixed some CLUT issues and fixed a VIF interrupt issue that was causing random hangs up. The game is playable, but I still need to figure out why the movies crash so I can get rid of the patches.

capture

ghost commented 7 years ago

Great job 👍. PCSX2 must use work around to fix random hangs! and this game is not very difficult to emulate after all. And I realy like your way of thinking about custom patches, It is better to fix the issue into the emulator core for a better compatibility and acuracy.

ramapcsx2 commented 7 years ago

Check if you fire IRQs from lower SPU2 RAM, the special area up to 0x800 or so.

jpd002 commented 7 years ago

It could have been that since that particular case is not emulated properly, but the game doesn't seem to use SPU IRQs.

ramapcsx2 commented 7 years ago

It's been years but I remember there being an auto generated IRQ on the SPU2 lower memory. One game that relies on it firing is this title. Another is Fatal Frame 3, which aparently also doesn't start on Play. So I made the connection ;)

jpd002 commented 7 years ago

Ah, thanks for the tip! I'll take a look tonight!

jpd002 commented 7 years ago

I tried the game on a old build which was capable of running the game past the intro movies. The interesting difference between that old build and the current version is the speed at which the audio data DMA transfer is executed.

Throttling the transfer seems to allow the game to finish movie playback somehow (certainly not in a clean way though), otherwise, the game remains stuck waiting for some kind of rendering routine that gets shutdown prematurely by another thread.

I'll leave the throttling mechanism there (doesn't seem to break things with other games from what I've seen), but I'll have to investigate this further.

ramapcsx2 commented 7 years ago

SPU2 events and timings are a major compatibility factor. Many games throw the towel when something isn't exactly as they expected. It would be great to have a hardware test for this.

jpd002 commented 7 years ago

Agreed. I was thinking of writing some tests for this, but I'm still unsure about the best way to isolate the tricky behaviors. I'll see what I can do.

ghost commented 6 years ago

Any status on this?

jpd002 commented 6 years ago

Still an issue today, I need to get on those SPU hardware tests.

Jordanesquivez commented 6 years ago

@jpd002 Any new build for android?

jpd002 commented 6 years ago

Soon-ish, I'm working on getting builds automatically available from updates made to this repository.

jpd002 commented 6 years ago

Compat tracker issue: https://github.com/jpd002/Play-Compatibility/issues/186.