<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "GameController",
  "identifier" : "/documentation/GameController/GCMicroGamepad",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Game Controller"
    ],
    "preciseIdentifier" : "c:objc(cs)GCMicroGamepad"
  },
  "title" : "GCMicroGamepad"
}
-->

# GCMicroGamepad

A controller profile that supports the Siri Remote.

```
class GCMicroGamepad
```

## Overview

The micro gamepad controller profile supports the following input elements:

- Two digital face buttons (A and X).
- One analog directional pad (D-pad) that functions as a touchpad.

Users can rotate game controllers that support the micro gamepad profile, switching them between landscape and portrait orientation. If you want to get directional values according to the orientation, set the [`allowsRotation`](/documentation/GameController/GCMicroGamepad/allowsRotation) property to <doc://com.apple.documentation/documentation/Swift/true>.

![An illustration of a Siri Remote with callouts for the digital face buttons, the Button menu, and the analog directional pad.](images/com.apple.gamecontroller/media-3830807@2x.png)

## Topics

### Getting the controller

[`controller`](/documentation/GameController/GCMicroGamepad/controller)

The controller associated with this profile.

### Receiving a callback when input values change

[`valueChangedHandler`](/documentation/GameController/GCMicroGamepad/valueChangedHandler)

The block that this profile calls when an element’s value changes.

[`GCMicroGamepadValueChangedHandler`](/documentation/GameController/GCMicroGamepadValueChangedHandler)

Signature for the block that this profile calls when an element’s value changes.

### Getting face button inputs

[`buttonMenu`](/documentation/GameController/GCMicroGamepad/buttonMenu)

The menu face button that players use to enter the main menu and pause the game.

[`buttonA`](/documentation/GameController/GCMicroGamepad/buttonA)

The button that the user activates by pressing harder on the touchpad.

[`buttonX`](/documentation/GameController/GCMicroGamepad/buttonX)

The second face button element.

### Getting directional pad inputs

[`dpad`](/documentation/GameController/GCMicroGamepad/dpad)

The controller’s directional pad element.

[`reportsAbsoluteDpadValues`](/documentation/GameController/GCMicroGamepad/reportsAbsoluteDpadValues)

A Boolean value that indicates whether the directional pad reports absolute or relative values.

[`allowsRotation`](/documentation/GameController/GCMicroGamepad/allowsRotation)

A Boolean value that indicates whether the profile reports the directional pad values relative to its current orientation.

### Accessing elements by name

[Micro gamepad input names](/documentation/GameController/micro-gamepad-input-names)

Constants for names of micro gamepad elements.

### Setting snapshot avlues

[`setStateFrom(_:)`](/documentation/GameController/GCMicroGamepad/setStateFrom(_:))

Copies the input values from a specified micro gamepad to a snapshot of a micro gamepad.

[`saveSnapshot()`](/documentation/GameController/GCMicroGamepad/saveSnapshot())

Saves a snapshot of all of the profile’s elements.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)