Amiga スクリーン入門
Amiga の「スクリーン」は OS 側の概念で、解像度と色深度を自由に設定でき、OCS ハードでは複数のスクリーンをドラッグして切り替えられた。現代の固定された表示領域との違いを解説する。
日本語
コピー

Amiga のスクリーン:入門ガイド
Amiga のスクリーン:入門ガイド
2026 年秋
インターネットには暗黙のルールがあるらしい。Amiga に関わる話題が出た瞬間、少なくとも一人の Amiga ファン(私もその一人だ)が現れて スクリーン という概念を説明し始める、というものだ。スクリーンごとに解像度を変えられるんだよ、と言い、スクリーンはドラッグもできるんだよ、と言う。他の Amiga ユーザーがそれに続き、Amiga を知らない人たちはスクリーンの何がそんなに良いのか、おそらく最後までピンと来ないままだ。そんな状況に終止符を打つべく、この記事を書く。無防備な一般人を、完全なる Amiga スクリーン信者に仕立て上げるために。
話を単純にするため、ここでは Amiga 最初期のグラフィックハードウェア、OCS(Original ChipSet)に絞る。後継の ECS(Enhanced ChipSet)と AGA(Advanced Graphics Architecture)がハードウェアの制約をいくつか解除したが、基本の仕組みと使用感は今も変わらない。
典型的な Amiga のスクリーン。Workbench のデスクトップが表示され、shell ウィンドウが一つ開いている。
スクリーンはスクリーンはスクリーン
Amiga における スクリーン という語の特別な意味は OS に由来する。OS がこの言葉を特定の表示領域を指すものとして使っているのだが、実際それは文字通りスクリーンなのだ。Amiga のゲームやデモのプログラマーはこの概念をあまり気にしない。たとえば『Amiga ハードウェアリファレンスマニュアル』は表示領域のことを "playfield" と呼んでいるし、デモプログラマーなら raster split の話をするだろう。ただ、話を簡単にするため、ここでは スクリーン で統一する。
つまり Amiga の スクリーン とは、グラフィックを描くための領域のことだ。解像度も色深度もスクリーンごとに違い、一つのプログラムが異なる解像度のスクリーンをいくつでも開いて表示できる。
現代では、ほとんどの場合、固定解像度の表示領域を一つだけ使う。モダンな OS と液晶ディスプレイがそうさせている。だが CRT ディスプレイ全盛期には、解像度の異なる表示画面を開くのは日常茶飯事だった。たとえば VGA 対応の MS-DOS マシンなら、画像ビューアがファイルを眺めるときは 16 色・720x400 ピクセルのテキストモード解像度を使い、画像を表示するときは 256 色・320x200 の新しい表示画面を開く、といった具合だ。
こうした解像度と色深度の組み合わせは、ほぼすべての家庭用コンピュータに存在した。用途ごとに妥当な速度とメモリ使用量を実現するための、ハードウェアレベルでの強制的なトレードオフだった。当時メモリは非常に高価で(歴史はよく繰り返す!)、Amiga は出荷時の構成では CPU・映像・音声ハードウェアが共有する比較的小さな RAM に頼っていた。だからこそ、画面の解像度と色深度をきめ細かく柔軟に制御できたのだ。
インデックスとビットプレーン
Amiga は通常、インデックスパレット を使う。スクリーンごとに限られた数のカラーレジスタがあり、そこにユーザー定義の色値が入る。値は 12 ビットの色空間(AGA では 24 ビット)から選ぶ。たとえば色インデックス 0 を F00、つまり赤に設定できる。
個々のピクセルの色値を制御するには、プレーナ グラフィックモードを使う。つまり、スクリーンの色深度は ビットプレーン(略して bpl)を増やすことで上がる。各ビットプレーンはメモリ上に別々に置かれ、あるピクセルの色インデックスを変えるには、各ビットプレーンで対応するビットを反転させる必要がある。
したがって、ビットプレーン 1 枚で色インデックスは 2 つ、2 枚で 4 つ、というふうに増え、初期の Amiga ハードウェアは最大 5 枚のビットプレーンで 32 色(AGA では 8 bpl で 256 色)を扱える。

