Dados do Registro para controladores de jogoRegistry data for game controllers

Observação

Este tópico destina-se aos fabricantes de controladores de jogos compatíveis com o Windows 10 e não se aplica à maioria dos desenvolvedores.This topic is meant for manufacturers of Windows 10-compatible game controllers, and doesn't apply to the majority of developers.

O namespace Windows.Gaming.Input permite que fornecedores independentes de hardware (IHVs) adicionem dados ao Registro do computador, permitindo que seus dispositivos apareçam como Gamepads, RacingWheels, ArcadeSticks, FlightSticks e UINavigationControllers conforme apropriado.The Windows.Gaming.Input namespace allows independent hardware vendors (IHVs) to add data to the PC's registry, enabling their devices to appear as Gamepads, RacingWheels, ArcadeSticks, FlightSticks, and UINavigationControllers as appropriate. Todos os IHVs devem adicionar esses dados aos seus controladores compatíveis.All IHVs should add this data for their compatible controllers. Ao fazer isso, todos os jogos UWP (e jogos da área de trabalho que usam a API do WinRT) poderão dar suporte ao seu controlador de jogo.By doing this, all UWP games (and any desktop games that use the WinRT API) will be able to support your game controller.

Esquema de mapeamentoMapping scheme

Os mapeamentos para um dispositivo com ID de Fornecedor (VID) VVVV, ID do Produto (PID) PPPP, Página de Uso UUUU e ID de Uso XXXX serão lidas partir deste local no Registro:Mappings for a device with Vendor ID (VID) VVVV, Product ID (PID) PPPP, Usage Page UUUU, and Usage ID XXXX, will be read out from this location in the registry:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\VVVVPPPPUUUUXXXX

A tabela a seguir explica os valores esperados no local raiz do dispositivo:The table below explains the expected values under the device root location:

NomeName TypeType Obrigatório?Required? InformaçõesInfo
DesabilitadoDisabled DWORDDWORD NãoNo

Indica que esse dispositivo específico deve ser desabilitado.Indicates that this particular device should be disabled.

  • 0: o dispositivo não está desabilitado.0: Device is not disabled.
  • 1: o dispositivo está desabilitado.1: Device is disabled.
DescriçãoDescription REG_SZREG_SZ NãoNo Uma descrição breve do dispositivo.A short description of the device.

O instalador do seu dispositivo deve adicionar esses dados ao Registro (por meio de configuração ou de um arquivo INF).Your device installer should add this data to the registry (either via setup or an INF file).

As subchaves sob o local raiz do dispositivo são detalhadas nas seções a seguir.Subkeys under the device root location are detailed in the following sections.

GamepadGamepad

A tabela abaixo lista as subchaves necessárias e opcionais sob a subchave Gamepad:The table below lists the required and optional subkeys under the Gamepad subkey:

SubchaveSubkey Necessário?Required? InformaçõesInfo
MenuMenu SimYes Consulte Mapeamento de botõesSee Button mapping
VisualizarView SimYes
UmA SimYes
BB SimYes
XX SimYes
SY SimYes
LeftShoulderLeftShoulder SimYes
RightShoulderRightShoulder SimYes
LeftThumbstickButtonLeftThumbstickButton SimYes
RightThumbstickButtonRightThumbstickButton SimYes
DPadUpDPadUp SimYes
DPadDownDPadDown SimYes
DPadLeftDPadLeft SimYes
DPadRightDPadRight SimYes
Paddle1Paddle1 NãoNo
Paddle2Paddle2 NãoNo
Paddle3Paddle3 NãoNo
Paddle4Paddle4 NãoNo
LeftTriggerLeftTrigger SimYes Consulte Mapeamento de eixosSee Axis mapping
RightTriggerRightTrigger SimYes
LeftThumbstickXLeftThumbstickX SimYes
LeftThumbstickYLeftThumbstickY SimYes
RightThumbstickXRightThumbstickX SimYes
RightThumbstickYRightThumbstickY SimYes

Observação

Se você adicionar seu controlador de jogo como um Gamepad compatível, é altamente recomendável também adicioná-lo como um UINavigationController compatível.If you add your game controller as a supported Gamepad, we highly recommend that you also add it as a supported UINavigationController.

RacingWheelRacingWheel

