HN 日本語サマリー

← 一覧へ戻る
プログラミング

ブラウザでネイティブに動作するクラシックPCデモシーン作品

Classic PC demoscene productions running natively in the browser (treylorswift.github.io)

76 pointsby adunk59 コメント

要約

この記事では、オリジナルのDOSコードをブラウザ上でネイティブに実行するデモシーン作品の技術について解説しています。x86エミュレータでコードを記録し、それをC言語に変換、さらにWebAssemblyにコンパイルすることで、当時のハードウェアをモデル化してブラウザ上で再現しています。これにより、1990年代初頭のデモがそのままの見た目とサウンドで体験できるようになります。

全文翻訳

仕組み デモのオリジナルのDOSコードが、命令ごとに再コンパイルされてブラウザで実行されます。デモはx86エミュレータ上で実行され、CPUが実際に実行するコードの全ブロックを、デモ全体を通して記録します。その記録はC言語に翻訳されます。元の命令が1対1で、エミュレートされたマシンの正確なサイクルタイミングで再現されます。C言語はWebAssemblyにコンパイルされ、デモが通信するハードウェア(タイマー、VGAカード、サウンドブラスター)のモデルと共にパッケージ化されます。結果は、エミュレータのイベントごとに、エミュレートされた時間の同じ瞬間に、すべての割り込み、ポートアクセス、フレームが一致するかどうか検証されます。デモ独自のローダー、音楽プレイヤー、エフェクトは、1992年と1993年当時と同じように動作します。ハードウェアのみがモデル化されています。デモはVGAで70Hzで動作していたため、70Hz、または140Hz以上のディスプレイで最も滑らかに見えます。 demoscene-recomp on GitHub クレジット UnrealとSecond RealityはFuture Crew作、Crystal Dream IIはTriton作、Stars: Wonders of the WorldはNoooN作です。いずれもデモシーン向けに無料でリリースされました。オリジナルのリリースファイルは、デモが実行時に読み込むため、変更されずに提供されます。訪問者は匿名でカウントされます。IPアドレス、追跡クッキー、個人識別子は使用されません。訪問者 フォント: IBM VGA 8x16 by VileR, int10h.org (CC BY-SA 4.0)