Hey! This post is also in English!

Este post está parcialmente basado en la guía de Katoumegumi en Arch Wiki.

Porqué me he cambiado a Linux

Simplemente me rendí de los constantes bloqueos de Windows, así que decidí volver a Linux. En mi experiencia, ha sido más estable que el sistema operativo de Microsoft, dejándome sin poder arrancar mi máquina solo una vez (el kernel de Linux se destruyó por alguna razón al actualizar).

Instalación

Instalación de Wine

Primero, necesitamos instalar Wine y Winetricks:

sudo pacman -S wine
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sudo mv ./winetricks /usr/local/bin/winetricks

Preparación del wineprefix

Ahora necesitamos instalar dependencias como fuentes o dotnet para que osu! funcione correctamente:

WINEARCH=win32 WINEPREFIX=~/.wineosu winetricks dotnet40 dotnet45 cjkfonts gdiplus

(actualización 19/12/2023): he añadido dotnet45 para que funcione con gosumemory

Instalación de osu!

Básicamente descarga el instalador y ejecútalo.
Ya tengo mi propia instalación de 3 años con todos mis datos, así que la montaré con bind.

Crea un directorio:

mkdir ~/.wineosu/osu

Y luego añade la siguiente línea a fstab:

/mnt/HDD/osu! /home/srizan/.wineosu/osu none defaults,bind 0 0

Intentando abrirlo

Ejecutar WINEARCH=win32 WINEPREFIX=~/.wineosu wine ~/.wineosu/osu/osu\!.exe dos veces nos lleva al instalador de osu! sin encontrar una conexión de red.

Esto es fácil de solucionar, ya que Wine muestra este error si te desplazas un poco hacia arriba:

01b0:err:winediag:process_attach Failed to load libgnutls, secure connections will not be available.

Buscando el paquete en los repositorios de Arch Linux, aparece un paquete llamado lib32-gnutls que parece ser exactamente lo que queremos.

Después de instalarlo, la conexión SSL funcionó y el juego va a empezar, ¡pero no!

¡Pensaste que eso sería todo!

Quiere un contexto GL, que aparentemente no tenemos, por lo que instalar lib32-mesa lo soluciona. ¡Fácil!

Ahora, la ventana está… ¿en negro? ¿CUÁNDO TERMINAMOS?
Bueno, casi al principio del archivo, podemos ver esto:

0024:err:winediag:create_gl_drawable XComposite is not available, using GLXPixmap hack.

¿“GLXPixmap hack”?
El juego, según peppy, está sostenido con cinta adhesiva, así que realmente no van a funcionar los trucos.

Instalar lib32-libxcomposite debería solucionarlo.

Se abre… pero sin audio.
Navegando por los foros de Arch encontré este post que habló de la insalación de lib32-alsa-plugins lib32-libpulse lib32-openal.

¡Y por fin terminamos! Puedo ir a la pantalla de menú y jugar algunos mapas.
(Asegúrate de establecer el offset al menos a -25ms. El asistente de offset del juego podría ayudarte a encontrar el valor óptimo).

Configuración del script de inicio

Edita un archivo en ~/.wineosu/osu/start.sh con el siguiente contenido:

#!/usr/bin/env bash
 
# Gracias a Katoumegumi por el script original, este es exactamente el mismo y funciona perfectamente.
#export PATH="$HOME/.wineosu/osuwine/bin:$PATH" #Usar versión personalizada de WINE para ejecutar osu!
export WINEARCH=win32
export WINEPREFIX="$HOME/.wineosu"
#export WINEFSYNC=1
 
# Las siguientes líneas desactivan vsync, lo cual es útil en Wayland para corregir la latencia de entrada.
export vblank_mode=0 #Para AMD, Intel y otros
export __GL_SYNC_TO_VBLANK=0 #Para NVIDIA propietario y de código abierto >=500
 
#Iniciar osu!
wine osu\!.exe

Configuración de la entrada de freedesktop

Descarga el logo de osu!:

wget --output-document ~/.wineosu/osu/icon.png https://github.com/ppy/osu-wiki/raw/master/wiki/Brand_identity_guidelines/img/usage-full-colour.png

y edita un nuevo archivo en la ruta ~/.local/share/applications/osu.desktop

[Desktop Entry]
Type=Application
Comment=Un juego de ritmo gratuito inspirado en Osu! Tataekae! Ouendan!
Icon=/home/<username>/.wineosu/osu/icon.png
Exec=/home/<username>/.wineosu/osu/start.sh
Path=/home/<username>/.wineosu/osu
GenericName=osu!
Name=osu!
StartupNotify=true

Eso es todo

Mucho más difícil de lo que pensé. Si quieres el comando con todas las dependencias, escribe:

sudo pacman -S lib32-gnutls lib32-mesa lib32-alsa-plugins lib32-libpulse lib32-openal lib32-libxcomposite