A tabela abaixo lista as subchaves necessárias e opcionais sob a subchave RacingWheel:The table below lists the required and optional subkeys under the RacingWheel subkey:

SubchaveSubkey Necessário?Required? InformaçõesInfo
PreviousGearPreviousGear SimYes Consulte Mapeamento de botõesSee Button mapping
NextGearNextGear SimYes
DPadUpDPadUp NãoNo
DPadDownDPadDown NãoNo
DPadLeftDPadLeft NãoNo
DPadRightDPadRight NãoNo
Button1Button1 NãoNo
Button2Button2 NãoNo
Button3Button3 NãoNo
Button4Button4 NãoNo
Button5Button5 NãoNo
Button6Button6 NãoNo
Button7Button7 NãoNo
Button8Button8 NãoNo
Button9Button9 NãoNo
Button10Button10 NãoNo
Button11Button11 NãoNo
Button12Button12 NãoNo
Button13Button13 NãoNo
Button14Button14 NãoNo
Button15Button15 NãoNo
Button16Button16 NãoNo
FirstGearFirstGear NãoNo
SecondGearSecondGear NãoNo
ThirdGearThirdGear NãoNo
FourthGearFourthGear NãoNo
FifthGearFifthGear NãoNo
SixthGearSixthGear NãoNo
SeventhGearSeventhGear NãoNo
ReverseGearReverseGear NãoNo
WheelWheel SimYes Consulte Mapeamento de eixosSee Axis mapping
RestriçãoThrottle SimYes
BrakeBrake SimYes
ClutchClutch NãoNo
HandbrakeHandbrake NãoNo
MaxWheelAngleMaxWheelAngle SimYes Consulte Mapeamento de propriedadesSee Properties mapping

ArcadeStickArcadeStick

A tabela abaixo lista as subchaves necessárias e opcionais sob a subchave ArcadeStick:The table below lists the required and optional subkeys under the ArcadeStick subkey:

SubchaveSubkey Necessário?Required? InformaçõesInfo
Action 1Action 1 SimYes Consulte Mapeamento de botõesSee Button mapping
Action2Action2 SimYes
Action3Action3 SimYes
Action4Action4 SimYes
Action5Action5 SimYes
Action6Action6 SimYes
Special1Special1 SimYes
Special2Special2 SimYes
StickUpStickUp SimYes
StickDownStickDown SimYes
StickLeftStickLeft SimYes
StickRightStickRight SimYes

FlightStickFlightStick

A tabela abaixo lista as subchaves necessárias e opcionais sob a subchave FlightStick:The table below lists the required and optional subkeys under the FlightStick subkey:

SubchaveSubkey Necessário?Required? InformaçõesInfo
FirePrimaryFirePrimary SimYes Consulte Mapeamento de botõesSee Button mapping
FireSecondaryFireSecondary SimYes
RollRoll SimYes Consulte Mapeamento de eixosSee Axis mapping
DensidadePitch SimYes
YawYaw SimYes
RestriçãoThrottle SimYes
HatSwitchHatSwitch SimYes Consulte Mapeamento de comutadoresSee Switch mapping

UINavigationUINavigation

A tabela abaixo lista as subchaves necessárias e opcionais sob a subchave UINavigation:The table below lists the required and optional subkeys under UINavigation subkey:

SubchaveSubkey Necessário?Required? InformaçõesInfo
MenuMenu SimYes Consulte Mapeamento de botõesSee Button mapping
VisualizarView SimYes
AceitarAccept SimYes
CancelarCancel SimYes
PrimaryUpPrimaryUp SimYes
PrimaryDownPrimaryDown SimYes
PrimaryLeftPrimaryLeft SimYes
PrimaryRightPrimaryRight SimYes
Context1Context1 NãoNo
Context2Context2 NãoNo
Context3Context3 NãoNo
Context4Context4 NãoNo
PageUpPageUp NãoNo
PageDownPageDown NãoNo
PageLeftPageLeft NãoNo
PageRightPageRight NãoNo
ScrollUpScrollUp NãoNo
ScrollDownScrollDown NãoNo
ScrollLeftScrollLeft NãoNo
ScrollRightScrollRight NãoNo
SecondaryUpSecondaryUp NãoNo
SecondaryDownSecondaryDown NãoNo
SecondaryLeftSecondaryLeft NãoNo
SecondaryRightSecondaryRight NãoNo

