【IT】“100%の再現精度”を目指すスーパーファミコン・エミュレーター『bsnes』が抱える「最後の課題」[04/06] [無断転載禁止]©bbspink.com
■ このスレッドは過去ログ倉庫に格納されています
0001逢いみての… ★2020/04/06(月) 00:58:46.77ID:CAP_USER
https://i.gzn.jp/img/2020/04/05/snes-emulator-ppu/00_m.jpg

「bsnes」はスーパーファミコン、そして海外版のスーパーファミコンであるSuper Nintendo Entertainment System(SNES)の動作をPC上で再現するエミュレーターです。15年間にわたってbsnesを開発してきたBYUU氏が、エミュレーターを100%の再現度で完成させるために突き当たる「最後の壁」について解説しています。

1990年11月に発売されたスーパーファミコンは2020年で発売30周年を迎え、その長い歴史の裏でエミュレーターの開発も多くの有志によって行われてきました。

BYUU氏が手がけるスーパーファミコンのエミュレーターは大まかに、絶対的な再現精度を目指す「higan」と、パフォーマンスや機能、使いやすさに焦点を当てた「bsnes」の2つに分けられます。そしてどちらも公式に発売されたスーパーファミコンおよびSNESのタイトルのほぼすべてを完全にプレイ可能だとBYUU氏は述べています。なお、例外となるのは、クラブの先から出すレーザー光線で飛距離や球種を選ぶ本格ゴルフシミュレーターゲーム「レーザバーディ」、エアロバイクと一体化した「The Super Nintendo LifeCycle Exertainment Bike」、2015年までサービスが提供されていたスーパーファミコン用馬券購入ソフト「JRA-PAT」などエミュレーションが難しい周辺機器を利用するものとのこと。

かつては不可能といわれたスーパーFXチップのエミュレーション、HD画質でのモード7への対応、ワイドスクリーンのサポート、遅延のさらなる削減など、「bsnesは近年めざましい発展を遂げてきた」と語るBYUU氏が、「100%忠実なエミュレーションという完全性」を追及する上で突き当たった大きな問題が、画面に送信されるビデオフレームを生成する画像処理ユニット(PPU)でした。

以下の画像はSNESのコンポーネント構成図で、矢印はプロセッサが相互に通信できることを示していて、点線はメモリチップによる接続です。BYUU氏は、「映像出力(Video Output)がPPUから、音声出力(Audio Output)が音源チップであるDSPから直接出力されている」ことを指摘し、PPUやDSPが内部で何が起きているのかを把握できないブラックボックスとして機能していると述べています。

https://i.gzn.jp/img/2020/04/05/snes-emulator-ppu/01.jpg

SNESには約21MHzで動作する水晶クロックと約24MHzで動作するセラミック共振器が搭載されています。水晶クロックはCPUとPPUを、セラミック共振器はDSPとその制御用チップであるSMPを制御しています。クロックはさまざまなシステムにおいてタイミングを決めるための重要な要素であり、ゲームソフトはこの周波数に合わせてさまざまなタスクを実行するように設計されています。エミュレーターは、ハードウェアと全く同じようにタスクを処理することが求められるため、このクロックのタイミングをソフトウェアで再現する必要があります。

DSPによる音声処理やスーパーFXチップによるタスク処理のタイミングは膨大な開発費と時間をかけることで、チップのリバースエンジニアリングにも成功し、ほぼ解決の日の目を見たとのこと。しかし、BYUU氏によるとPPUは「真のブラックボックス」とのことで、その中で処理されている内容を直接監視する方法がないため、非常に苦労しているとのこと。

PPUのエミュレーションが、SNESエミュレーターの精度追求になぜ重要なのかについて、BYUU氏は1994年2月にセタから発売されたシューティングゲーム「デザートファイター:砂の嵐作戦」を例に挙げています。

以下のムービーで、デザートファイター:砂の嵐作戦がどんなゲームなのかを見ることができます。

https://youtu.be/ATp5ke0KUA0
[SFC] Desert Fighter (J) - Intro & Demo Play - YouTube

続く

以下ソース
https://gigazine.net/news/20200405-snes-emulator-ppu/

★関連板★
■えっちな話題なら”ピンクニュース”
http://mercury.bbspink.com/hnews/
■新作AV情報なら”AV情報+”
http://mercury.bbspink.com/avplus/
0002逢いみての… ★2020/04/06(月) 00:58:54.49ID:CAP_USER
このゲームはエミュレーター泣かせといわれており、その理由の1つが砂漠に落ちて描画される戦闘機の影。この影は5つの走査線上で画面表示の輝度を変更することで表現されているため、ゲームのプレイを見ると、影の動きと形がやや不安定になります。この影は単なるエフェクトではなく、戦闘機が地上の施設を爆撃する際の目安として働きます。そのため、ゲームを満足にプレイするためには影を把握することが非常に重要ですが、この影をエミュレーターで再現するのは非常に難しいとのこと。

https://i.gzn.jp/img/2020/04/05/snes-emulator-ppu/02.jpg

また、デザートファイター:砂の嵐作戦の一時停止画面では、ポップアップするウィンドウの左側で背景レイヤー3を有効にし、さらに右側でオフにすることで、画面に灰色の線を描画するという手法をとっています。そして、この灰色の線を表示する走査線を1フレームおきに交互に切り替えることで、オーバーレイの揺れを演出します。

デザートファイター:砂の嵐作戦で一時停止した瞬間は、以下のムービーの6分5秒頃で見ることができます。

https://youtu.be/U7mteFjUmlk
【実況・ファミコンナビ Vol.238】デザートファイター砂の嵐作戦(スーパーファミコン・SNES) - YouTube

このように走査線のタイミングに合わせて画面をスクロールさせたり伸縮させたりすることで特殊効果を得る技法はラスタースクロールと呼ばれ、ポリゴンが採用される前のゲームで擬似的に3Dを演出するために使われていました。このラスタースクロールを使うゲームはいわばハードウェアでレンダリングを行うものであり、完全ソフトウェアレンダリングを行うエミュレーターでは再現が非常に困難。処理のタイミングはソフトによって異なり、PPUでどういう処理がされているのか分からないため、従来のエミュレーターでは、ソフトによってこのラスタースクロールを十分に再現できないものもあったそうです。

そこでBYUU氏は、SNESに使われているPPUをロジックアナライザーにつないで解析するという試みを行っているそうです。ただし、ロジックアナライザーは制御が難しく、実用的ではないとのこと。

近年SNESのPPUのダイがスキャンされたことでPPUの解析が一歩進んだと、BYUU氏。ただし、BYUU氏の大まかな見積もりでは、スキャン画像から2基のPPUをマッピングしてソフトウェアで再現するには600時間もの時間がかかるそうです。「これは寄付だけでやっていくレベルを優に超えており、非常にレベルの高いスキルを持つ人が私たちのプロジェクトにボランティアで協力してくれることを期待する領域に達しています」とBYUU氏は述べています。

https://i.gzn.jp/img/2020/04/05/snes-emulator-ppu/05.jpg

BYUU氏は「私は自分のSNESエミュレータープロジェクトでできる限りのことをしてきましたが、この最後の課題を終わらせるためには助けが必要です」と述べ、bsnesのGitHubプロジェクトへの貢献や、PPUの内部の仕組みについての研究論分など、協力を募っています。
0003夜更かしなピンクさん2020/04/19(日) 19:53:37.99ID:ylxJKzJm
立てるならこっちじゃないのかこれ
ゲーム速報
http://lavender.5ch.net/gamenews/
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況