HN 日本語サマリー

← 一覧へ戻る
その他

Amiga Screens: 入門

Amiga Screens: A Primer (datagubbe.se)

140 pointsby msephton69 コメント

要約

この記事は、Amigaのグラフィックスハードウェア、特にOCS(Original ChipSet)における「スクリーン」の概念について解説する入門ガイドです。Amigaのスクリーンは、異なる解像度や色深度を持つ表示領域であり、オペレーティングシステムによって管理されます。記事では、インデックスパレット、ビットプレーン、HAMモード、そしてCopperコプロセッサによるハードウェア機能が、Amigaの柔軟なグラフィックス表示とマルチタスク能力にどのように貢献しているかを説明しています。

全文翻訳

{ datagubbe } datagubbe.se » amiga screens: a primer Amiga Screens: A Primer 2026年秋 インターネットの暗黙のルールの1つは、Amiga関連の何かが言及されるたびに、少なくとも1人のAmigaファン(私も含めて)が現れて、スクリーンの概念を説明しようとすることのようです。Amigaスクリーンは異なる解像度を持つことができ、ドラッグすることもできると私たちは言います。そして他のAmigaユーザーは同意して集まりますが、Amiga以外のユーザーはおそらくまだスクリーンの何が素晴らしいのか理解できていません。これまで、このテキストは、無防備な一般人を完全なAmigaスクリーン愛好家に変えることを願って書かれてきました。 実用的な目的のために、このテキストはオリジナルのAmigaグラフィックスハードウェア、OCS(Original ChipSet)に焦点を当てます。後続のECS(Enhanced ChipSet)およびAGA(Advanced Graphics Architecture)のアップグレードでいくつかのハードウェア制限が削除されましたが、基本的な原則とユーザーエクスペリエンスは同じままです。 Amigaのスクリーンとは、スクリーンとは、スクリーンである Amigaにおけるスクリーンの具体的な意味は、オペレーティングシステムに由来します。オペレーティングシステムは、表示領域の一種をスクリーンと呼んでいます。Amigaのゲームやデモプログラマーは、この概念にそれほど悩まされません。例えば、Amiga Hardware Reference Manualでは、表示領域を「プレイフィールド」と呼び、デモコーダーはラスター分割について話すかもしれませんが、簡単のためにスクリーンに留めましょう。 したがって、Amigaのスクリーンは基本的に、グラフィックスが描画される領域です。Amigaスクリーンは異なる解像度と色深度を持つことができ、プログラムはグラフィックスを表示するために任意の数の異なる解像度のスクリーンを開くことができます。今日、私たちは主に単一の固定解像度の表示領域を使用していますが、これは現代のオペレーティングシステムとフラットスクリーンモニターの動作の組み合わせ効果です。しかし、CRTモニターの全盛期には、異なる解像度のディスプレイを開くことが一般的でした。例えば、VGA対応のMS-DOSマシンで動作する画像ビューアは、ファイルブラウジングのために16色、720x400ピクセルのテキストモード解像度を使用し、画像を表示する際には新しい256色320x200ディスプレイを開くかもしれません。 これらの解像度と色深度のバリエーションは、基本的にすべてのホームコンピューターに存在し、異なるユースケースに対して合理的な速度とメモリ消費を達成するためのハードウェア強制的なトレードオフでした。当時はメモリが非常に高価でした(ああ、歴史は繰り返す!)。そして、ストックハードウェア構成では、CPU、ビデオ、オーディオハードウェア間で共有される比較的小量のRAMに依存していたAmigaは、これらのスクリーン解像度と色深度に対して高いレベルの制御を提供しました。 インデックスとプレーン Amigaは通常、インデックス付きパレットを使用します。これは、画面ごとの限られた数のカラーレジスタにユーザー定義の色値が含まれていることを意味します。これらの値は、12ビットカラー空間(AGAでは24ビット)から選択されます。例えば、カラーインデックス0は黒の$000に設定され、インデックス1は赤の$F00に設定されるかもしれません。個々のピクセルの色値を操作するために、プレーングラフィックスが使用されます。これは、画面の色深度がビットプレーン(略してbpl)を追加することによって増加することを意味します。各ビットプレーンはメモリに別々に格納され、ピクセルのカラーインデックスを変更するには、各プレーンでビットを切り替える必要があります。したがって、1ビットプレーンのスクリーンは2つのカラーインデックスを提供し、2つのビットプレーンは4つ、そしてオリジナルのAmigaハードウェアでは最大5つのビットプレーンと32色(AGAでは8 bplと256色)を提供します。 ビットプレーンがどのように組み合わされてピクセルごとのカラーインデックスを表すかの図。 (Amiga Hardware Reference Manualより) OCSおよびECSでは、画面あたりの最大ビットプレーン数はその表示解像度によって決定され、PALまたはNTSCテレビセットで意味をなすように設計されています。OCS Amigaは、ローレゾとハイレゾを提供します。PALでは、ローレゾは最大32色(5 bpl)で320x256ピクセル(インターレースで320x512)です。ハイレゾは、最大16色(4 bpl)で640x256(インターレースで640x512)です。これらの基本解像度は、オーバーキャンを使用してわずかに増加させることができ、ハイレゾでは最大724x283になりますが、すべてのモニタータイプまたはテレビセットで完全に表示されるとは限りません。ローレゾでは、6番目のビットプレーンをHAM(Hold-And-Modify)に使用でき、OCS Amigaの4096色すべてを同時に(いくつかの注意点がありますが)自由に、またはEHB(Extra Half-Brite)を使用できます。EHBは、32色のパレットを32の追加のオリジナルカラーコピーに複製しますが、元の明るさの値の半分になります。 Deluxe PaintでEHB画像を編集しています。画面の右下にあるカラーセレクターに注意してください:最も右の2列は、最初の2列のカラーの「ハーフブライト」コピーです。ハーフブライトネスは、12ビットカラー空間に制限されているため、常に完璧ではありません。 ほとんどの同時代の競合他社とは異なり、Amigaは真のプリエンプティブマルチタスクを備えており、プレーングラフィックスは便利なリソース節約を提供します。テキストエディタは2色スクリーンで問題なく動作し、グラフィックスプログラムを32色スクリーンで同時に実行するために使用できるメモリを節約できます。また、ピクセルごとに1バイトを割り当てて未使用のビットを無駄にするのではなく、単一ピクセルに必要なビット数だけが必要であり、メモリのアドレス指定を健全に保つという意味でもメモリを節約します。さらに、スクリーンは任意に寸法設定および配置でき、例えば物理的な表示領域の下部に320x50ピクセルのローレゾスクリーンを表示するなどです。スクリーンごとに必要な以上のピクセルを使用しないことも、メモリ節約に役立ちます。 ハードウェアのいたずら Amigaは元々ゲームマシンとして設計されたため、グラフィックスを扱うための多くのハードウェア機能を持っています。スクリーンの再配置は瞬時であり、画面全体のスクロールは非常に高速です。オペレーティングシステムでさえ、ユーザーがデスクトップスクリーンを可視領域よりも大きく設定し、マウスを使用してスクロールできるようにしています。表示解像度と色深度を、リフレッシュサイクルの任意の時点で簡単に変更することもできます。これは、複数のスクリーンを同時に、重なり合ってさえ表示できることを意味し、エンドユーザーに統一された表示エクスペリエンスを維持します。 異なる解像度と色深度を持つ2つのスクリーンの同時表示を検討してください。 上記の例は、スクリーン概念に対する独自の解釈を提供し、Amigaのグラフィックスハードウェアを操作するための簡単な抽象化を提供するBASIC方言であるAMOSを使用して作成されました。描画、スクロール、スクリーンの再配置、パレットの変更など、あらゆる種類のグラフィックス操作は、各スクリーンで個別に実行できます。 この高速な解像度と色深度の切り替えは、AmigaのCopper(コプロセッサの略)によって制御されます。Copperはビデオレンダリングハードウェアと同期して動作し、カラー値やハードウェアスプライトの操作にも使用されます。とりわけ、これは「Copperグラデーション」または「Copperバー」と呼ばれる独特のAmiga機能を作成できます。これは、特定のカラーレジスタの色値が水平ラインごとに変更され、印象的なグラデーションや、利用可能な32のパレットインデックスで達成できる以上の画面上の色を生み出します。 これは通常の4色Workbenchスクリーンです。背景のグラデーションは、ビデオレンダリング中に一定間隔でカラーインデックス0の値が変更されるCopperを使用して作成されています。 異なる解像度と色深度を持つスクリーンを組み合わせることは、多数のユースケースがあります。画面あたりの最大色が32色であっても、これらの32色は各スクリーンで異なる場合があります。したがって、ゲームは、メインゲームエリアに32色、ユーザーインターフェースやステータス表示に別の32色を使用することで、同時に64色以上を表示できます。これは、Copperグラデーションと組み合わせて、さらに色数を増やすことができます。 エンドユーザーエクスペリエンス ゲーム以外では、この高速なグラフィックス処理