--- tags: 自學文件 title: 在 Arch Linux 上跑 osu! --- 本文會用到大量 AUR 資源,請先安裝好 AUR Helper 以方便後續操作。 可參考:https://wiki.archlinux.org/title/AUR_helpers#Comparison_tables 也請最好先安裝使用 AUR 資源的必要套件,和調整編譯設定以便加快編譯速度。 可參考:https://wiki.archlinux.org/title/Arch_User_Repository#Getting_started 這邊就不說明 AUR 的部份了。 _以下使用的 AUR Helper 為 yay_ ## 動機 主要是因為最近的 Windows 版本 (10 21H2 / 11 22H2) 對於我這台電腦(FX505DT)根本就是負優化,加上 AMD 驅動本來就時好時壞,種種加成之下造成我遊玩任何遊戲的體驗非常差,包含 osu!。 osu! 是一款大雜燴節奏音樂遊戲,有玩過任天堂 DS 可能會知道「押忍!戰鬥!應援團」是什麼,那 osu! 最早就是把應援團遊玩模式複製到 Windows 平台上的遊戲(講模擬器好像怪怪的)。 至今 osu! 已經不只有最早的應援團遊玩方式,還參考了其他平台的遊戲(如太鼓模式或是maina鍵盤模式等)並融合進去,講難聽一點其實是「抄」啦XD 最近 osu! 官方正在把整個遊戲程式重構,專案名為 osu!lazer,osu!lazer 在專案建立時已經把跨平台考慮進去了,自然在 Linux 上跑起來不是問題,但是現有平台就滿頭痛的,因為是 Windows only。 反正既然我都受不了了,那這次就鐵了心讓 osu! 在上面跑吧。 ## 初始設定 ### 安裝 Wine 與相依套件 別忘了記得啟用 multilib 軟體庫,把以下內容取消註解就好: `sudo nano /etc/pacman.conf` ```conf= [multilib] Include = /etc/pacman.d/mirrorlist ``` 之後更新一下本地軟體庫資料庫後,安裝 Wine 以及相依套件: ```shell= yay -Sy yay -S wine-staging winetricks yay -S giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader cups samba dosbox ``` ### 安裝 Vulkan 支援 可參考 https://wiki.archlinux.org/title/Vulkan#Installation 的說明。 因為本人只想用內顯跑 osu!,安裝 mesa 用的 vulkan-radeon 就好了 ```shell= yay -S vulkan-radeon ``` ### 安裝 PipeWire PulseAudio 因為高延遲的關係,早期需要特別為它調整一堆設定,現在 PipeWire 的出現,彷彿讓 PulseAudio 變得像是明日黃花... Anyway,PipeWire 可以帶給你低延遲的聲音體驗,音遊玩家必備! ```shell= # 記得先移除 PulseAudio yay -Rdd pulseaudio yay -S pipewire pipewire-pulse pipewire-jack pipewire-alsa wireplumber ``` 裝完記得重啟電腦。 ## 初步讓 osu! 跑起來 ### 安裝及設定 Lutris 因為接下來會需要安裝自訂 Wine Runtime,比較了一下還是直接用 Lutris 管理比較省事。 ```shell= yay -S lutris ``` 安裝好之後,點擊畫面左上角的 + 號 -> Add locally installed game (如下圖紅框的按鈕,照文字順序點):  Game Info 頁面的 Name 必填,除此之外就算了,重頭戲在於 Game Options 與 Runner Options。 Game Options 請一定要填寫 Excutable 和 Wine Prefix 的路徑,前者是遊戲執行檔,請至 osu! 官方下載 Installer 之後將檔名改為 osu!.exe ,並放入到 **相對於 Wine Prefix 底下的位置**,而 Wine Prefix 則任何地方都可以,至於最下面的架構選項請選擇 **32 位元**,設定如下圖:  至於 Runnter Options 的部份,Wine version 請先選擇 System ,先確定目前 Runner 能跑再換到其他的 Runner,然後底下有 Fsync 的選項 **請務必關閉**,新版 Wine 以及稍後要安裝的 Runner 都不相容,其他選項就隨意。  好了之後按下 Save,稍後要替該 Wine 環境安裝 osu! 缺少的相依程式。 ### 安裝相依程式、套件 在 Lutris 主畫面選擇剛建立好的 osu! 項目,畫面底下酒杯 Icon 旁邊有一個向上箭頭,點它並且點「Open bash terminal」:  此時應該會跳出一個終端機,這時輸入以下指令安裝 .NET Framework 4.5 以及字型等套件: ```shell= winetricks dotnet45 cjkfonts gdiplus ``` 途中會跳兩次 .NET Framework 安裝,一次是 4.0,一次是 4.5,在 Wine 裡面要先安裝 4.0 後才能安裝更高的版本。 安裝完成之後,關閉終端機回到 Lutris,然後按下下方的「Play」按鈕,看看是不是能跑了? 如果可以跑出 osu! 的安裝畫面以及進入遊戲畫面,那初步階段就完成了。 ## 優化遊戲體驗 ### 安裝缺少字型 歐美體系以外的字型,要嘛變成豆腐頭,要嘛就是直接留白不顯示,這代表缺少 Windows 相關字體。 請安裝 ttf-win10,但這是 AUR 資源,所以前面才叫你要裝 AUR Helper。安裝此套件過程中會下載 Windows 10 原版 ISO 檔案,請確認磁碟空間至少還有 10GB 以上。 ```shell= yay -S ttf-win10 ``` ### 更換 Wine Runner 其實早在 2018 左右就開始有 osu! 玩家在用 Linux 玩遊戲了囉!隨著時間推進,有以下幾種是 osu! 專武的 Wine Runner: - lutris-osu!: Lutris 官方適配給 osu! 的 Wine Runner,早期會有任何螢幕卡 60Hz 的問題,最近沒有了 - ThePooN 的 wine-osu: 針對早期 PulseAudio 延遲特別處理的 Runner,但是版本太舊了 (3.2) 不建議使用 - gonX 的 Wine: 有針對 osu! 崩潰狀況進行修復的,以及會自適應音響設定延遲的 Runner,建議使用 - openglfreak 的 Wine: 基於 gonX 但是音響驅動改用與 PulseAudio 有關的 winepulse 詳細請參考 https://wiki.archlinux.org/title/User:Katoumegumi#(Optional)_Using_different_wine_version ,這邊選用 gonX 的 Wine 上面連結是 6.14 版本的 Wine (以及 Patch),有人已經編譯好 7.0 版本且打過 Patch 的 Wine 了: https://drive.google.com/file/d/1xgJIe18ccBx6yjPcmBxDbTnS1XxwrAcc/view 下載好後解壓縮,複製 opt 資料夾底下的 wine-osu 到 `~/.local/share/lutris/runners/wine` 底下,並把資料夾重新命名成你可以識別的名字。 **記得重開 Lutris、記得重開 Lutris、記得重開 Lutris**,很重要所以要說三次,否則你會看不到它。 還記得前面的 Runner Options 嗎?這次就要選擇自訂 Runner 了囉:  (7.2 是我記錯版本所以打錯了XD) 設定好後再次「Play」osu!,這次應該也可以正常運行了。 (如果有 Gecko 安裝提示,請按下「否」不要安裝) ### 處理檔案關聯 osu! 有多種檔案副檔名需要關聯,如果沒有關聯會導致新增圖譜、Skin上會有困難。 安裝 osu-handler 以及 osu-mime 可以幫你解決問題,經過實測,在 osu! 開啟的情況下可以正確抓到下載下來的圖譜檔案(但是 osu-handler 號稱「可以在沒有開啟 osu! 的情況下先開啟 osu!」卻無法正常運作,可能跟我的 Wine Prefix 路徑有關)。 當然這兩者也只有在 AUR 上出現過,出動 AUR Helper: ```shell= yay -S osu-handler osu-mime ``` ### 調整「整體 Offset」 建議調整到 -25ms 或 -40ms (看你對延遲的感受如何), 實際遊玩下來還是會有打擊音效超前的問題,修正 Offset 即可,我這邊的 case 是 -25ms  ## 後記與補充 完工圖如下:   (上圖只是 Replay,證明一下是可以跑到實際遊戲畫面這樣,早期設定錯了,是連 Replay 畫面或實際遊戲畫面都進不去...) 右下角的 1.4ms 延遲,我在 Windows 上根本沒看過 lol,在 1920x1080 的解析度下延遲最低可以低於 1.0ms,對於遊玩準度大提昇。 雖然踩了不少坑就是,不過至少都有解決啦,可喜可賀。 補充一下: 如果有需要用繪圖板遊玩的話,去 AUR 下載 OpenTabletDriver: https://aur.archlinux.org/packages/opentabletdriver 如果有需要用調整羅技無線滑鼠的 DPI,請參考以下 ArchWiki: https://wiki.archlinux.org/title/Logitech_Unifying_Receiver ## 參考資料 Installing osu! on Linux with low-latency [2021] https://osu.ppy.sh/community/forums/topics/1248084?n=1 最早是參考上面這篇,不過裝到自訂 Runner 的步驟後就再也開不起 osu! 了... osu! install guide for Linux (up-to-date) https://gist.github.com/tsunyoku/354fa74945d9477b583b2e645c7d88b2 有參考一下這篇,這也是我早期嘗試的方法,但是會有 ThePooN 的 Runner 裝不起來,以及 winepulse.so 根本沒作用的問題 User:Katoumegumi https://wiki.archlinux.org/title/User:Katoumegumi 俄羅斯 osu! 玩家,是我目前看過最齊全的安裝 osu! 教學以及問題解決方案,他踩過的坑肯定比我多很多,可以試著遊說他在 ArchWiki 建立一個關於 osu! 的頁面XD
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up