Para saber mais sobre os controladores de navegação da interface do usuário e os comandos acima, consulte Controlador de navegação da interface do usuário.For more information about UI navigation controllers and the above commands, see UI navigation controller.

simétricasKeys

As seções a seguir explicam o conteúdo de cada uma das subchaves sob as chaves Gamepad, RacingWheel, ArcadeStick, FlightStick e UINavigation.The following sections explain the contents of each of the subkeys under the Gamepad, RacingWheel, ArcadeStick, FlightStick, and UINavigation keys.

Mapeamento de botõesButton mapping

A tabela a seguir lista os valores que são necessários para mapear um botão.The table below lists the values that are needed to map a button. Por exemplo, se pressionar DPadUp no controlador de jogo, o mapeamento para DPadUp deverá conter o valor ButtonIndex (a Origem é Botão).For example, if pressing DPadUp on the game controller, the mapping for DPadUp should contain the ButtonIndex value (Source is Button). Se DPadUp precisar ser mapeado de uma posição do comutador, o mapeamento de DPadUp deverá conter os valores SwitchIndex e SwitchPosition (a Origem é Comutador).If DPadUp needs to be mapped from a switch position, then the DPadUp mapping should contain the values SwitchIndex and SwitchPosition (Source is Switch).

FonteSource Nome do valorValue name Tipo de valorValue type Necessário?Required? Informações do valorValue info
BotãoButton ButtonIndexButtonIndex DWORDDWORD SimYes Índice na matriz de botões RawGameController.Index in the RawGameController button array.
AxisAxis AxisIndexAxisIndex DWORDDWORD SimYes Índice na matriz de eixos RawGameController.Index in the RawGameController axis array.
InvertInvert DWORDDWORD NãoNo Indica que o valor do eixo deverá ser invertido antes de os fatores ThresholdPercent e DebouncePercent serem aplicados.Indicates that the axis value should be inverted before the Threshold Percent and DebouncePercent factors are applied.
ThresholdPercentThresholdPercent DWORDDWORD SimYes Indica a posição do eixo na qual o valor do botão mapeado faz a transição entre os estados pressionado e liberado.Indicates the axis position at which the mapped button value transitions between the pressed and released states. O intervalo de valores válidos é de 0 a 100.The valid range of values is 0 to 100. O botão é considerado pressionado se o valor do eixo for maior ou igual a esse valor.The button is considered pressed if the axis value is greater than or equal to this value.
DebouncePercentDebouncePercent DWORDDWORD SimYes

Define o tamanho de uma janela em torno do valor ThresholdPercent, que é usado para enumerar o estado do botão relatado.Defines the size of a window around the ThresholdPercent value, which is used to debounce the reported button state. O intervalo de valores válidos é de 0 a 100.The valid range of values is 0 to 100. As transições de estado do botão só podem ocorrer quando o valor do eixo ultrapassa o limite superior ou inferior da janela de enumeração.Button state transitions can only occur when the axis value crosses the upper or lower boundaries of the debounce window. Por exemplo, um ThresholdPercent de 50 e DebouncePercent de 10 resultam nos limites de enumeração em 45% e 55% dos valores de eixo do intervalo inteiro.For example, a ThresholdPercent of 50 and DebouncePercent of 10 results in debounce boundaries at 45% and 55% of the full-range axis values. O botão não pode fazer a transição para o estado pressionado até o valor do eixo atingir 55% ou mais e não pode voltar ao estado liberado até o valor do eixo atingir 45% ou menos.The button can't transition to the pressed state until the axis value reaches 55% or above, and it can't transition back to the released state until the axis value reaches 45% or below.

Os limites da janela de enumeração computados são vinculados entre 0% e 100%.The computed debounce window boundaries are clamped between 0% and 100%. Por exemplo, um limite de 5% e uma janela de enumeração de 20% resultariam na queda dos limites da janela de enumeração para 0% e 15%.For example, a threshold of 5% and a debounce window of 20% would result in the debounce window boundaries falling at 0% and 15%. O estado do botão para os valores de eixo de 0% e 100% sempre é relatado como liberado e pressionado, respectivamente, independentemente dos valores de limite e enumeração.The button state for axis values of 0% and 100% are always reported as released and pressed, respectively, regardless of the threshold and debounce values.

