[分享] 在 Arch Linux 上跑 osu!

看板Linux作者時間2年前 (2022/07/11 00:50), 2年前編輯推噓1(102)
留言3則, 2人參與, 2年前最新討論串1/1
這邊先遞上 HackMD 好閱讀版本 https://hackmd.io/@nesquate/osu-on-archlinux 以下為特別替 PTT 閱讀體驗最佳化的版本,會嘗試上色(第一次上色請多指教), 基本上跟原文大同小異。 ----正文開始---- 本文會用到大量 AUR 資源,請先安裝好 AUR Helper 以方便後續操作。 可參考:https://wiki.archlinux.org/title/AUR_helpers#Comparison_tables 縮網址: https://reurl.cc/lomGLY 也請最好先安裝使用 AUR 資源的必要套件,和調整編譯設定以便加快編譯速度。 可參考:https://wiki.archlinux.org/title/Arch_User_Repository#Getting_started 縮網址: https://reurl.cc/2Z1p4O 這邊就不說明 AUR 的部份了。 以下使用的 AUR Helper 為 yay A. 動機 主要是因為最近的 Windows 版本 (10 21H2 / 11 22H2) 對於我這台電腦 (ASUS FX505DT)根本就是負優化, 加上 AMD 驅動本來就時好時壞,種種加成之下造成我遊玩任何遊戲的體驗非常差, 包含 osu!osu! 是一款大雜燴節奏音樂遊戲, 有玩過任天堂 DS 可能會知道「押忍!戰鬥!應援團」是什麼, 那 osu! 最早就是把應援團遊玩模式複製到 Windows 平台上的遊戲 (講模擬器好像怪怪的)。 至今 osu! 已經不只有最早的應援團遊玩方式, 還參考了其他平台的遊戲(如太鼓模式或是maina鍵盤模式等)並融合進去, 講難聽一點其實是「抄」啦XD 最近 osu! 官方正在把整個遊戲程式重構,專案名為 osu!lazerosu!lazer 在專案建立時已經把跨平台考慮進去了, 自然在 Linux 上跑起來不是問題,但是現有平台就滿頭痛的, 因為是 Windows only。 反正既然我都受不了了,那這次就鐵了心讓 osu! 在上面跑吧。 B. 初始設定 1. 安裝 Wine 與相依套件 別忘了記得啟用 multilib 軟體庫,把以下內容取消註解就好: 指令: sudo nano /etc/pacman.conf 檔案內容: ------- [multilib] Include = /etc/pacman.d/mirrorlist ------- 之後更新一下本地軟體庫資料庫後,安裝 Wine 以及相依套件: 指令: 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 (這邊用 PTT 看指令會有截斷的狀況,建議去 HackMD 那邊複製) 2. 安裝 Vulkan 支援 可參考 https://wiki.archlinux.org/title/Vulkan#Installation 的說明。 縮網址: https://reurl.cc/zZ3xy6 因為本人只想用內顯跑 osu!,安裝 mesa 用的 vulkan-radeon 就好了 指令: yay -S vulkan-radeon 3. 安裝 PipeWire PulseAudio 因為高延遲的關係,早期需要特別為它調整一堆設定,現在 PipeWire 的出 現,彷彿讓 PulseAudio 變得像是明日黃花... Anyway,PipeWire 可以帶給你低延遲的聲音體驗,音遊玩家必備! 指令 (記得先移除 PulseAudio): yay -Rdd pulseaudio yay -S pipewire pipewire-pulse pipewire-jack pipewire-alsa wireplumber 裝完記得重啟電腦。 C. 初步讓 osu! 跑起來 1. 安裝及設定 Lutris 因為接下來會需要安裝自訂 Wine Runtime, 比較了一下還是直接用 Lutris 管理比較省事。 指令: yay -S lutris 安裝好之後, 點擊畫面左上角的 + 號 -> Add locally installed game (如下圖紅框的按鈕,照文字順序點): https://i.imgur.com/Fn9L29A.png
Game Info 頁面的 Name 必填,除此之外就算了, 重頭戲在於 Game Options 與 Runner Options。 Game Options 請一定要填寫 Excutable 和 Wine Prefix 的路徑, 前者是遊戲執行檔,請至 osu! 官方下載 Installer 之後將檔名改為 osu!.exe , 並放入到 相對於 Wine Prefix 底下的位置, 而 Wine Prefix 則任何地方都可以, 至於最下面的架構選項請選擇 32 位元,設定如下圖: https://i.imgur.com/iReGDEp.png
至於 Runnter Options 的部份, Wine version 請先選擇 System , 先確定目前 Runner 能跑再換到其他的 Runner, 然後底下有 Fsync 的選項 請務必關閉, 新版 Wine 以及稍後要安裝的 Runner 都不相容,其他選項就隨意。 (注意下圖的紅框) https://i.imgur.com/foN6GJG.png
好了之後按下 Save,稍後要替該 Wine 環境安裝 osu! 缺少的相依程式。 2. 安裝相依程式、套件 在 Lutris 主畫面選擇剛建立好的 osu! 項目, 畫面底下酒杯 Icon 旁邊有一個向上箭頭,點它並且點「Open bash terminal」: https://i.imgur.com/TItNncD.png
此時應該會跳出一個終端機, 這時輸入以下指令安裝 .NET Framework 4.5 以及字型等套件: winetricks dotnet45 cjkfonts gdiplus 途中會跳兩次 .NET Framework 安裝, 一次是 4.0,一次是 4.5, 在 Wine 裡面要先安裝 4.0 後才能安裝更高的版本。 安裝完成之後,關閉終端機回到 Lutris, 然後按下下方的「Play」按鈕,看看是不是能跑了? 如果可以跑出 osu! 的安裝畫面以及進入遊戲畫面,那初步階段就完成了。 D. 優化遊戲體驗 1. 安裝缺少字型 歐美體系以外的字型, 要嘛變成豆腐頭,要嘛就是直接留白不顯示, 這代表缺少 Windows 相關字體。 請安裝 ttf-win10,但這是 AUR 資源,所以前面才叫你要裝 AUR Helper。 安裝此套件過程中會下載 Windows 10 原版 ISO 檔案, 請確認磁碟空間至少還有 10GB 以上。 指令: yay -S ttf-win10 2. 更換 Wine Runner 其實早在 2018 左右就開始有 osu! 玩家在用 Linux 玩遊戲了囉! 隨著時間推進,有以下幾種是 osu! 專武的 Wine Runner: a. lutris-osu!: Lutris 官方適配給 osu! 的 Wine Runner, 早期會有任何螢幕卡 60Hz 的問題,最近沒有了 b. ThePooN 的 wine-osu: 針對早期 PulseAudio 延遲特別處理的 Runner, 但是版本太舊了 (3.2) 不建議使用 c. gonX 的 Wine: 有針對 osu! 崩潰狀況進行修復, 以及會自適應音響設定延遲的 Runner,建議使用 d. openglfreak 的 Wine: 基於 gonX 但是音響驅動改用與 PulseAudio 有關的 winepulse 詳細請參考 https://reurl.cc/n1a9ed (ArchWiki),這邊選用 gonX 的 Wine 上面連結內最新只有到 6.14 版本的 Wine (以及 Patch), 有人已經編譯好 7.0 版本且打過 Patch 的 Wine 了: https://reurl.cc/ZAK0Da (Google Drive) (網址太長只附上縮網址) 下載好後解壓縮,複製 opt 資料夾底下的 wine-osu 到 ~/.local/share/lutris/runners/wine 底下, 並把資料夾重新命名成你可以識別的名字。 記得重開 Lutris、記得重開 Lutris、記得重開 Lutris, 很重要所以要說三次,否則你會看不到它。 還記得前面的 Runner Options 嗎?這次就要選擇自訂 Runner 了囉: https://i.imgur.com/jSOYbiu.png
(7.2 是我記錯版本所以打錯了XD) 設定好後再次「Play」osu!,這次應該也可以正常運行了。 (如果有 Gecko 安裝提示,請按下「否」不要安裝) 3. 處理檔案關聯 osu! 有多種檔案副檔名需要關聯, 如果沒有關聯會導致新增圖譜、Skin上會有困難。 安裝 osu-handler 以及 osu-mime 可以幫你解決問題, 經過實測,在 osu! 開啟的情況下 可以正確抓到下載下來的圖譜檔案 (但是 osu-handler 號稱「可以在沒有開啟 osu! 的情況下先開啟 osu!」卻無法正常運作, 可能跟我的 Wine Prefix 路徑有關)。 當然這兩者也只有在 AUR 上出現過,出動 AUR Helper: yay -S osu-handler osu-mime 4. 調整「整體 Offset」 建議調整到 -25ms 或 -40ms (看你對延遲的感受如何), 實際遊玩下來還是會有打擊音效超前的問題,修正 Offset 即可, 我這邊的 case 是 -25ms,請進入遊戲內調整就好: https://i.imgur.com/n29IFYb.png
E. 後記與補充 完工圖如下: https://i.imgur.com/zY5J9Ks.jpg
https://i.imgur.com/ZLioBBy.png
(上圖只是 Replay,證明一下是可以跑到實際遊戲畫面這樣, 早期設定錯了,是連 Replay 畫面或實際遊戲畫面都進不去...) 右下角的 1.4ms 延遲, 我在 Windows 上根本沒看過 lol, 在 1920x1080 的解析度下延遲最低可以低於 1.0ms,對於遊玩準度大提昇。 雖然踩了不少坑就是,不過至少都有解決啦,可喜可賀。 補充一下: 如果有需要用繪圖板遊玩的話,去 AUR 下載 OpenTabletDriver: https://aur.archlinux.org/packages/opentabletdriver 縮網址: https://reurl.cc/zZ3xg6 如果有需要用調整羅技無線滑鼠的 DPI,請參考以下 ArchWiki: https://wiki.archlinux.org/title/Logitech_Unifying_Receiver 縮網址: https://reurl.cc/k1xDNn F. 參考資料 Installing osu! on Linux with low-latency [2021](osu! 官方論壇) https://osu.ppy.sh/community/forums/topics/1248084?n=1 縮網址: https://reurl.cc/vdYV3o 最早是參考上面這篇,不過裝到自訂 Runner 的步驟後就再也開不起 osu! 了... osu! install guide for Linux (up-to-date) (GitHub Gist) https://gist.github.com/tsunyoku/354fa74945d9477b583b2e645c7d88b2 縮網址: https://reurl.cc/j1zLMn 有參考一下這篇,這也是我早期嘗試的方法, 但是會有 ThePooN 的 Runner 裝不起來,以及 winepulse.so 根本沒作用的問題 User:Katoumegumi (ArchWiki) https://wiki.archlinux.org/title/User:Katoumegumi 縮網址: https://reurl.cc/3ogvr8 俄羅斯 osu! 玩家, 是我目前看過最齊全的安裝 osu! 教學以及問題解決方案, 他踩過的坑肯定比我多很多, 可以試著遊說他在 ArchWiki 建立一個關於 osu! 的頁面XD ----正文結束---- 如果有什麼排版上,實做上,或是內容上的問題,直接在下方討論就好了 沒想到上色這麼累QQ 這邊先說,我對 osu! 算是又愛又恨, 我很討厭他的計分方式,尤其是讓數以萬計的玩家陷入痛苦的 Performance Point System, 不過它能夠讓我好好享受到音樂遊戲該有的東西, 只是 Windows 根本不想讓我有好的遊戲體驗... 所以我就努力裝起來,寫個紀錄,結果發到 PTT 的時候已經過換日時間了 XDD 裝完這些整個半天都不見了,寫紀錄又是半天,我的天阿 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.107.177.185 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1657471842.A.17B.html ※ 編輯: Arbin (106.107.177.185 臺灣), 07/11/2022 00:54:17 ※ 編輯: Arbin (106.107.177.185 臺灣), 07/11/2022 00:57:15

07/11 00:57, 2年前 , 1F
pulseaudio 只是預設的 config 會讓延遲浮動
07/11 00:57, 1F

07/11 00:58, 2年前 , 2F
延遲變高後就不會降回去,除非你掛 fixed_latency
07/11 00:58, 2F
所以在早期的文章上我是看到 STAGING_AUDIO_PERIOD 這一定要先 export 不然延遲到時後會很高 但即使這值設定到最小好像還是不夠低... 所以大家就開始對 Wine Runner 動手腳了 ※ 編輯: Arbin (106.107.177.185 臺灣), 07/11/2022 01:08:49

07/11 10:09, 2年前 , 3F
有趣先推
07/11 10:09, 3F
文章代碼(AID): #1YomDY5x (Linux)
文章代碼(AID): #1YomDY5x (Linux)