ビットプレーンを組み合わせてピクセルごとの色インデックスを表す仕組みの図。(Amiga Hardware Reference Manual より)
OCS と ECS では、スクリーンごとのビットプレーン最大数は表示解像度によって決まる。そしてその解像度は、PAL や NTSC のテレビで正しく表示されるように設計されていた。OCS Amiga には低解像度と高解像度がある。PAL では、低解像度は 320x256 ピクセル(インターレースで 320x512)、最大 32 色(5 bpl)。高解像度は 640x256(インターレースで 640x512)、最大 16 色(4 bpl)。オーバースキャン を使えばこれらの基本解像度を少し広げられ、高解像度では最大 724x283 までいけるが、あらゆる種類のディスプレイやテレビで全体が見える保証はない。
低解像度では、6 枚目のビットプレーンを HAM(Hold-And-Modify)に使える。これにより OCS Amiga の全 4096 色を(いくつか制約はあるが)自由に使える。EHB(Extra Half-Brite)に使うこともでき、これは 32 色のパレットを、元の色の輝度を半分にしたコピー 32 個として複製する。

Deluxe Paint で EHB 画像を編集中。画面右下のカラーピッカーに注目。右端の 2 列が、最初の 2 列の色の「ハーフブライト」コピーになっている。ハーフブライトは 12 ビットの色空間に制約されるため、常に完璧とは限らない。
Amiga は同世代のほとんどの競合と違い、本物のプリエンプティブ・マルチタスクを備えていた。そしてプレーナグラフィックスは、この点で都合よくリソースを節約できた。テキストエディタは2色スクリーンでも問題なく動くし、浮いたメモリで32色スクリーンのグラフィックプログラムを同時に走らせられる。メモリの節約はほかにも効く。1ピクセルの保存に必要なビット数はちょうどその分だけで済み、しかもメモリアドレスは依然としてまともなままだ。ピクセルごとに1バイト割り当てて未使用ビットを無駄にする一部の方式とは違う。さらに、スクリーンのサイズと位置は自由に設定できる。たとえば 320x50 ピクセルの低解像度スクリーンを、物理表示領域の下端に表示させられる。各スクリーンが必要な分しかピクセルを使わないことも、メモリ節約に寄与する。
ハードウェアの芸当
Amiga はもともとゲーム機として設計された。つまりグラフィックスを扱うためのハードウェア機能が大量に載っている。スクリーンの再配置は一瞬で終わり、スクリーン全体のスクロールも極めて速い。そのため OS 自体が、可視領域より大きなデスクトップスクリーンをユーザーに設定させ、マウスでその中をスクロールすることを許している。
リフレッシュサイクルのどの位置でも、表示解像度と色深度を変えられるのも簡単だ。つまり複数のスクリーンを同時に組み合わせたり、重ね合わせたりしながら、エンドユーザーには一貫した表示体験を保てる。次の例を見てほしい:

解像度も色深度も異なる2つのスクリーンを同時に表示している。
上の例は BASIC 方言の AMOS で書かれている。AMOS は「スクリーン」という概念を独自に解釈し、Amiga のグラフィックスハードウェアを操作するための簡単な抽象化を提供する。描画、スクロール、スクリーン位置の移動、パレットの差し替えといったグラフィックス操作は、どれも個々のスクリーンに対して単独で行える。
この解像度と色深度の高速切り替えを制御しているのが Amiga の copper(co-processor の略)だ。copper はビデオ描画ハードウェアと同期して動作し、色の値やハードウェア sprite の操作にも使われる。Amiga 特有の「copper グラデーション」あるいは「copper バー」もこれで作れる。水平走査線を1本進めるごとに、ある色レジスタの値を変えるのだ。こうして目を引くグラデーションが生まれ、画面上の色数は32個のパレットインデックスが本来扱える上限を超えられる。