ComutadorSwitch SwitchIndexSwitchIndex DWORDDWORD SimYes Índice na matriz de comutadores RawGameController.Index in the RawGameController switch array.
SwitchPositionSwitchPosition REG_SZREG_SZ SimYes

Indica a posição do comutador que fará com que o botão mapeado relate que está sendo pressionado.Indicates the switch position that will cause the mapped button to report that it's being pressed. Os valores de posição podem ser uma destas cadeias de caracteres:The position values can be one of these strings:

  • UpUp
  • UpRightUpRight
  • DireitaRight
  • DownRightDownRight
  • DownDown
  • DownLeftDownLeft
  • EsquerdaLeft
  • UpLeftUpLeft
IncludeAdjacentIncludeAdjacent DWORDDWORD NãoNo Indica que as posições do comutador adjacentes também farão com que o botão mapeado relate que está sendo pressionado.Indicates that adjacent switch positions will also cause the mapped button to report that it's being pressed.

Mapeamento de eixosAxis mapping

A tabela a seguir lista os valores que são necessários para mapear um eixo:The table below lists the values that are needed to map an axis:

FonteSource Nome do valorValue name Tipo de valorValue type Necessário?Required? Informações do valorValue info
BotãoButton MaxValueButtonIndexMaxValueButtonIndex DWORDDWORD SimYes

Índice na matriz de botões RawGameController que é convertido no valor do eixo unidirecional mapeado.Index in the RawGameController button array which gets translated to the mapped unidirectional axis value.

MaxButtonMaxButton AxisValueAxisValue
FALSEFALSE 0,00.0
TRUETRUE 1.01.0
MinValueButtonIndexMinValueButtonIndex DWORDDWORD NãoNo

Indica que o eixo mapeado é bidirecional.Indicates that the mapped axis is bidirectional. Os valores de MaxButton e MinButton são combinados em um eixo único bidirecional, conforme mostrado abaixo.Values of MaxButton and MinButton are combined into a single bidirectional axis as shown below.

MinButtonMinButton MaxButtonMaxButton AxisValueAxisValue
FALSEFALSE FALSEFALSE 0,50.5
FALSEFALSE TRUETRUE 1.01.0
TRUETRUE FALSEFALSE 0,00.0
TRUETRUE TRUETRUE 0,50.5
AxisAxis AxisIndexAxisIndex DWORDDWORD SimYes Índice na matriz de eixos RawGameController.Index in the RawGameController axis array.
InvertInvert DWORDDWORD NãoNo Indica que o valor do eixo mapeado deverá ser invertido antes de ser retornado.Indicates that the mapped axis value should be inverted before it's returned.
ComutadorSwitch SwitchIndexSwitchIndex DWORDDWORD SimYes Índice na matriz de comutadores RawGameController.Index in the RawGameController switch array.
MaxValueSwitchPositionMaxValueSwitchPosition REG_SZREG_SZ SimYes

Uma das cadeias de caracteres a seguir:One of the following strings:

  • UpUp
  • UpRightUpRight
  • DireitaRight
  • DownRightDownRight
  • DownDown
  • DownLeftDownLeft
  • EsquerdaLeft
  • UpLeftUpLeft

Isso indica a posição do comutador que faz com que o valor do eixo mapeado seja relatados como 1.0.It indicates the position of the switch that causes the mapped axis value to be reported as 1.0. A direção oposta de MaxValueSwitchPosition é tratado como 0.0.The opposing direction of MaxValueSwitchPosition is treated as 0.0. Por exemplo, se MaxValueSwitchPosition for Up, a conversão do valor do eixo é mostrada abaixo:For example, if MaxValueSwitchPosition is Up, the axis value translation is shown below:

Posição do comutadorSwitch position AxisValueAxisValue
UpUp 1.01.0
CentroCenter 0,50.5
DownDown 0,00.0
IncludeAdjacentIncludeAdjacent DWORDDWORD NãoNo

Indica que as posições do comutador adjacentes também farão com que o eixo mapeado relate 1.0.Indicates that adjacent switch positions will also cause the mapped axis to report 1.0. No exemplo acima, se IncludeAdjacent for definido, a conversão do eixo será feita da seguinte maneira:In the above example, if IncludeAdjacent is set, then the axis translation is done as follows:

