Catalyst(fglrx)ドライバでCompiz使用時のWine上のRPGツクール作品とWOLF RPGエディター(ウディタ)作品におけるちらつきとその対処について(Radeon HD 4200使用・Catalyst 13.1時点)

Last modified: 2021-08-24

本記事で扱っているプロプライエタリなグラフィックドライバは非常に古いものを扱っており、Compizなどのソフトウェア環境についても2020年代から振り返ると古いものとなってしまっているため、2020年代以降には参考にならない可能性が高い。

Radeon HDのグラフィックボード(オンボード含む)をfglrxドライバで使用してCompizを動かしているときにWine上の一部のアプリケーションでちらつきが発生する場合がある。

その中には対策が可能な場合もあり、ここではRPGツクール(各種)作品とWOLF RPGエディター作品での対策についてをまとめておく。使用ハードウェアはオンボードのRadeon HD 4200。

ちらつきの発生はハードウェア環境やソフトウェア環境の条件により起こらない可能性もある上に発生条件にも不明な部分が結構あり、また、検証作業が不十分で以下に誤った内容が含まれる可能性もそれなりにある点には注意が必要。

RPGツクール2000/2003作品

  • 仮想デスクトップを使用
  • その中でフルスクリーンで実行している
  • DirectDrawレンダラにOpenGL(バージョン1.4系以上の時点では既定値)を使用1
  • 仮想デスクトップの解像度が “320x240” か “640x480”

の条件が全て満たされているときにちらつきが発生することがある。回避するにはこれらの内いずれか1つでも満たされないようにすればよい。

  • 仮想デスクトップを使用せず(実際の)フルスクリーンで作品を起動し、フルスクリーンでプレイする
  • フルスクリーンで起動した後でF4を押して(640x480の)ウィンドウモードにして、更に320x240のウィンドウで動かしたい場合はF5を続けて押す
  • wine explorer /desktop=[名前],320x240 [RPG_RT.exeの場所]のように起動して仮想デスクトップ内で動かす場合はDirectDrawレンダラにOpenGLが用いられないようにする2
  • 仮想デスクトップを使用してその中でフルスクリーンにしたい場合でも、仮想デスクトップの画面解像度が “320x240” “640x480” 以外であれば仮想デスクトップ内で解像度が変動して作品の動作中のみ640x480のサイズになり、この後でちらつきは発生しなくなるため、(320x240ではなく)640x480のウィンドウでプレイしたい場合はその2つ以外の仮想デスクトップサイズを指定する(wine explorer /desktop=[名前],641x481 [RPG_RT.exeの場所]などのように起動するか、winecfgで仮想デスクトップのサイズを “640x480” 以外に指定しておく)だけでよい(“320x240” はwinecfgでは指定できないので注意)
    • その後のバージョンのWineでは “320x240” はwinecfgで指定できるようになって、更に640x480よりも優先されて640x480サイズの仮想デスクトップでプレイできなくなっている

RPGツクールVX/VX Ace作品

  • 仮想デスクトップを使用
  • 仮想デスクトップの解像度が640x480
  • DirectDrawレンダラにOpenGLを使用

の条件が全て満たされているときにちらつきが発生することがある。(仮想デスクトップ内で)フルスクリーンかどうかには影響されない。

この他、仮想デスクトップを使用せず、かつウィンドウモードで動かした場合でもちらつきが発生する場合がある。

DirectDrawレンダラにOpenGLを用いないようにするか、仮想デスクトップを使用しない形で(実際の)フルスクリーンで動かせば回避できる。

WOLF RPGエディター(ウディタ)作品

  • 3Dモード
  • 仮想デスクトップを使用
  • 仮想デスクトップの解像度が作品の解像度と同じ

の条件が全て満たされているときにちらつきが発生することがある。

この他、仮想デスクトップを使用せずにウィンドウモードで動かしたときにも発生する場合がある。

DirectDrawレンダラにOpenGLを使用しない指定をしてもちらつきが発生することがある。“ソフトウェアモード” にするとちらつきは発生しない。

対策としては、仮想デスクトップを使用せず(実際の)フルスクリーンで動かす他、作品ごとの設定ツール(Config.exe)で全画面モードにした上で仮想デスクトップを使用し、かつ仮想デスクトップの画面解像度が作品の画面解像度と異なるようにする方法もあるが、全画面モードを用いるとフレームレートなどタイトルバー上の情報は表示されないので注意が必要。

ウィンドウモードで起動してちらつきが発生した場合は、F4キーを押してウィンドウのサイズが変わるときにちらつきが改善されるので、数回押してサイズを選択すればよい。

その他のメモ

  • Compiz,Wine,Catalystのいずれかの設定でちらつき発生を回避することができないか色々と試してみたが、この記事を公開した段階ではうまくいくものは見つけられなかった
  • ちらつきが発生しているときにそのウィンドウを別のアプリケーションのウィンドウの下(背面)に持っていっても、内容が背面には隠れずに常にちらついた内容が表示されている(ウィンドウの移動で場所は移動できる)
  • ちらつきが発生するアプリケーションを動かすときだけ一時的に(fusion-iconなどで)Compizから別のウィンドウマネージャに切り替えるという方法もあるのだが、fglrxドライバを使用していると “Compizから別のウィンドウマネージャへの切り替わり” や “Compiz使用時のGUIからのログアウト/シャットダウン” のタイミングで画面が固まって操作不能になる場合がある3ので避けたい

  1. レジストリ項目の場所と値は、記事公開時点で使用したWine 1.4.1時点ではHKEY_CURRENT_USER\Software\Wine\Direct3D\の文字列項目DirectDrawRendererに値openglを指定する形だったが、その後(バージョン6.0.x系時点)項目名がrendererに、値がglに変わっている ↩︎

  2. 記事公開時点で使用したWine 1.4.1時点ではHKEY_CURRENT_USER\Software\Wine\Direct3D\の文字列項目DirectDrawRenderergdiにする形だったが、バージョン6.0.x系時点では項目rendererに値gdiまたはno3dを入れるように変わっている ↩︎

  3. これもバージョンによって安定していたり不安定だったりしており、Ubuntu 12.04のときのディストリのパッケージは比較的安定していた印象だったが記事公開時点の環境では結構不安定だった ↩︎