Commit 9ddb67d4a9 seems to have
introduced a segfault on Mac. The issue is that it this change casts
wxConvCurrent (which is a wxMBConvLibc) to a wxCSConv. This is an
unsafe cast because wxCSConv has member variables, but wxMBConvLibc
does not.
In LogWindow.cpp, the constructor for m_SJISConv is dereferencing one
of those member variables, which is a dereference of uninitialized
memory!
This CL reverts to the older (non-crashing) constructor, but keeps the
behavior the same.
Specifically:
- Look for clang and clang++ in the new (Xcode 4.3) location first,
then the old (Xcode 4.2) location.
- Look for sysroot in the new (Xcode 4.3) location first, then the old
(Xcode 4.2) location.
Fixed the JIT cache, invalidating one instruction length at a time.
Fixed a bug where the JIT cache did not get invalidated when stepping.
Disabled fused instructions in the debugger.
Sorry guys but I needed to disable stfs so that Pokepark 2 would not freeze(?). Feel free to put some effort in to finding out why, I do not understand Jit sorry.
We Didn't Check 0x0008000 in PowerPC::ppcState.msr this was killing the performance, this also fix a hang when this check is performed.
SMG for example.
Deleted the HiWatermark condition from GPFifo.
Please test games affected in this Revision 9e649ce798, and games affected in this Revision b0f75f17ae.
I do not want to excite the game players of 'The Las Story', but Could test again the random hangs with this rev?
Thanks
This fix is not related with the previous commits, but the previous commits help me to see that because in the new scenery SMB was hanging. May be in the past also doesn't boot some times because of that.
Please Test FZero boot also. Thanks.
The external exceptions in dolphin are checking frequently but is different to real HW, so sometime the game is in a loop checking GPU STATUS, the exceptions doesn't checked, and the game hang.\
For solve this I need a trick: still waiting for the exception handler be linked but if CommandProcecsor is reading the GPStatus, resume this.
This fixed "TimeSplitters: Future Perfect" broken in the Revision c2e6fdf09f and surely others games.
That happens because FIFO_RW_DISTANCE_HI must be written first, for checking fifo.CPReadWriteDistance == 0, so some fifo resets was not managed in the right way.
I didn't test Metroid 2 desync reported in Issue 4336 but I think is the same.
About the flickering in MP2, I don't know for my is not related or yes, but you can test anyway.
Fixed Issue 3902
Well now the FIFO is 99.99% finished :)
- I've fixed hangs in DC mode in (Simpsons, Monkey Island, Pokemon XD, etc)
- I've implemented accurate manage of Pixel Engine Interrupts, now the GPU loop is stopped when a PE Interrupt needs to be managed and resume when Pixel Engine finish,
I think now, the Fifo in DC mode is more accurate than SC mode. :)
Time to close the big fifo Issue 3694 (snif), please if you have a possible fifo issue report this like a game issue.
I was working with Skid_AU together, especially thanks for him.
Test a lot all games, and compare the performance with the master maybe this accuracy has a cost (not a lot).
I think now the fifo is very stable, overflow fixed, random hang fixed, if you have a game with a hang with this rev and not in master please report this.