PSエミュレーターでドラクエ7:高解像度化で発生する画質低下現象について
PS1エミュレーターで懐かしい名作RPG「ドラゴンクエスト7 エデンの戦士たち」をプレイしていると、ある現象に遭遇しました。
使用しているPS1エミュレーターはDuckStation。
DuckStationをはじめとする、数多くのエミュレーターの進化は目覚ましく、もう今となってはエミュレーターは性能が大幅に向上しています。PC自体の性能も向上しており、ゲームの動作はほぼ完璧に再現されています。ゲームは正常にロードされ、実行も問題はありません。
特に、ハードウェアレンダラーを使用して内部解像度を上げると、PS1とは思えないほど美しい高画質でゲームを楽しむことが可能です。
ただひとつ、問題が…
問題の症状とは
グラフィックに奇妙な症状が発生するのです。
というのも、キャラを動かしているときには特に問題もなくアップスケーリング(高画質化)が適応されるのですが、「メニューを開いたり、ゲーム内で人と会話したりするたびに、背景が不鮮明になりブロック状な感じになる」のです。
メニューを閉じると通常に戻ります。
戦闘中においても、「コマンド選択時のみ背景がぼやけ、エフェクトが処理されるシーンでは鮮明に戻るなど、場面によって解像度が変動している」ように見えます。
以下の画像をみてください。
まず、これが「キャラクター操作中」です。内部解像度は5x(1080p)です。
そして、これが「テキストウィンドウ表示中」です。
どうですか? 画質が変わっているのが分かるでしょうか。
いろいろ試したけど・・・
グラフィック設定やシェードを調整しましたが、まったく改善されません。他のPSエミュレーターも試しました。
まず、RetroArchエミュレーターでは、ドラクエ7の推奨コアとして「SONY – PlayStation (PCSX ReARMed)」と「SONY – PlayStation (SwanStation)」があります。結果として、PCSX ReARMedではアップスケーリングができず、SwanStationは高解像度化が可能ですが、上記の症状が発生します。
次にPSX Emulatorはどうかと試してみましたが、アップスケーリングはできないようです。ePSXeでは高解像度化はできますが、これも同じく症状が発生。音質も安定せず、プラグインを変更しても音がプツプツ。
アンドロイドエミュレーターも試してみました。Android用のDuckStationをスマホにインストール。
Resolution Scaleは変更できるようなのでとりあえず、5x(for 1080p)にしてみます。
以下が部分拡大した画像です。
メニューを開くと・・・
やはり、ちょっとぼやける感じになりますね。ただ画面が小さいせいかWindowsエミュよりも目立たないですね。
結論として、DuckStationだけでなく、ほかのPSエミュレーターでも同様の現象が見られました。
ネットで検索しても何も手掛かりもなく、海外のフォーラムでは同様の質問が以前からありますが、根本的な解決策は見つかっていないようです。
[Help with duckstation emulation]
https://www.reddit.com/r/SteamDeck/comments/1aim5wg/help_with_duckstation_emulation/
[dragon warrior 7 menu/background problem]
https://www.ngemu.com/threads/dragon-warrior-7-menu-background-problem.49774/
また、PS版「ドラゴンクエスト4 導かれし者たち」でも同じ現象が発生すると5chで書き込みがあります。これは、ドラクエ7とゲームエンジンが同じなためと思われます。
原因はゲームエンジンの特性?
あくまで推測の域ではありますが
この現象は、エミュレーターの不具合ではなく、「ゲームエンジンの特性によるもの」と考えられます。
「PS ドラゴンクエスト4」および「PS ドラゴンクエスト7」では、2Dと3Dのグラフィックが組み合わされており、メニュー表示や会話シーンなど、テキストダイアログが表示される際には、以下のような処理が行われていると思われます。
1. 主要レンダリング処理の一時停止:3Dポリゴンの描画など、ゲーム画面の主要なレンダリング処理を一時停止する。
2. UI要素の描画:メニュー画面やテキストダイアログなどのUI要素を、オフスクリーンバッファまたは直接画面上に描画する。
3. UI要素とゲーム画面の合成:描画されたUI要素と、一時停止中のゲーム画面を合成して表示されます。合成中はなんらかの要因で解像度が落ちる。
4. 主要レンダリング処理の再開:メニューを閉じたり、ダイアログを終了すると、ゲーム画面の主要なレンダリング処理が再開される。
この処理と高画質化の相性が悪く、表示が不安定になってしまうということになります。
これを回避する方法としては、フレームバッファ効果を無効にして、画面が表示されないように対処することです。しかしながら、画面を表示させないように設定すると、テキストウインドウが表示されている間は背景が真っ暗になってしまいます。
高画質化してプレイしていると、テキストダイアログ表示時にそれが解除される。
つまり正確には解像度がデフォルトに戻るのです。
2Dと3Dが混ざってるゲームをアップスケーリングしてると、どうしてもおかしい表示になるわけですね。
回避策はある?
高画質化設定を有効にしていると、会話中などに画面の解像度が低下してしまうこの現象は、気になる人は気になりますよね。非常に煩わしい問題です。
気にしない人ならいいのだけど・・・。
一応の回避方法としては、グラフィック設定でレンダラーをハードウェア(Direct3D 11、Direct3D 12、Vulkan、OpenGL)ではなく、ソフトウェアに変更することで、実機と同じ解像度(1x)となり、どのエミュレータでも症状が消えます。テキストダイアログの表示中でも解像度が落ちたりしなくなります。画面のチラつきも解消されます。
ただし、その代償としてハードウェアレンダラーによるアップスケーリングが無効になるため、高画質化の恩恵を受けられなくなります。また、実機と違い、TV接続コンポジットケーブル出力の劣化がまったくないため、画面は粗くドットのジャギジャギ具合が強調されます。このデメリットを軽減するためには、スケーリングを「bilinear」に設定するのがおすすめです。bilinearは、若干のアンチエイリアス効果があり、ドットのジャギを緩和することができます。
今回は、PS1エミュレーター「ドラゴンクエスト7」を高画質化プレイする際に発生する、会話中の画面ぼやけ現象について解説しました。
現時点では、この現象に対する根本的な解決策はありませんが、ソフトウェアレンダラーを使用するなどの対策を試すことで、より快適なプレイ環境を構築できるでしょう。
今後、エミュレーターのドラクエ用アップデートなどあれば期待したいところです。
<補足情報>
主人公やキャラクタのドットが少しずれている場合、グラフィック設定で「レンダリング」タブから「PGXPジオメトリ補正」にチェックを入れ、「PGXP」タブのジオメトリの許容範囲のところを修正してみてください。