12-05-2017, 03:33 AM
What's happening in Ruff Trigger?
I did an analysis on IR and it was interesting that the breakpoint stacks returned different results (when it hangs) when EE timing hack and the GIF FIFO hack were enabled in the menu (where it will hang as well) I'm going to look again and report here.
Here's what I got on the MTVU thread without manual gamefixes or with only the GIF FIFO hack enabled (in the menu) - Line 75 (it hangs in the else condition)
---------------------------
With just EE timing hack (on the EE Core thread, nothing interesting in the MTVU thread) - (1st line after the bracket)
This is the same place it will hang in-game
(_hwRead32 <9,0> )
Next address in the stack (again, first line after bracket):
(hwRead32<9> )
---------------------------
I did an analysis on IR and it was interesting that the breakpoint stacks returned different results (when it hangs) when EE timing hack and the GIF FIFO hack were enabled in the menu (where it will hang as well) I'm going to look again and report here.
Here's what I got on the MTVU thread without manual gamefixes or with only the GIF FIFO hack enabled (in the menu) - Line 75 (it hangs in the else condition)
Code:
void VifUnpackSSE_Base::xMovDest() const {
if (IsUnmaskedOp()) { xMOVAPS (ptr[dstIndirect], destReg); }
else { doMaskWrite(destReg); }
}
With just EE timing hack (on the EE Core thread, nothing interesting in the MTVU thread) - (1st line after the bracket)
This is the same place it will hang in-game
(_hwRead32 <9,0> )
Code:
mem32_t __fastcall _hwRead32(u32 mem)
{
pxAssume( (mem & 0x03) == 0 );
Next address in the stack (again, first line after bracket):
(hwRead32<9> )
Code:
mem32_t __fastcall hwRead32(u32 mem)
{
mem32_t retval = _hwRead32<page,false>(mem);
eeHwTraceLog( mem, retval, true );
return retval;
}