私はWindows8.1を使用していて、いくつかの古いゲームを実行しています(それらは完全に互換性があります)。それらの多くは800x600または640x480の解像度を使用していますが、私は1920x1080のディスプレイを持っています。スケーリング中、Windowsはある種の平滑化(最近傍アルゴリズムだと思います)を提供しますが、それはかなり貧弱です。たとえば2xSAIなどの高度な方法を使用したいと思います。 DOS-boxで何かを実行する場合、スケーリングアルゴリズムを簡単に選択でき、Windowsではこのようなものが必要です。 AMDビデオカード(r9 380)を持っているので、スムージング方法など、ドライバーにいくつかのグラフィックスの機能強化があります。ただし、古いゲームには影響しません(OpenGLやDirectXを使用していないためだと思います)。それで、低解像度の平滑化方法を選択する方法はありますか?
UPD。 AMDドライバーで「GPUScaling」フラグが見つかりました。これにより、古い2Dゲームにもアンチエイリアシングを使用できます。それにもかかわらず、ここでは補間アルゴリズムの選択肢はありません。
ゲームリスト:Dispel(1999)、Horde 2:Citadel(2001)、StarCraft:Brood War(1998)、Rage of Mages 2:Necromancer(1999)、Primitive wars(2002)、Warlords 3:Darklords Rising(1998)。
回答が投稿されてから、BlizzardはStarcraftのレンダリングを完全に書き直したため、説明されているメソッドはそのゲームでは機能しなくなりました。これでアップスケーラーが組み込まれ、新しい「リマスター」HDテクスチャパックがブリザードの公式ストアで購入できるようになります。
オリジナルのDiabloなどの同様のエンジンを使用する古いゲームを処理したり、v1.16.1でのみ機能する古いカスタムマップを再生したりするのに役立つ可能性があるため、以下のテキストをそのままにしておくことにしました。
デフォルトでは、モニター自体がスケーリングを行います。モニターが異なれば、スケーラーも大きく異なります。かなり優れているものもあれば、見るのが難しいものもありますが、2xsaiやadvmameはありません。一般に、VGA入力を備えたテレビは主流のモニターよりも少し優れたスケーリングを行います。
一部の人々は中古のCRTモニターを購入することさえします:それらは固定された物理的なピクセルを持っていないので一般により良い画像を提示します-それらの解像度はアナログであり、近くのピクセルを「滑らかにし」、古いゲームは一般にこの種の「スケーリング」を期待します発生する。
_GPU scaling
_(使用可能な場合)を有効にすると、ハードウェアに実装されているスケーラーを使用する代わりに、ビデオカードがスケーリングを実行します。構成はできませんが、フィルタリングが含まれている可能性があるため、モニターよりも優れた機能を発揮します。
そのためには、少なくともゲームからの明示的な解像度変更コマンドをインターセプトする必要があるため、問題の解決策はある種のハッキングであり、これは非常に複雑なタスクであり、ハッキングによってビデオやゲームプレイの問題が発生する可能性があります。
言い換えれば、ゲーム出力とGPU入力の間でスケーラーをハックする必要があります。
一部の古いゲームには、スケーラーをサポートする可能性のある最新のファン製バージョンまたはラッパーがありますが、これらは主にエミュレーター(MAME、PCSX、DOSBOX、SCUMMVMなど)に限定されています。これは、OS /ビデオカードとゲームの間をハッキングする必要がないためです。いずれにせよ、ビデオシステム全体をエミュレートするため、結果の画像にフィルターを適用する方が簡単です。
一部のゲームでは、ゲームの世界の大部分を(スケーリングなしで)画面に表示するためにハックが開発されました。これはあなたが求めているものではありませんが、少なくともゲームはスケーリングされたときほど醜く見えません。
ゲームはグラフィックを異なる方法で出力します-WindowsAPI([〜#〜] gdi [〜#〜])を使用するものもあれば、ビデオカードハードウェアに依存してレンダリングするものもあります3D画像(Direct 3D、OpenGL)、その他(主に2D/pseudo-3D)DirectDrawを使用して、2D画像をビデオカードに直接出力します。それぞれを操作するためのさまざまなツールやモードがある可能性があるため、ゲームで使用されているものを知っておくと便利な場合があります。
私が見つけたものから:
Primitive wars
_はDirectX/OpenGLで動作するようですStarcraft (before 1.18)
、_Horde 2
_および_Warlords 3
_はおそらくDirectDrawを使用しますDispel
と_Rage of Mages 2
_に関する情報は見つかりませんでしたが、それらの外観から、DirectDrawも推測できます。残念ながら、私が知る限り、リストされているゲームのいずれにおいても、高度なスケーラーをサポートするハックはありません。 Starcraft(1.16以下)には、以下にリストされているいくつかのエクスパンダーがあります。
ただし、DDHack
aka _DirectDraw Hack
_というプログラムを試してみることをお勧めします。 DirectDrawゲームに少なくともある種のスケーラーを提供します。 2xSAIほど良くはありませんが、何もないよりはましです。一部のゲームでのみ機能し、機能してもバグがある可能性がありますが、おそらく試してみる価値があります。
それはこのように動作します:
ddraw.dll
_ファイルをダウンロードに含まれているファイルに置き換えます。そのようなファイルが見つからない場合は、ゲームで機能しない可能性があります。必ず元のファイルをバックアップしてください!ddhack.cfg
_ファイルを編集します。スペースで区切られたオプションのリストがあります。おそらくhalfnhalf
およびbilinear
オプションに興味があるでしょう-それらの1つをファイルに入力して保存してください。ゲームの開始時に黒い画面しか表示されない場合は、altwinpos
オプションも含めてみてください。一部のタイプのゲーム(DirectDrawおよびDirect3D)で動作する可能性のある別のプログラムがありますが、バイリニアスケーラーしかありません。どれよりもさらに良いと思います。
Menu -> Edit -> Add
_に移動して、新しいゲームプロファイルを作成しますpath
を入力しますRun in window
_のチェックを外しますVideo -> Resolution
_に移動し、モニターのネイティブ解像度に設定しますDirectX -> Filtering
_の下で_Full Bilinear
_を選択しますOk
をクリックし、新しく作成したプロファイルを選択し、_Menu -> File -> Run
_を選択してゲームを開始しますMenu -> Edit -> Modify
_を選択し、他のパラメーターを調整してみてください。理論的には、DxWndに2xsaiのようなスケーラーを実装するのはそれほど難しくないと思います。ソースコードは公開されていますが、それでも誰かが行う必要のある作業がいくつかあります...
_Please read the message on top of this post.
_
このゲームでは、いくつかの解像度エクスパンダー(つまり、マップの詳細を表示しますが、元の解像度で)を使用できます。
» Скачать StarCraft Resolution Hack v.1.1 «
_をクリックしてください)それらには基本的な指示が含まれている必要があります。ほとんどの場合、StarCraftを最新のリマスターされていないバージョン(1.16.1)に更新する必要があります。
これは純粋な狂気ですが、理論的には次のことができます。
hq2x
_、_2xsai
_または同様のフィルター(Windows OSでも機能する場合)をロードします次に、自分のコンピューターからゲームのビデオをストリーミングしているビデオプレーヤーを調べます。ゲームにハードウェアマウスカーソルが必要な場合は機能しません。また、わずかな遅延が発生します。
これはばかげていることに気づき、試したことはありません。これが実際に機能するかどうかはまったくわかりません。実際にこの方法を試す価値があると思っている人がいる場合は、コメントしてください。