Epic版CelesteとSteam版Celesteを組み合わせてDRMフリーなLinux版Celesteを作成した話


前置き

Celesteは昔にEpic Games Storeで無料配布されたときに初めて触って以来、ずっとEpic版で遊んだり走ったりしていたが、環境をLinuxに変えたので、いい機会かなと思ってSteam版を購入した(Epic版はLinux非対応)。
しかし、Steam版はDRMがかかっていて、コピーした実行ファイルを起動すると強制的にオリジナルの実行ファイルが起動するので、Epic版と違って大量にコピーして用途によって使い分ける運用ができなくて、不便だなと感じた。
それで色々実験した結果、Epic版とSteam版を組み合わせたらいい感じに動作することが分かった。

Linux版Celesteの動作について

Linux版Celesteの実行ファイルは32ビットの場合はCeleste.bin.x86、64ビットの場合はCeleste.bin.x86_64なのだが、これが起動したあと、Windows版である Celeste.exeを読み込む。
そして、DRMがかかっているのはCeleste.exeなので、ここをDRMフリーなバージョンに差し替えればDRMがなくなる。
つまりCeleste.exeをEpic版に置き換えるだけでDRMフリーなLinux版が完成する。

セーブフォルダをWindows版風にする

Windows版Celesteは、実行ファイルがあるフォルダ内にSavesフォルダが作成されるが、Linux版は"~/.local/share/Celeste"内に作成される。
これだとDRMフリーになってコピーを複数作成したとしてもセーブを分けられなくて、管理が面倒である。
実はLinux版Celesteは起動するときは直接実行ファイルを起動するのではなく、同じディレクトリにある"Celeste"という名前のシェルスクリプトを実行するようになっている。
つまりそれを改造してSavesフォルダを実行ファイルのディレクトリに作成し、実行するときだけ"~/.local/share/Celeste"内にリンクさせることでWindows版のようにセーブフォルダの分離を行える。
Linux版を使うようなマニアックな人は自力でできる思うが、そのうちスクリプトの差分ファイルをどこかに上げようと思う。
Olympusから起動するときもスクリプトを実行するようになってるので、ちゃんとセーブフォルダが分離される。
ただし、同時起動には対応できないので注意してほしい。

まとめ

Epic版が普通にコピーできたので、Steam版もそうなのかと思ってたけど、そうではなくて驚いた。
itch.ioのストアではドル払いではあるもののDRMフリーらしいので、そこで購入しておけばよかったと若干後悔している。
この記事の需要はほぼゼロだと思うが誰かの役に立てたら幸いである。