Os desenvolvedores da CodeWeavers, em parceria com a Valve, estão trabalhando em melhorias significativas para o suporte a dispositivos de entrada no Proton, plataforma que facilita a execução de jogos do Windows no Linux. Esses esforços são particularmente focados em dispositivos que originalmente não foram projetados para suportar o Linux, como controles de jogos, mouses, teclados e telas sensíveis ao toque.
Durante a Conferência de Desenvolvedores X.Org (XDC 2024), Arek Hiler, que atua como “janitor” do Proton na CodeWeavers, discutiu os desafios enfrentados e os planos para aprimorar o suporte a esses dispositivos. Ele destacou como o novo driver Wayland do Wine está melhorando a compatibilidade, além de mencionar a introdução do ioctl HIDIOCREVOKE no Linux 6.12, que traz benefícios importantes ao gerenciamento de dispositivos.
Suporte aprimorado para gamepads e outros dispositivos de entrada
Um dos grandes avanços está relacionado ao suporte de gamepads, com a utilização de bibliotecas como SDL e evdev, que facilitam o mapeamento de controles. A SDL, por exemplo, permite a normalização de diferentes modelos de gamepads, enquanto o evdev oferece um acesso mais direto aos dispositivos expostos pelo Linux. Para dispositivos mais complexos, como o PS5 DualSense, que utiliza modos avançados de operação, a CodeWeavers está desenvolvendo métodos para lidar com relatórios de entrada que diferem conforme o tipo de conexão — seja por USB ou Bluetooth.
Além disso, foram feitas melhorias nos dispositivos de entrada humana (HID) em geral, com o objetivo de oferecer uma experiência mais fluida em jogos, tanto para dispositivos USB quanto Bluetooth. Hiler mencionou que a normalização interna de todos os dispositivos HID para as APIs do Wine ajuda a tornar esses dispositivos mais compatíveis com jogos projetados para o Windows.
Próximos passos e colaboração
O trabalho contínuo da CodeWeavers inclui a colaboração com a comunidade udev para marcar corretamente os controladores de jogos como ID_GAME_CONTROLLER, tanto em upstream quanto por regras específicas de usuários. Além disso, com o Linux 6.12, o ioctl HIDIOCREVOKE oferece uma nova maneira de gerenciar permissões de dispositivos de entrada, permitindo um suporte mais seguro e eficiente.
Para os entusiastas do Linux que utilizam o Proton para rodar jogos do Windows, essas melhorias são fundamentais para garantir uma experiência de jogo cada vez mais fluida, aproximando o suporte de dispositivos no Linux ao nível visto no Windows.