Exemple #1
0
        public NesDeck(INesPort Left, INesPort Right, Func <int, int, bool> PPUCallback)
        {
            this.Left  = Left;
            this.Right = Right;
            List <ControlDefUnMerger> cdum;

            Definition = ControllerDefMerger.GetMerged(new[] { Left.GetDefinition(), Right.GetDefinition() }, out cdum);
            LeftU      = cdum[0];
            RightU     = cdum[1];

            // apply hacks
            // if this list gets very long, then something should be changed
            // if it stays short, then no problem
            if (Left is FourScore)
            {
                (Left as FourScore).RightPort = false;
            }
            if (Right is FourScore)
            {
                (Right as FourScore).RightPort = true;
            }
            if (Left is IZapper)
            {
                (Left as IZapper).PPUCallback = PPUCallback;
            }
            if (Right is IZapper)
            {
                (Right as IZapper).PPUCallback = PPUCallback;
            }
        }
Exemple #2
0
        public FamicomDeck(IFamicomExpansion ExpSlot, Func <int, int, bool> PPUCallback)
        {
            Player3 = ExpSlot;
            List <ControlDefUnMerger> cdum;

            Definition = ControllerDefMerger.GetMerged(
                new[] { Player1.GetDefinition(), Player2.GetDefinition(), Player3.GetDefinition() }, out cdum);
            Definition.BoolButtons.Add("P2 Microphone");
            Player1U = cdum[0];
            Player2U = cdum[1];
            Player3U = cdum[2];

            // hack
            if (Player3 is Zapper)
            {
                (Player3 as Zapper).PPUCallback = PPUCallback;
            }
        }