protected override void ControllerButtonPressed(ControllerButtonEventArgs e) { if (e.Controller.PlayerIndex == 0) { switch (e.Button) { case ControllerButton.RightStick: Machine.InputPort1 &= 0b11111110; break; case ControllerButton.Menu: Machine.InputPort1 |= 0b100; break; case ControllerButton.View: Machine.InputPort1 |= 0b10; break; } } if (e.Button == ControllerButton.A) { if ((e.Controller.PlayerIndex == 0 && Controller.DeviceCount > 1) || Controller.DeviceCount == 1) { Machine.InputPort1 |= 0b10000; } if ((e.Controller.PlayerIndex == 1 && Controller.DeviceCount > 1) || Controller.DeviceCount == 1) { Machine.InputPort2 |= 0b10000; } } }
protected override void ControllerButtonPressed(ControllerButtonEventArgs e) { if (e.Button == ControllerButton.Menu) { FlatRender = !FlatRender; } if (e.Button == ControllerButton.View) { MiniMap = !MiniMap; } if (e.Button == ControllerButton.A) { RenderSprites = !RenderSprites; } if (e.Button == ControllerButton.B) { NoClip = !NoClip; } }
protected override void ControllerButtonPressed(ControllerButtonEventArgs e) { if (e.Button == ControllerButton.X) { _color = Color.DodgerBlue; } else if (e.Button == ControllerButton.B) { _color = Color.LimeGreen; } else if (e.Button == ControllerButton.Y) { _color = Color.Yellow; } else if (e.Button == ControllerButton.A) { _color = Color.OrangeRed; } if (e.Button == ControllerButton.LeftStick) { _mode = ShapeMode.Fill; } else if (e.Button == ControllerButton.RightStick) { _mode = ShapeMode.Stroke; } if (e.Button == ControllerButton.LeftBumper) { _lineThickness -= 1; if (_lineThickness <= 0) { _lineThickness = 1; } } else if (e.Button == ControllerButton.RightBumper) { _lineThickness += 1; } }
protected override void ControllerButtonReleased(ControllerButtonEventArgs e) { switch (e.Button) { case Chroma.Input.ControllerButton.DpadRight: InputBits |= 0b00000001; break; case Chroma.Input.ControllerButton.DpadLeft: InputBits |= 0b00000010; break; case Chroma.Input.ControllerButton.DpadUp: InputBits |= 0b00000100; break; case Chroma.Input.ControllerButton.DpadDown: InputBits |= 0b00001000; break; case Chroma.Input.ControllerButton.A: InputBits |= 0b00010000; break; case Chroma.Input.ControllerButton.B: InputBits |= 0b00100000; break; case Chroma.Input.ControllerButton.View: InputBits |= 0b01000000; break; case Chroma.Input.ControllerButton.Menu: InputBits |= 0b10000000; break; } }
protected override void ControllerButtonReleased(ControllerButtonEventArgs e) { if (e.Controller.PlayerIndex == 0) { switch (e.Button) { case ControllerButton.RightStick: Machine.InputPort1 |= 0b1; break; case ControllerButton.Menu: Machine.InputPort1 &= 0b11111011; break; case ControllerButton.View: Machine.InputPort1 &= 0b11111101; break; case ControllerButton.LeftBumper: UseColor = !UseColor; break; case ControllerButton.RightBumper: UseShader = !UseShader; break; } } if (e.Button == ControllerButton.A) { if ((e.Controller.PlayerIndex == 0 && Controller.DeviceCount > 1) || Controller.DeviceCount == 1) { Machine.InputPort1 &= 0b11101111; } if ((e.Controller.PlayerIndex == 1 && Controller.DeviceCount > 1) || Controller.DeviceCount == 1) { Machine.InputPort2 &= 0b11101111; } } }
protected virtual void ControllerButtonReleased(ControllerButtonEventArgs e) { }
protected virtual void ControllerButtonPressed(ControllerButtonEventArgs e) { }
internal void OnControllerButtonReleased(ControllerButtonEventArgs e) => ControllerButtonReleased(e);
internal void OnControllerButtonPressed(ControllerButtonEventArgs e) => ControllerButtonPressed(e);
protected override void ControllerButtonPressed(ControllerButtonEventArgs e) { switch (e.Button) { case Chroma.Input.ControllerButton.DpadRight: InputBits &= 0b11111110; if ((Gameboy.Memory.RAM[0xFF00] & 0b10000) == 0) { Gameboy.Memory[0xFFFF] |= 0b10000; } break; case Chroma.Input.ControllerButton.DpadLeft: InputBits &= 0b11111101; if ((Gameboy.Memory.RAM[0xFF00] & 0b10000) == 0) { Gameboy.Memory[0xFFFF] |= 0b10000; } break; case Chroma.Input.ControllerButton.DpadUp: InputBits &= 0b11111011; if ((Gameboy.Memory.RAM[0xFF00] & 0b10000) == 0) { Gameboy.Memory[0xFFFF] |= 0b10000; } break; case Chroma.Input.ControllerButton.DpadDown: InputBits &= 0b11110111; if ((Gameboy.Memory.RAM[0xFF00] & 0b10000) == 0) { Gameboy.Memory[0xFFFF] |= 0b10000; } break; case Chroma.Input.ControllerButton.A: InputBits &= 0b11101111; if ((Gameboy.Memory.RAM[0xFF00] & 0b100000) == 0) { Gameboy.Memory[0xFFFF] |= 0b10000; } break; case Chroma.Input.ControllerButton.B: InputBits &= 0b11011111; if ((Gameboy.Memory.RAM[0xFF00] & 0b100000) == 0) { Gameboy.Memory[0xFFFF] |= 0b10000; } break; case Chroma.Input.ControllerButton.View: InputBits &= 0b10111111; if ((Gameboy.Memory.RAM[0xFF00] & 0b100000) == 0) { Gameboy.Memory[0xFFFF] |= 0b10000; } break; case Chroma.Input.ControllerButton.Menu: InputBits &= 0b01111111; if ((Gameboy.Memory.RAM[0xFF00] & 0b100000) == 0) { Gameboy.Memory[0xFFFF] |= 0b10000; } break; } }
protected override void ControllerButtonReleased(ControllerButtonEventArgs e) { _log.Info($"Controller button '{e.Button}' released."); }