Beispiel #1
0
    public static IGTResults IGTCheckParallel <Gb>(Gb[] gbs, RbyIntroSequence intro, int numIgts, Func <GameBoy, bool> fn = null, int ss = 0, int ssOverwrite = -1) where Gb : Rby
    {
        intro.ExecuteUntilIGT(gbs[0]);
        byte[]   igtState = gbs[0].SaveState();
        byte[][] states   = new byte[numIgts][];
        MultiThread.For(numIgts, gbs, (gb, i) => {
            states[i] = gb.MakeIGTState(intro, igtState, i);
        });

        return(IGTCheckParallel(gbs, states, fn, ss, ssOverwrite));
    }
Beispiel #2
0
    public IGTResults IGTCheck(RbyIntroSequence intro, int numIgts, Func <GameBoy, bool> fn = null, int ss = 0, int ssOverwrite = -1)
    {
        intro.ExecuteUntilIGT(this);
        byte[]   igtState = SaveState();
        byte[][] states   = new byte[numIgts][];
        for (int i = 0; i < numIgts; i++)
        {
            states[i] = MakeIGTState(intro, igtState, i);
        }

        return(IGTCheck(states, fn, ss, ssOverwrite));
    }