Emulator Issues #1425
closed
Metroid Prime: Random hangs since R3984/R3986
Added by gladderbin about 15 years ago.
Relates to performance:
No
Relates to maintainability:
No
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
probably related to the fifo changes
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();
}
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 :(
Maybe do it the bad way, add FIFO hacks :P
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.
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
- Status changed from New to Duplicate
Also available in: Atom
PDF