Tabela de conteúdos
hid_devices.cfg
Neste arquivo está definido quais joysticks o console suporta e o mapeamento dos botões e eixos.
É possível editar este arquivo e adicionar novos controles. No entanto, ele é armazenado em uma pasta onde o recurso de Memory Copy do EMAPPLET não acessa, portanto é necessário acesso via USB ou usar o Zeebo Utils para copia-lo de um cartão SD.
Existe uma cópia deste arquivo dentro do próprio BREW. Caso ele não esteja presente na pasta correta (fs:/sys/), o BREW “emula” o acesso redirecionando para a cópia interna. Se colocarmos o arquivo real na pasta, ele passa a utilizá-lo.
Para referência, o arquivo original está na área de Downloads.
Joysticks suportados nativamente
Os dispositivos suportados são identificados pelos seus pares VID:PID (Vendor ID:Product ID) USB. Você pode verificar se um joystick funciona nativamente se ele tiver um VID:PID que esteja nesta tabela.
Nome | VID:PID |
---|---|
Logitech Dual Action | 0x046D:0xC216 |
Logitech RumblePad2 | 0x046D:0xC218 |
Logitech Cordless RumblePad2 | 0x046D:0xC219 |
XBox360 Controller | 0x045E:0x028E |
Zeebo Game Controller | 0x1A5C:0x3033 |
Zeebo Accelerometer Controller | 0x15A2:0x0003 |
Genius | 0x0583:0xA009 |
Gamer | 0x0E8F:0x0003 |
New Zeebo Game Controller | 0x1EAA:0x0135 |
Joysticks extras
Estes são os joysticks/dispositivos que foram adicionados e mapeados pela comunidade:
Nome | VID:PID |
---|---|
Sony DualShock 4 CUH-ZCT1x | 0x054C:0x05C4 |
Sony DualShock 4 CUH-ZCT2x | 0x054C:0x09CC |
Observação: em alguns títulos, como nos que utilizam o emulador da Onan, alguns comandos estão incorretos para os DualShock. Provavelmente com algum ajuste fique 100%!
O arquivo atualizado com estes dispositivos extras estão na área de Downloads.
Informações de mapeamento
Extraído do SDK do Zeebo.
/*============================================================================= CONFIGURATION FILE EXAMPLE =============================================================================== The configuration file, hid_devices.cfg, is responsible for giving an UID to each button press. I.e., whenever pressing a button, if this button has an hexadecimal code assigned in this file, this value will be returned as the button's UID. The default mapping can be seen on AEEHIDDevice_Joystick.h, although not every button listed on this file is available on Zeebo. The mapping is repeated below for easier understanding. # Zeebo's Mapping: # # BUTTON 1: 0x0106C40B (AEEUID_HIDJoystick_Button_2) # BUTTON 2: 0x0106C40C (AEEUID_HIDJoystick_Button_3) # BUTTON 3: 0x0106C40D (AEEUID_HIDJoystick_Button_4) # BUTTON 4: 0x0106C40A (AEEUID_HIDJoystick_Button_1) # BUTTON ZL: 0x0106C406 (AEEUID_HIDJoystick_Left_Shoulder_Upper) # BUTTON ZR: 0x0106C408 (AEEUID_HIDJoystick_Right_Shoulder_Upper) # HOME: 0x0106C402 (AEEUID_HIDJoystick_Start) # DPAD UP: 0x0106C3FE (AEEUID_HIDJoystick_DPad_Up) # DPAD LEFT: 0x0106C3FF (AEEUID_HIDJoystick_DPad_Left) # DPAD DOWN: 0x0106C400 (AEEUID_HIDJoystick_DPad_Down) # DPAD RIGHT: 0x0106C401 (AEEUID_HIDJoystick_DPad_Right) # LEFT ANALOG X: 0x0106C4D0 (AEEUID_HIDJoystick_LeftThumb_X) # LEFT ANALOG Y: 0x0106C4D1 (AEEUID_HIDJoystick_LeftThumb_Y) # RIGHT ANALOG X: 0x0106C4CE (AEEUID_HIDJoystick_RightThumb_X) # RIGHT ANALOG Y: 0x0106C4CF (AEEUID_HIDJoystick_RightThumb_Y) A real life example, using the standard joystick (Logitech Dual Action) mapping, would be: #Version string to indicate the format of the file VERSION:1 # Logitech Dual Action (control name) # (vendor id and product id) VID:0x046D:PID:0xC216 # (button : button number : uid) BUTTON:0:0x0106C40A BUTTON:1:0x0106C40B BUTTON:2:0x0106C40C BUTTON:3:0x0106C40D BUTTON:4:0x0106C406 BUTTON:5:0x0106C408 BUTTON:6:0x0106C407 BUTTON:7:0x0106C409 BUTTON:8:0x0106C403 BUTTON:9:0x0106C402 BUTTON:10:0x0106C404 BUTTON:11:0x0106C405 # (axis : axis name : uid) AXIS:X:0x0106C4D0 AXIS:Y:0x0106C4D1 AXIS:Z:0x0106C4CE AXIS:RZ:0x0106C4CF Note that the DPAD buttons don't need to be included in this file, as they are always mapped to the expected values. Also, some extra buttons are mapped here, even though they cannot be used on Zeebo games. =============================================================================== */
Uma forma mais fácil de interpretar e fazer este mapeamento estará disponível no Zeebo Utils futuramente!
Observações
A capacidade total das portas USB do Zeebo é de aproximadamente 1500 mA. Ou seja, a soma do consumo de todas as 3 portas não pode ultrapassar este limite! Caso aconteça, os joysticks poderão não funcionar corretamente e/ou o Zeebo irá se comportar estranhamente ou reiniciar.
Por exemplo, um DualShock4 CUH-ZCT2x é especificado em 800 mA, portanto 2 destes com a bateria vazia em um Zeebo já ultrapassa o limite (o DualShock4 tenta carregar a bateria interna, por isso o consumo alto). É possível contornar esta limitação fazendo uma modificação na placa base do Zeebo ou utilizando um hub USB com alimentação externa (mais seguro).
No entanto, por limites de memória interna do BREW, dependendo de quais e quantos controles são ligados no console, instabilidades e reboots podem ocorrer. Por exemplo, ao ligar dois ou mais DS4, devido ao tamanho dos descritores USB/HID informados, a área na RAM reservada pelo BREW para estes fins se esgota, causando reboots. Portanto 1 DS4 + 1 Z-Dragon é seguro pois não extrapola esta memória.
Um patch está sendo desenvolvido para permitir que 2 DS4 sejam utilizados.
Instalando um hid_devices.cfg novo
Caso tenha acesso via porta USB, basta copiar o arquivo para fs:/sys/.
Já através do Zeebo Utils, copie o arquivo para a raiz de um cartão SD (o arquivo precisa se chamar hid_devices.cfg) e rode o ZeeUtils. De lá, ele te mostrará como fazer a cópia e colocará o arquivo no local correto. Basta reiniciar o console para que o novo arquivo seja utilizado pelo Zeebo.