Posição do comutadorSwitch position AxisValueAxisValue
UpUp 1.01.0
UpRightUpRight 1.01.0
UpLeftUpLeft 1.01.0
CentroCenter 0,50.5
DownDown 0,00.0
DownRightDownRight 0,00.0
DownLeftDownLeft 0,00.0

Mapeamento de comutadoresSwitch mapping

As posições do comutador podem ser mapeadas a partir de um conjunto de botões na matriz de botões do RawGameController ou de um índice na matriz de comutadores.Switch positions can be mapped either from a set of buttons in the buttons array of the RawGameController or from an index in the switches array. As posições dos comutadores não podem ser mapeadas a partir dos eixos.Switch positions can't be mapped from axes.

FonteSource Nome do valorValue name Tipo de valorValue type Informações do valorValue info
BotãoButton ButtonCountButtonCount DWORDDWORD 2, 4 ou 82, 4, or 8
SwitchKindSwitchKind REG_SZREG_SZ TwoWay, FourWayou EightWay TwoWay, FourWay, or EightWay
UpButtonIndexUpButtonIndex DWORDDWORD Consulte \*Valores de ButtonIndexSee \*ButtonIndex values
DownButtonIndexDownButtonIndex DWORDDWORD
LeftButtonIndexLeftButtonIndex DWORDDWORD
RightButtonIndexRightButtonIndex DWORDDWORD
UpRightButtonIndexUpRightButtonIndex DWORDDWORD
DownRightButtonIndexDownRightButtonIndex DWORDDWORD
DownLeftButtonIndexDownLeftButtonIndex DWORDDWORD
UpLeftButtonIndexUpLeftButtonIndex DWORDDWORD
AxisAxis SwitchKindSwitchKind REG_SZREG_SZ TwoWay, FourWay ou EightWayTwoWay, FourWay, or EightWay
XAxisIndexXAxisIndex DWORDDWORD YAxisIndex está sempre presente.YAxisIndex is always present. XAxisIndex só estará presente quando SwitchKind for FourWay ou EightWay.XAxisIndex is only present when SwitchKind is FourWay or EightWay.
YAxisIndexYAxisIndex DWORDDWORD
XDeadZonePercentXDeadZonePercent DWORDDWORD Indica o tamanho da zona morta ao redor da posição central dos eixos.Indicate the size of the dead zone around the center position of the axes.
YDeadZonePercentYDeadZonePercent DWORDDWORD
XDebouncePercentXDebouncePercent DWORDDWORD Defina o tamanho das janelas ao redor dos limites superior e inferior da zona morta, que são usados para enumerar o estado relatado do comutador.Define the size of the windows around the upper and lower dead zone limits, which are used to de-bounce the reported switch state.
YDebouncePercentYDebouncePercent DWORDDWORD
XInvertXInvert DWORDDWORD Indica que os valores dos eixos correspondentes devem ser invertidos antes de os cálculos da zona morta e da janela de enumeração serem aplicados.Indicate that the corresponding axis values should be inverted before the dead zone and debounce window calculations are applied.
YInvertYInvert DWORDDWORD
ComutadorSwitch SwitchIndexSwitchIndex DWORDDWORD Índice na matriz de comutadores RawGameController.Index in the RawGameController switch array.
InvertInvert DWORDDWORD Indica que o comutador relata suas posições na ordem no sentido anti-horário, em vez da ordem no sentido horário padrão.Indicates that the switch reports its positions in a counter-clockwise order, rather than the default clockwise order.
PositionBiasPositionBias DWORDDWORD

Muda o ponto de partida de como posições são relatadas pelo valor especificado.Shifts the starting point of how positions are reported by the specified amount. PositionBias é sempre contabilizado no sentido horário do ponto de partida original e é aplicado antes que a ordem dos valores seja invertida.PositionBias is always counted clockwise from the original starting point, and is applied before the order of values is reversed.

Por exemplo, um comutador que relata posições a partir de DownRight no sentido anti-horário pode ser normalizado definindo o sinalizador Invert e especificando um PositionBias de 5:For example, a switch that reports positions starting with DownRight in counter-clockwise order can be normalized by setting the Invert flag and specifying a PositionBias of 5:

