やじうまミニレビュー

安いRadeonでドット絵重視のゲームを楽しむ

やじうまミニレビューは、1つ持っておくと便利なPC周りのグッズや、ちょっとしたガジェットなど幅広いジャンルの製品を試して紹介するコーナーです。
Radeon Software Adrenalin 2020 Edition 20.3.1での設定画面

 任天堂が2016年に発売した「ニンテンドー クラシックミニ ファミリー コンピュータ」以降、「プレイステーション クラシック」や「メガドライブ ミニ」、「PCエンジン mini」が相次いで登場し、業界ではレトロゲームがちょっとしたブームを呼んでいる。

 そのブームに乗るかのように、PCでもドット絵を使用したレトロゲームの“再現性”を高めるべく、2019年にはNVIDIA、Intel、AMDから「整数スケーリング」に対応したGPUドライバがリリースされた。今回は、Radeonでこの整数スケーリングを試してみた。

 昔のCRT(ブラウン管)は、誤ってほかの色のドットに電子線が入らないように遮るマスクやグリルの小ささが十分であれば、走査線数を増やしてドットの大きさを自由に変化させられた。

 ところが現代のPCにおいて標準的な表示装置である液晶ディスプレイは、液晶自体がドットを表現する要素となっていて、最適な解像度が決まっている。このため、高い解像度の液晶で低い解像度の画像を映すさいは、画像を拡大する必要があり、その拡大処理において、ジャギーが目立たないようスムージング処理(線形補間)を行なうのが一般的である。

 このスムージング処理は、たしかに低解像度の画像でも滑らかに見えるというメリットがあるが、ゲーム内のドット絵は、アーティストがその美しさを追求して、あえて1ドットずつ色を選択して描いたものであり、スムージング処理されることを想定していない。それが昔の低解像度のレトロゲームであればなおさらだ。

ソニーのTV「BRAVIA KDL-32CX400」の内蔵スケーリング機能を利用した場合。このTV、アスペクト比固定拡大のみならず、整数スケーリングを行なう「ノーマル」モードも備えるが、スムージング処理はされてしまう
比較用にプレイしたゲームはコンパイルのDiscStation Vol.18に収録された「セリリのはっぴーばーすでぃ」のアルルの顔の拡大

 整数スケーリングによる拡大では、このスムージング処理を行なわず、単純にピクセルを整数倍に拡大する。たとえば、640×480ドット表示がネイティブなゲームをフルHD(1,920×1,080ドット)の液晶に拡大する場合には2倍の1,280×960ドット、WQHD(2,560×1,440ドット)の液晶拡大する場合は3倍の1,920×1,440ドット、4K(3,840×2,160ドット)の液晶に拡大する場合は4倍の2,560×1,920ドットに拡大し、ピクセル同士のスムージング処理を行なわない。

【表】ゲーム解像度が640×480ドットの場合の拡大処理の一例
液晶解像度1,920×1,080ドット(フルHD)2,560×1,440ドット(WQHD)3,840×2,160ドット(4K)
フルパネル表示横3倍×縦2.25倍横4倍×縦3倍横6倍×縦4.5倍
アスペクト比固定拡大縦横ともに2.25倍縦横ともに3倍縦横ともに4.5倍
整数スケーリング縦横ともに2倍縦横ともに3倍縦横ともに4倍

 上記の表からわかるとおり、整数スケーリングはアスペクト比固定拡大と比較すると、小数点を含められないため、WQHDを除いて左右のみならず、上下にも黒帯が生じるのが弱点となるが、ドットをそのまま拡大するので、ゲームアーティストの意図を損なわないのが最大の利点となる。

 単純にピクセルを整数倍にするだけなら、むしろスムージング処理よりも実装が楽そうなのだが、IntelによればそもそもOS(Windows)がこのスケーリングオプションを認識しないため、WDDM 1.3でサポートされるマルチプレーンオーバーレイ、カーソル座標マッピング、タッチといった機能に不具合が生じるという。そのため、Intelは整数スケーリングの実装をIce Lakeに限定しているようだ(手持ちのCore m3-8100Yを搭載したGPD P2 Maxでもオプション自体はインテル グラフィックスコマンドセンターで用意されているが、有効にならなかった)。

 NVIDIAもドライバで整数スケーリングを実装しているが、これが利用できるのはハードウェアアクセラレーテッドのプログラマブルスケーリングフィルタを備えたTuring世代のGPUのみとなっている。よって、Intelの内蔵GPUではいまのところノートPCのみ、NVIDIAのGPUは少なくとも15,000円以上するGeForce GTX 1650が必要、ということになる。

 ところがAMDが2019年12月にリリースした「Radeon Software Adrenalin 2020 Edition」では、GCNベースのRadeonであれば整数スケーリングが利用可能だ。GCNのはじめてのGPUはRadeon HD 7970であり、リリースは2011年12月、発売は2012年1月と、8年以上前にも遡る。こんな前のGPUでもサポートできてしまうところがAMDらしい。

