Arch Linux + KDE Plasma Waylandでosu! stableを使用。Wine prefixは ~/Wines/osu。今回はLutrisのGE-Proton11-7で確認した。
remainingが減っても0の譜面は計算されていなかった
譜面一覧に入るたびに Difficulty calculation in progress (... beatmaps remaining) が表示される。しかし、Below 1 star の大量の譜面がいつまでも0のまま。remainingが減ることだけでは、その譜面の計算が進んでいる証拠にならなかった。
osu!.dbを調べると、対象の難易度キャッシュは -0.0。ゲームを正常終了し、DBをバックアップして、まず2譜面だけキャッシュを -1.0 に変更した。再起動後、譜面一覧で F5 → 1(全再読み込み) を実行すると、実際の星評価に置き換わった。
| 試験した譜面 | 保存された難易度 |
|---|---|
| miele paradiso / Kuki1537 / Hard | 3.437803★ |
| miele paradiso / Kuki1537 / Insane | 4.590821★ |
未変更のNormalは0のままだった。今回の環境では、0のキャッシュが再計算対象から漏れていた可能性が高い。ただしosu!内部の実装まで確認したわけではない。
対処と結果
ゲームを終了して最新の ~/Wines/osu/drive_c/osu!/osu!.db をバックアップし、DB形式を解析して、難易度キャッシュの0だけを -1.0 に置換した。非0の計算済み値と譜面情報は保持した。
再起動後にF5で全再読み込みして待つ。最小化中も計算は進んだ。途中でremainingが増えても、後から減少した。
最終的に対象24,124譜面のModなし評価はすべて処理され、24,121譜面に正の星評価が保存された。残る3譜面はスピナーだけで、計算後も0だった。一部のmania用Mod組み合わせには -1 が残っているため、すべてのModキャッシュが更新されたとはいえない。
DBの星評価が更新・保存されていることを確認するのが大事。最後は正常終了して最新結果を保存する。単純なバイナリ一括置換は別のデータを壊す可能性があるので使わない。今回のDBバージョンは 20260924 で、形式に合わせて解析した。