カラクリスタ

「輝かしい青春」なんて失かった人のブログ

メロンブックスの電子書籍ビュアーを Wine で動かす方法

はじめに

この記事は メロンブックス電子書籍ビュアーLinux 上の Wine で動かす方法について記載しています。

ただしこの記事に記載されている事については無保証・自己責任に基づく内容であり、 またメロンブックス電子書籍ビュアーの更新状況によっては動作しなくなる可能性もあるので、 この記事は 2020 年 2 月 4 日現在の内容であることは留意してください。

なお今回の内容については、

  • NixOS (linux kernel 4.19.100)
  • wine 5.0 staging
  • 32bit wine prefix

で動作すること確認しています。

メロンブックス電子書籍ビュアーを Wine で動かす

メロンブックス電子書籍ビュアーを Wine で動かすための手順はおおよそ次の通りとなります:

  1. メロンブックスのビュアーを専用の Wine Prefix にインストールする
  2. winetricksd3dcompiler_47 をインストールする
  3. HKCU\Environment に 文字列値 QT_ANGLE_PLATFORM を作る
  4. 文字列値 QT_ANGLE_PLATFORM の値を d3d9 にセットする

なぜこの設定が必要なのか

まずメロンブックス電子書籍ビュアーは Qt Quick で作られており、 メロンブックス電子書籍ビュアーの挙動を見る限りでは、 OpenGL 関係の処理を DirectX に肩代わりさせる仕組みで動いています。( ANGLE とか言うらしい)

そして Wine には組込みのライブラリとして DirectX 関係のライブラリも含まれているのですが、 そのうちの d3dcompilerの実装が不完全であるため(正確には hlsl parser 辺りの実装)、 winetricksd3dcompiler_47 をインストールしない限り、

ビュアーが起動するけどウィンドウの中身が真っ黒

と言う状態になります。

また HKCU\EnvironmentQT_ANGLE_PLATFORM を文字列値として作り、 その内容として d3d9 をセットしているのは、 この設定抜きだと HiDPI 環境でアイコンなどが Glitch して表示が乱れるためです。

ただし QT_ANGLE_PLATFORM の設定は、恐らく wine 起動時の環境変数としても指定できるはずなので、 wine 起動時の環境変数QT_ANGLE_PLATFORM=d3d9 と指定しても問題ないと思います。

以上

とりあえず自分の環境では上記の方法でメロンブックス電子書籍ビュアーが動いていますが、 Wine のバージョンが変わったり、あるいはメロンブックスが提供するソフトウェアの更新などによって、 この記事の内容が通じなくなる可能性があります。

またメロンブックス電子書籍ビュアーを使うにはメロンブックスのアカウントでのログインが必須ですが、 この辺りのサーバ側の処理に変更が加えられると場合によっては動かなくなる可能性もあるので、 そう言った意味でも今回の記事は自分でリスクを取れる方向けとなっています。

ちなみに

メロンブックス電子書籍ビュアー、書籍の DRM がほぼ意味の無い状態になってるんですが、 これってバグなのか仕様なのかどっちなんでしょうね……? まぁ Calibre で書籍管理する上では都合が良いんですが……。