public bool Compare(Stream regStream, BreakpointType bpType, UInt32 bpAddress, TCPGecko gecko) { if (regStream.Length != 0x120) return false; int spos = PRegister * 4; UInt32 val = 0; if (spos == 0x120) //Value of address is supposed to be checked { switch (bpType) { case BreakpointType.Read: val = gecko.peek(bpAddress); break; case BreakpointType.ReadWrite: case BreakpointType.Write: gecko.Step(); val = gecko.peek(bpAddress); break; default: return true; } } else { regStream.Seek(spos, SeekOrigin.Begin); val = GlobalFunctions.ReadStream(regStream); } switch (PCondition) { case BreakpointComparison.Equal: return (val == PValue); case BreakpointComparison.NotEqual: return (val != PValue); case BreakpointComparison.Greater: return (val > PValue); case BreakpointComparison.GreaterEqual: return (val >= PValue); case BreakpointComparison.Lower: return (val < PValue); case BreakpointComparison.LowerEqual: return (val <= PValue); } return true; }