ごく普通の4色 Workbench スクリーン。背景のグラデーションは copper が生成している。ビデオ描画の過程で一定間隔ごとにカラーインデックス0の値を変えているのだ。
解像度や色深度の異なるスクリーンを組み合わせる用途は多い。1つのスクリーンが最大32色しか出せなくても、スクリーンごとにその32色を別々にできる。だからゲームなら64色以上を同時に出せる。メインのゲーム領域に32色、ユーザーインターフェースやステータス表示に別の32色、といった具合だ。copper グラデーションを併用すれば、色数はさらに増やせる。
エンドユーザー体験
ゲーム以外でも、この高速なグラフィックス処理能力はマルチタスクの生産性ソフトを動かすときに役立つ。そして(ようやく)スクリーンドラッグの話になる。
家庭用コンピュータや初期 PC の低い表示解像度に縛られ、ほとんどのアプリは全画面モードで動いていた。表示領域を独占し、できるだけ多くの情報(とユーザーインターフェース)を見せるためだ。Amiga でマルチタスクをするときは、スクリーン右上のボタンかシステム全体のショートカットで、スクリーン間を素早く切り替えられる。だがスクリーンはドラッグもできる。スクリーンのタイトルバーをマウスでクリックし、下へ引っ張れば、背後で動いている別のプログラムが現れる。次の図のとおりだ。

スクリーンドラッグがユーザーのディスプレイ上でどう見えるかの一例。
正直に言えば、多くの Amiga ファンがこれをありがたがるわりに、スクリーンドラッグの実用性は限られている。少なくとも私自身のワークフローではそうだ。だが1985年当時、この効果はかなり衝撃的だったはずだ。当時、マルチタスクとカラーグラフィックスが同時に存在することは、極めて高価な Unix ワークステーションでもなければまずなかった。使い方の一案として、チャットプログラムのスクリーンを少し下へドラッグし、後ろのブラウザスクリーンで進行中のファイルダウンロードを確認する、というものが挙げられていた。とはいえ Amiga では全画面切り替えがあまりに楽なので、ドラッグはむしろ不器用に感じられる。
このスクリーン処理がどれほど機敏か示すため、短い動画を用意した。Amiga 600 に接続したフラットパネルディスプレイを撮影したもので、このマシンは 7 MHz(つまり 0.007 GHz)で、ハードウェアは1985年の初代 Amiga 1000 とほぼ同じだ。動画では音楽を再生しながらテキストエディタとグラフィックプログラム Deluxe Paint を走らせ、もちろんスクリーンの切り替えとドラッグも実演している:

上の画像をクリックすると動画が見られる。
デュアル playfield
Amiga は dual playfield と呼ばれる機能もサポートする。2つのスクリーンが重なったとき、手前のスクリーンのカラーインデックス0が透明になり、奥のスクリーンの中身が見える仕組みだ。ほかのカラーインデックスはそのままで、各スクリーン上の通常の操作もそれぞれ独立して行える。スクロール、描画、パレット変更などだ。

『Amiga Hardware Reference Manual』にある dual playfield の図。
次のスクリーンショットは dual playfield と sprite を組み合わせたものだ。ワインレッドの背景とピンクの星は背景 playfield に描かれている。これは4色スクリーンだ。緑と紫の帯は sprite で、sprite の描画優先度を設定して2つの playfield の間に置いている。残りはすべて前景 playfield に描かれ、こちらは8色スクリーンだ。Amiga のハードウェアは各レイヤーが滑らかに動くことを保証する。7 MHz のマシンでも変わりない。