PosiçãoPosition Valor relatadoReported value Após os sinalizadores PositionBias e InvertAfter PositionBias and Invert flags
DownRightDownRight 00 33
DireitaRight 11 22
UpRightUpRight 22 11
UpUp 33 00
UpLeftUpLeft 44 77
EsquerdaLeft 55 66
DownLeftDownLeft 66 55
DownDown 77 44

*Valores de ButtonIndex*ButtonIndex values

*Os valores de ButtonIndex são indexados na matriz de botões do RawGameController:*ButtonIndex values index into the RawGameController's button array:

ButtonCountButtonCount SwitchKindSwitchKind RequiredMappingsRequiredMappings
22 TwoWayTwoWay
  • UpButtonIndexUpButtonIndex
  • DownButtonIndexDownButtonIndex
44 FourWayFourWay
  • UpButtonIndexUpButtonIndex
  • DownButtonIndexDownButtonIndex
  • LeftButtonIndexLeftButtonIndex
  • RightButtonIndexRightButtonIndex
44 EightWayEightWay
  • UpButtonIndexUpButtonIndex
  • DownButtonIndexDownButtonIndex
  • LeftButtonIndexLeftButtonIndex
  • RightButtonIndexRightButtonIndex
88 EightWayEightWay
  • UpButtonIndexUpButtonIndex
  • DownButtonIndexDownButtonIndex
  • LeftButtonIndexLeftButtonIndex
  • RightButtonIndexRightButtonIndex
  • UpRightButtonIndexUpRightButtonIndex
  • DownRightButtonIndexDownRightButtonIndex
  • DownLeftButtonIndexDownLeftButtonIndex
  • UpLeftButtonIndexUpLeftButtonIndex

Mapeamento de propriedadesProperties mapping

Estes são os valores de mapeamento estático para diferentes tipos de mapeamento.These are static mapping values for different mapping types.

MapeamentoMapping Nome do valorValue name Tipo de valorValue type Informações do valorValue info
RacingWheelRacingWheel MaxWheelAngleMaxWheelAngle DWORDDWORD Indica o ângulo máximo da roda física aceito pela roda em uma única direção.Indicates the maximum physical wheel angle supported by the wheel in a single direction. Por exemplo, uma roda com uma rotação possível de -90 graus a 90 graus especificaria 90.For example, a wheel with a possible rotation of -90 degrees to 90 degrees would specify 90.

RótulosLabels

Rótulos devem estar presentes sob a chave Labels na raiz do dispositivo.Labels should be present under the Labels key under the device root. Labels pode ter 3 subchaves: Buttons, Axes e Switches.Labels can have 3 subkeys: Buttons, Axes, and Switches.

Rótulos de botãoButton labels

A chave Buttons mapeia cada uma das posições dos botões na matriz de botões do RawGameController para uma cadeia de caracteres.The Buttons key maps each of the button positions in the RawGameController's buttons array to a string. Cada cadeia de caracteres é mapeada internamente para o valor de enumeração GameControllerButtonLabel correspondente.Each string is mapped internally to the corresponding GameControllerButtonLabel enum value. Por exemplo, se um gamepad tiver dez botões, a ordem em que o RawGameController analisa os botões e os apresenta no relatório de botões será esta:For example, if a gamepad has ten buttons and the order in which the RawGameController parses out the buttons and presents them in the buttons report is like this:

Menu,               // Index 0
View,               // Index 1
LeftStickButton,    // Index 2
RightStickButton,   // Index 3
LetterA,            // Index 4
LetterB,            // Index 5
LetterX,            // Index 6
LetterY,            // Index 7
LeftBumper,         // Index 8
RightBumper         // Index 9

Os rótulos devem aparecer nesta ordem sob a chave Buttons:The labels should appear in this order under the Buttons key:

NomeName Valor (tipo: REG_SZ)Value (type: REG_SZ)
Button0Button0 MenuMenu
Button1Button1 VisualizarView
Button2Button2 LeftStickButtonLeftStickButton
Button3Button3 RightStickButtonRightStickButton
Button4Button4 LetterALetterA
Button5Button5 LetterBLetterB
Button6Button6 LetterXLetterX
Button7Button7 LetterYLetterY
Button8Button8 LeftBumperLeftBumper
Button9Button9 RightBumperRightBumper

