La version estable de Wine 7.0 ya fue liberada y estas son sus novedades
Luego de un año de desarrollo y 30 versiones experimentales, se presentó la nueva versión estable de la implementación abierta de la API Win32 Wine 7.0 en la cual se han implementado cerca de 9100 cambios.
Entre los logros clave de la nueva versión se encuentran la traducción de la mayoría de los módulos de Wine en formato PE, soporte para temas, la expansión de la pila para joysticks y dispositivos de entrada con la interfaz HID, la implementación de la arquitectura WoW64 para ejecutar programas de 32 bits en un entorno de 64 bits.
Principales novedades de Wine 7.0
En esta nueva versión casi todas las DLL se han convertido para usar el formato de archivo ejecutable PE (Portable Executable) en lugar de ELF. El uso de PE resuelve problemas con el apoyo de varios esquemas de protección contra copias que verifican la identidad de los módulos del sistema en el disco y en la memoria.
Ademas de ello los módulos PE pueden interactuar con las bibliotecas de Unix utilizando la llamada estándar del sistema del kernel de NT, lo que hace posible ocultar el acceso al código de Unix de los depuradores de Windows y monitorear el registro de subprocesos.
Las DLL integradas ahora se cargan solo si hay un archivo PE correspondiente en el disco, independientemente de si se trata de una biblioteca real o de un código auxiliar. Este cambio permite que la aplicación siempre vea el enlace correcto a los archivos PE. Puede usar la variable de entorno WINEBOOTSTRAPMODE para deshabilitar este comportamiento.
Ademas de ello se ha implementado la arquitectura WoW64, que permite ejecutar aplicaciones Windows de 32 bits en procesos Unix de 64 bits. El soporte se implementa a través de la conexión de una capa que traduce las llamadas al sistema NT de 32 bits en llamadas de 64 bits a NTDLL.
Se agregó una nueva biblioteca Win32u, que incluye partes de las bibliotecas GDI32 y USER32 relacionadas con el procesamiento de gráficos y la administración de ventanas a nivel de kernel. En el futuro, se comenzará a trabajar en la migración de componentes del controlador como winex11.drv y winemac.drv a Win32u.
Por otra parte, se destaca el nuevo motor de renderizado (que traduce las llamadas de Direct3D a la API de gráficos de Vulkan) que fue significativamente mejorado. En la mayoría de las situaciones, el nivel de compatibilidad con Direct3D 10 y 11 en el motor basado en Vulkan se ha equiparado con el antiguo motor basado en OpenGL. Para habilitar el motor de renderizado a través de Vulkan, establezca la variable de registro «renderer» de Direct3D en «vulkan».
Se han implementado muchas características de Direct3D 10 y 11, incluidos contextos diferidos, objetos de estado que se ejecutan en contextos de dispositivos, compensaciones constantes en búferes, limpieza de representaciones de textura desordenadas, copia de datos entre recursos en formatos sin tipo.
Tambien se destaca que se agregó soporte para configuraciones de múltiples monitores, lo que permite seleccionar un monitor para mostrar una aplicación Direct3D en modo de pantalla completa. En el código de representación a través de la API de Vulkan, la eficiencia del procesamiento de consultas se ha mejorado si la extensión VK_EXT_host_query_reset es compatible con el sistema.
Se agregó la capacidad de mostrar framebuffers virtuales (SwapChain) a través de GDI, si OpenGL o Vulkan no se pueden usar para la visualización, por ejemplo, cuando se exporta a una ventana desde diferentes procesos, por ejemplo, en programas basados en el marco CEF (Chromium Embedded Framework).
Se agregaron las tarjetas AMD Radeon RX 5500M, 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 y NVIDIA GT 1030 a la base de tarjetas gráficas Direct3D.
La clave «UseGLSL» se eliminó del registro HKEY_CURRENT_USER\Software\Wine\Direct3D, en lugar de usar «shader_backend» a partir de Wine 5.0.
Se continuó con la implementación del marco Media Foundation, se agregó soporte para la funcionalidad IMFPMediaPlayer, el asignador de muestras, se mejoró el soporte para los búferes de representación EVR y SAR.
Se eliminó la biblioteca wineqtdecoder que proporciona un decodificador para el formato QuickTime (ahora se usa GStreamer para todos los códecs)
De los demás cambios que se destacan:
- Se agregó un nuevo backend DirectInput para joysticks que admiten el protocolo HID.
- Se implementó la capacidad de usar efectos de retroalimentación en los joysticks.
- Panel de control de joystick mejorado.
- Interacción optimizada con dispositivos compatibles con XInput.
- WinMM movió la compatibilidad con joystick a DInput en lugar de usar el backend evdev en Linux e IOHID en macOS IOHID.
- Se eliminó el antiguo controlador de joystick winejoystick.drv.
- Se han agregado nuevas pruebas al módulo DInput basadas en el uso de dispositivos HID virtuales y no requieren un dispositivo físico.
- El runtime de C implementa un conjunto completo de funciones matemáticas, que se transfiere principalmente de la biblioteca Musl.
- Todas las plataformas de CPU brindan soporte correcto para funciones de punto flotante.
- Se agregó soporte para el protocolo DTLS.
- Se ha implementado el servicio NSI (Network Store Interface) que almacena y transmite a otros servicios información sobre enrutamiento e interfaces de red en una computadora.
- Los controladores de la API de WinSock, como setsockopt y getsockopt, se han movido a la biblioteca NTDLL y al controlador afd.sys para que coincidan con la arquitectura de Windows.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
¿Como instalar Wine 7.0 en Ubuntu y derivados?
Para quienes estén interesados en poder instalar esta nueva versión de Wine, basta con que abran una terminal y en ella van a teclear los siguientes comandos:
-
sudo apt install libgnutls30:i386 libgpg-error0:i386 libxml2:i386 libasound2-plugins:i386 libsdl2-2.0-0:i386 libfreetype6:i386 libdbus-1-3:i386 libsqlite3-0:i386
-
sudo dpkg --add-architecture i386 wget -nc https://dl.winehq.org/wine-builds/winehq.key && sudo apt-key add winehq.key
-
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ '$(lsb_release -cs)' main'
-
sudo apt install --install-recommends winehq-stable