興味のある読者は Demozoo からこの小さな Amiga のオープニングデモをダウンロードするか、視聴してほしい。
全画面のワークフロー
現代のマシンでは、プログラムは独立したスタッキング可能なウィンドウとして動かす方が好みだ。理由のひとつは今の画面が十分に広いこと、もうひとつは多くの現代的なプログラムがそもそもそう使われる前提で設計されていることにある。とはいえ、Visual Studio Code のように最大化して画面いっぱいに使いたいアプリもある。ウィンドウマネージャの仮想デスクトップのおかげで、Amiga のときと同じように別のワークスペースへ瞬時に切り替えられる。
だが、高解像度のワイドディスプレイで最大化すると間抜けに見えるプログラムもある。man ページは 80 桁のターミナルウィンドウで読みたいし、正統派のファイルマネージャは 5:4 のような正方形に近い比率のほうがずっと理にかなっていると感じる。同じ画面で複数のウィンドウ化したアプリを動かす利点は、それらを同時に見られてコンテキストの切り替えが速いこと。欠点は、マウス操作のなかには全画面アプリでしか本当に使い勝手がよくならないものがあることだ。
Directory Opus を例に取ろう。私が知るかぎり最も優れた正統派ファイルマネージャのひとつで、Amiga で全画面にして使うと、マウスポインタを画面のどちらかの端まで振ってからクリックするだけで、対応する lister に表示中のディレクトリの親ディレクトリへ飛べる、といった具合に手に馴染む操作ができる。

Directory Opus のファイルリストの端をクリックする。
同じ機能はもっとウィンドウ寄りの環境でも実装できるだろうが、それでは意味がない。マウスポインタの境界となる画面の端がなければ、あの細いクリック領域は狙いにくくて腹が立つだけだ。
もうひとつ、もっと単純な楽しみでありながら、現代のワイドディスプレイではなかなか忠実に再現できないものがある。80x24 文字の全画面テキストモードでコードを編集すること——あるいはターミナルベースのアプリならほぼ何でも動かすことだ。あの比率はただしっくりくる。
まだまだ先がある
本稿は画面と Amiga のグラフィックハードウェアのごく表面に触れたにすぎない。ビットプレーングラフィックを例に取れば、ピクセルの色値を構成するビットプレーンの一部を操作するだけで、面白いトリックやエフェクトがいくつも実現できる。しかも Amiga の blitter ハードウェアについてはまだ触れていない。グラフィックメモリを極めて高速にコピーでき、ビットプレーンの合成やマスクのモードも豊富で、激しいアーケードアクションゲームにはうってつけだ。
スプライトは簡単に触れただけで、低ビットプレーンの画面に色を追加する方法や、重ね合わせを再利用してスプライトの色を増やす方法は扱わなかった。深く知りたいなら Codetapper's Amiga Site を勧める。Amiga ゲームプログラミングのグラフィック面を非常に詳しく解剖している。Shadow of the Beast に関する記事は特に一読の価値がある。あのゲームは Amiga のグラフィックハードウェアを実に独創的に使いこなし、多層の滑らかなパララックススクロールを備えた、視覚的に見事な仕上がりを実現している。
まとめ
Amiga の画面には面白い性質がたくさんある。
- 画面はビットプレーングラフィックを使う。メモリを節約しつつ、画面上で使える色を 2 色から段階的に 32 色まで増やせる。
- 画面のサイズと位置は自由に設定できる。
- 解像度(ピクセルサイズ)、色深度、パレットがそれぞれ異なる複数の画面を同時に表示し、任意の重ね方で背後を覗かせられる。
- 2 つの異なる画面の切り替えは瞬時だ。
- 画面を段階的にドラッグして、背後の別の画面を露出させられる。
- Dual Playfield は「アルファチャンネル」を使って 2 つの異なる画面のグラフィックを合成する。
Amiga のソフトウェアは、OS を含めてこれらの特性を存分に活かしている。ハードウェア資源が限られ、表示解像度も比較的低いなかで、それでも効率的なマルチタスクのワークフローを支えてきた。
ネットで Amiga の話をした以上、あとは Amiga ファンがメールを送ってきて、画面の何がそんなにいいのかを説明しようとしてくるのを待つだけだ。それまでの間、達者で、よいプログラミングを。