Rótulos de eixoAxis labels

A chave Axes mapeará cada uma das posições do eixo na matriz de eixos do RawGameController para um dos rótulos listados no enumerador GameControllerButtonLabel assim como os rótulos de botão.The Axes key will map each of the axis positions in the RawGameController's axis array to one of the labels listed in GameControllerButtonLabel Enum just like the button labels. Consulte o exemplo em Rótulos de botão.See the example in Button labels.

Rótulos de comutadorSwitch labels

A chave Switches mapeia as posições do comutador para rótulos.The Switches key maps switch positions to labels. Os valores seguem esta convenção de nomenclatura: para rotular uma posição de um comutador, cujo índice é x na matriz de comutadores do RawGameController, adicione estes valores na subchave Switches:The values follow this naming convention: to label a position of a switch, whose index is x in the RawGameController's switch array, add these values under the Switches subkey:

  • SwitchxUpSwitchxUp
  • SwitchxUpRightSwitchxUpRight
  • SwitchxRightSwitchxRight
  • SwitchxDownRightSwitchxDownRight
  • SwitchxDownSwitchxDown
  • SwitchxDownLeftSwitchxDownLeft
  • SwitchxUpLeftSwitchxUpLeft
  • SwitchxLeftSwitchxLeft

A tabela a seguir mostra um conjunto de exemplo de rótulos para posições de um comutador de 4 direções que aparece no índice 0 no RawGameController:The following table shows an example set of labels for switch positions of a 4-way switch which shows up at index 0 in the RawGameController:

NomeName Valor (tipo: REG_SZ)Value (type: REG_SZ)
Switch0UpSwitch0Up XboxUpXboxUp
Switch0RightSwitch0Right XboxRightXboxRight
Switch0DownSwitch0Down XboxDownXboxDown
Switch0LeftSwitch0Left XboxLeftXboxLeft

Exemplo de um arquivo do RegistroExample registry file

Para mostrar como todos esses mapeamentos e valores se encaixam, aqui está um exemplo de arquivo do Registro para uma RacingWheel genérica:To show how all of these mappings and values come together, here is an example registry file for a generic RacingWheel:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004]
"Description" = "Example Wheel Device"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\Labels\Buttons]
"Button0" = "LetterA"
"Button1" = "LetterB"
"Button2" = "LetterX"
"Button3" = "LetterY"
"Button6" = "Menu"
"Button7" = "View"
"Button8" = "RightStickButton"
"Button9" = "LeftStickButton"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\Labels\Switches]
"Switch0Down" = "Down"
"Switch0Left" = "Left"
"Switch0Right" = "Right"
"Switch0Up" = "Up"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel]
"MaxWheelAngle" = dword:000001c2

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Brake]
"AxisIndex" = dword:00000002
"Invert" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button1]
"ButtonIndex" = dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button2]
"ButtonIndex" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button3]
"ButtonIndex" = dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button4]
"ButtonIndex" = dword:00000003

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button5]
"ButtonIndex" = dword:00000009

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button6]
"ButtonIndex" = dword:00000008

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button7]
"ButtonIndex" = dword:00000007

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button8]
"ButtonIndex" = dword:00000006

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Clutch]
"AxisIndex" = dword:00000003
"Invert" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadDown]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Down"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadLeft]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Left"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadRight]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Right"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadUp]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Up"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FifthGear]
"ButtonIndex" = dword:00000010

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FirstGear]
"ButtonIndex" = dword:0000000c

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FourthGear]
"ButtonIndex" = dword:0000000f

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\NextGear]
"ButtonIndex" = dword:00000004

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\PreviousGear]
"ButtonIndex" = dword:00000005

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\ReverseGear]
"ButtonIndex" = dword:0000000b

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\SecondGear]
"ButtonIndex" = dword:0000000d

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\SixthGear]
"ButtonIndex" = dword:00000011

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\ThirdGear]
"ButtonIndex" = dword:0000000e

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Throttle]
"AxisIndex" = dword:00000001
"Invert" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Wheel]
"AxisIndex" = dword:00000000
"Invert" = dword:00000000

Veja tambémSee also