Emulator Issues #1425
closedMetroid Prime: Random hangs since R3984/R3986
0%
Description
I have random hangs in Metroid Prime (image freezes, fps drops to 0 and
sound loops). There was no problem in R3981, but I do get the hangs in
R3986. The revisions in between do not compile, but I suspect that the
hangs might be caused by R3984. The problem persists up to current SVN.
I did the following test: Run Dolphin, load Metroid Prime, start new game,
let the intro play. The settings I used were all default settings except
that I turned on dual core and disabled other audio to make it run faster
and enabled safe tecture cache to make it not crash.
Results:
R4285: Hung during intro 5 out of 10 times
R3986: Hung during intro 7 out of 10 times
R3981: Let the whole intro run 12 times now, still no hang...
What version of the product are you using? On what operating system?
R3986/R4285 JIT64 DC
Win7 x64
Updated by Migs351 about 15 years ago
Reverting CommandProcessor.cpp and Fifo.cpp fixes the problem. I did re-add the
following to Fifo.cpp after Fifo_SendFifoData(uData, distToSend);, and it didn't have
any lock-up problems... Not sure if Pokemon XD still works or not... I don't own
that game...
//Check BP Mode - Pokemon XD wants this to be called after the pointer move
if (_fifo.bFF_BPEnable && (readPtr == _fifo.CPBreakpoint))
{
Common::AtomicStore(_fifo.bFF_Breakpoint, 1);
video_initialize.pUpdateInterrupts();
}
Updated by sl1nk3.s about 15 years ago
nah, pokemon XD won't work anymore (at least if it ever worked :p), ector also found
out it breaks Burnout 2 and another game i can't remember (freezes on boot)
Also, note that the Fifo.cpp change only is to blame, this thing is really senstitive
and i wish someone would figure it out :(
Updated by omegadox about 15 years ago
Maybe do it the bad way, add FIFO hacks :P
Updated by Migs351 about 15 years ago
when I reverted just the fifo changes all games ran excessively slow, it wasn't until
I reverted the CP changes till they ran normally again.
Updated by sl1nk3.s about 15 years ago
that's nothing important it's just because there's some events in the CP files that
you have to set for the thing not to lock, reverting the CP file also reverted the
event, but you can as well just add the set() in the reverted fifo file
anyway :P