Beispiel #1
0
 private LibSameboy.Buttons GetButtons(IController c)
 {
     LibSameboy.Buttons b = 0;
     for (int i = _sgb ? 4 : 1; i > 0; i--)
     {
         if (c.IsPressed($"P{i} Up"))
         {
             b |= LibSameboy.Buttons.UP;
         }
         if (c.IsPressed($"P{i} Down"))
         {
             b |= LibSameboy.Buttons.DOWN;
         }
         if (c.IsPressed($"P{i} Left"))
         {
             b |= LibSameboy.Buttons.LEFT;
         }
         if (c.IsPressed($"P{i} Right"))
         {
             b |= LibSameboy.Buttons.RIGHT;
         }
         if (c.IsPressed($"P{i} A"))
         {
             b |= LibSameboy.Buttons.A;
         }
         if (c.IsPressed($"P{i} B"))
         {
             b |= LibSameboy.Buttons.B;
         }
         if (c.IsPressed($"P{i} Select"))
         {
             b |= LibSameboy.Buttons.SELECT;
         }
         if (c.IsPressed($"P{i} Start"))
         {
             b |= LibSameboy.Buttons.START;
         }
         if (_sgb)
         {
             // The SGB SNES side code enforces U+D/L+R prohibitions
             if (((uint)b & 0x30) == 0x30)
             {
                 b &= unchecked ((LibSameboy.Buttons) ~0x30);
             }
             if (((uint)b & 0xc0) == 0xc0)
             {
                 b &= unchecked ((LibSameboy.Buttons) ~0xc0);
             }
         }
         if (i != 1)
         {
             b = (LibSameboy.Buttons)((uint)b << 8);
         }
     }
     return(b);
 }
Beispiel #2
0
 private LibSameboy.Buttons GetButtons(IController c)
 {
     LibSameboy.Buttons b = 0;
     for (int i = _sgb ? 4 : 1; i > 0; i--)
     {
         if (c.IsPressed($"P{i} Up"))
         {
             b |= LibSameboy.Buttons.UP;
         }
         if (c.IsPressed($"P{i} Down"))
         {
             b |= LibSameboy.Buttons.DOWN;
         }
         if (c.IsPressed($"P{i} Left"))
         {
             b |= LibSameboy.Buttons.LEFT;
         }
         if (c.IsPressed($"P{i} Right"))
         {
             b |= LibSameboy.Buttons.RIGHT;
         }
         if (c.IsPressed($"P{i} A"))
         {
             b |= LibSameboy.Buttons.A;
         }
         if (c.IsPressed($"P{i} B"))
         {
             b |= LibSameboy.Buttons.B;
         }
         if (c.IsPressed($"P{i} Select"))
         {
             b |= LibSameboy.Buttons.SELECT;
         }
         if (c.IsPressed($"P{i} Start"))
         {
             b |= LibSameboy.Buttons.START;
         }
         if (i != 1)
         {
             b = (LibSameboy.Buttons)((uint)b << 8);
         }
     }
     return(b);
 }