秋葉原最終処分場。にて購入したジャンクのRadeon R7 240

 今回、秋葉原最終処分場。にて、ジャンクの550円で購入した「Radeon R7 240」で試してみた。2Dゲームをプレイするだけなら、大掛かりなビデオカードは不要だろう。

 じつは当初、Radeon Software Adrenalin 2020 Edition 20.2.2で整数スケーリングを有効にでき、ちゃんと整数倍にスケーリングされているのにもかかわらずスムージング処理がなされる状態であったが、これは3月19日付けでリリースされた20.3.1で解消されているのが確認できた。ただ、中央表示ではなく、上部寄せの下部のみ黒帯という状態になっている。いくつかのゲームで試してみたが同じ現象だ。ただ動作に支障はなかった。

RadeonのGPUスケーリングで「アスペクト比を保持する」を選択したところ。画面上下いっぱいにゲームが広がる(なお、KDL-32CX400自体でも表示モードをフル1を選択すれば同様の処理となる)
アルルの顔の拡大。KDL-32CX400の「ノーマル」と比較すると線が太くなっているのがわかる
RadeonのGPUスケーリングで「フル パネル」を選択したところ。画面いっぱいにゲームが広がるが、アスペクト比がおかしくなってしまう(KDL-32CX400の表示モードでフル2相当)
アルルの顔の拡大。レトロゲームを堪能したいユーザーに、このモードは論外だろう
RadeonのGPUスケーリングで「中央」を選択したところ。画面の中央の640×480ドット分を使って、ドットバイドットで描画するが、さすがに10型クラスのサイズで、迫力に欠ける
アルルの顔の拡大。もっとも、これがドット絵アーティストが表現したかった絵だろう
RadeonのGPUスケーリングで「整数スケーリング」オプションを有効にしたところ。本来は画面中央に表示されるべきだが、上寄せになってしまった。ただ、マウス座標の処理などは正しく行なわれているようで、動作に支障はない
アルルの顔の拡大。「中央」と比較すると2倍の大きさになるため、くっきりしていて、なおかつ迫力がある

 GCNベースのビデオカードは、いまや中古やジャンクなどで数百円~数千円レベルで出回っており、価格的にもリーズナブル。最新の3Dゲームを考慮せず、手持ちのレトロゲームをプレイするのが目的なら、このぐらいの出費は許せるのではないだろうか。ちなみにジャンク品は、当然のことながら動作しないこともあるので注意しよう。

 ただ、一般的にGCNベースのビデオカードはRadeon HD 7000およびRつき番台以降ではあるのだが、とくにOEM品を中心に、いくつか5000/6000番台のリネーム品が存在するので注意が必要。以下にリストアップしておいたので、購入のさいには参考にされたい。

【表】Radeon HD 7000番台以降で非GCNアーキテクチャのビデオカード
型番リネーム元
Radeon HD 73505450リネーム
Radeon HD 74506450リネーム
Radeon HD 75706570リネーム
Radeon HD 76706670リネーム
Radeon HD 83505450リネーム
Radeon HD 84506450リネーム
Radeon HD 84706450強化版
Radeon HD 84906450強化版
Radeon R5 2306450リネーム