ZX Spectrum グラフィックモード

PAL テレビでの ZX Spectrum グラフィック出力のシミュレーション

オリジナルのZX Spectrumコンピュータは、1ピクセルあたり1ビットビットマップカラーグラフィックビデオ出力を生成します。複合ビデオ信号はRF変調器によって生成され、1980年代の当時のテレビでの使用を目的として設計されました。

フレームバッファ画像サイズは 256 × 192ピクセルで、変更不可能な 15 色のパレットがあり、カラーパレット全体が非常に飽和しています。カラー出力の解像度は、ピクセルビットマップの解像度の 64 倍低いです。[1] [2]非常に低いカラー解像度が使用されたのはメモリを節約するためで、カラー属性用の合計はわずか 768 バイトです。色はピクセルビットマップとは別に、32 × 24 セルのグリッドとして、文字セルごとに 1 バイトを使用して格納されます。1 つの文字セルは 8 × 8 ピクセルで構成されます。実際には、これはどの文字セルも、含まれる 64 ピクセルを着色するために選択された 2 色しか使用できないことを意味します。[3]

このマシンは標準的なテレビでの使用を想定して設計されているため、256 × 192ピクセルの領域は、標準的な384 × 288ピクセルの1/4解像度(625ライン)のテレビ画面領域の残りのスペースを埋める広い枠で囲まれています。通常、この枠領域は単色で表示されますが、ソフトウェアのトリックを使用することで、低解像度のグラフィックを表示することも可能です。[4]

ZX Spectrumには、スクロールスプライト用の専用ハードウェア、あるいは専用のハードウェアブリッターがありませんでした。カラーグラフィックの表示を容易にするために、オリジナルのZX Spectrumは16KiBのディスクリートグラフィックRAMを搭載していました。グラフィックRAMのレイテンシは150ns、ピーク帯域幅は2.1875MB/s(224×5/8バイト/64μsとして計算)でした。[5]

フレームレートとタイミング

オリジナルのZX Spectrumは、PAL規格のフレームレート50Hzに厳密に準拠していません。ZX Spectrumは、CPUクロック周波数3.5MHzで1本のビデオラインを正確に224CPUクロックサイクルで出力しますこれはPAL規格の64μsのラインタイムと完全に一致します。しかし、ZX Spectrumは1つの表示フレームを形成するために312本のラインしか生成しません一方、625本のラインを持つPAL規格では、312.5本のラインが推奨されています。その結果、ZX Spectrumのフレームレートは約50.08フレーム/秒となります。[6]

この矛盾は多くのプログラマーには認識されておらず、彼らはフレームレートを50フレーム/秒と想定していました。[要出典]その結果、内蔵BASICインタプリタを含む一部のプログラムでは、実行時間がわずかに速くなりすぎました。後期のZX Spectrumモデルでは、フレームレートとCPUクロックレートがわずかに異なり、古いソフトウェアでは垂直同期を使用する場合は動作がわずかに遅くなりすぎ、CPUクロックレートに依存する場合は動作が速すぎます。[6]

各表示フレームの開始時に、マスク可能な割り込み信号がZX SpectrumのZ80 CPUに送信されます。これにより、プログラムは時間経過を容易に検出・測定できます。また、グラフィックス出力とビデオフレームの表示を完全に同期させることもできます。これは、現代のコンピュータの垂直同期と全く同じ仕組みで、ティアリング(画面のティアリング)を防ぐために利用できます

PALでの表示タイミング
ZXスペクトラム16K、48K、ZXスペクトラム+ [7]128K、+2、+2A、+3 [8]
PALラインあたりのCPUサイクル224228
PALラインタイム64μs64.28マイクロ秒
PAL フレームあたりのライン数312311
フレーム時間19.968ミリ秒19.9915ミリ秒
フレームレート50.08フレーム/秒50.02フレーム/秒
ディスプレイの垂直同期Z80マスク可能割り込みライン(INT)[9]によって利用可能Z80マスク可能割り込みライン(INT)[9]によって利用可能

グラフィックスメモリ構造とピクセル座標

16KiBのディスクリートグラフィックRAMは、CPUのアドレス16384~32767に直接アクセスできます。グラフィック用のRAMチップは、CPUとULA内のビデオ回路の両方に接続されています。メインのピクセルビットマップはグラフィックRAMの先頭に格納され、そのすぐ後に属性配列が続きます。[10]フレームバッファ全体は6912バイトで、ピクセルビットマップとそれに続く属性配列で構成されています。16KiBのグラフィックRAMの残りの部分は、ビデオ回路では使用されません。

ビデオコントローラ回路は、セミカスタムのFerranti ULA 集積回路に組み込まれており、約480個の構成可能なセル(モデルによって異なります)で構成されています。ULAのセルは、ZX Spectrum用のULAを製造するために工場で様々な方法で構成されており、1つのセルは約2つのNANDゲートの機能を備えています。[11]

CPUによるグラフィックスRAMへのアクセスは、ビデオコントローラがCPUよりも優先度が高いため、競合アクセスと呼ばれます。グラフィックスRAMへのアクセスでは、CPUは通常、ビデオコントローラがデータ読み取りを完了するまでわずかな遅延が発生します。[12]

ビデオDRAMのアドレスはインターリーブされてお​​り、ピクセルビットマップの座標系は特異なものとなる。ピクセルの座標が(x, y)で、x座標軸のビットがx7、x6、x5、x4、x3、x2、x1、x0、y座標軸のビットがy7、y6、y5、y4、y3、y2、y1、y0とラベル付けされている場合、ピクセルはアドレスビットパターン0、1、0、y7、y6、y2、y1、y0、y5、y4、y3、x7、x6、x5、x4、x3のバイトに格納される。[13]

アドレスビットパターンには、必要以上に2つのビットパターン転置が含まれています。最も高速かつ単純なビットパターンは、0、1、0、x7、x6、x5、x4、x3、y7、y6、y5、y4、y3、y2、y1、y0であり、ピクセルアドレスは最初に列単位で増加します。残念ながら、ZX Spectrumの設計者は極度の時間的プレッシャーの中で作業していたため、この単純な改善に気付きませんでした。[11]

オリジナルのZX Spectrum 48KモデルはメインRAMが32KiBでしたが、16KモデルはグラフィックRAMが16KiBしかありませんでした。そのため、カラー属性配列はわずか768バイトに収まるように設計されました。カラー属性の縦軸解像度は2倍、あるいは4倍にすることも容易でしたが、そうするとプログラム用の空きメモリ容量がさらに1~2KBほど減少し、特に16KiBモデルではその傾向が顕著でした。

カラーグラフィックスの表示を容易にするために、オリジナルのZX Spectrumは、コモドール64を含む他のほとんどのマイクロコンピュータの共有グラフィックRAMアーキテクチャとは異なり、 16 KiBの独立したグラフィックRAMを採用しています。[引用が必要]ピクセルビットマップの解像度は、他の同時代のマイクロコンピュータと同様で、人気の高いコモドール64では、一般的に1ピクセルあたり2ビットで160×200の解像度を使用しています。[14]

「属性」と呼ばれるカラーセルのシステムは、カラーアプリケーションのプログラミングを著しく複雑にするため、多くの批判を浴びました。[引用が必要]それでも、カラー属性システムは、当時の一般的なアプリケーションやゲームをサポートするのに十分な機能を備えており、非常に限られたカラー機能でさえユーザーに歓迎されました。[引用が必要]

カラーパレット

利用可能な色を表示するZX Spectrum画面

ZX Spectrum(および互換機)コンピュータは、 4ビットRGBIパレット哲学(CGAThomson MO5Sharp MZ-800Mattel Aquariusなどでも使用されている)のバリエーションを使用しており、明るさのバリエーションを持つ8つの基本色が得られます。[15] 128、+2、および+3モデルでは、ULAはTTLレベルの赤、緑、青、および同期信号を出力し、 TEA2000ビデオエンコーダで複合ビデオ信号生成に使用されます[16] [17] [18] [19]

3ビットパレットの各色には、基本色明るい色の2つのバリエーションがあります。[15]パレットの明るいは、ビデオディスプレイの輝度信号の最大電圧レベルを使用して生成されます。パレットの基本色は、輝度信号の電圧を単純に下げることによって生成されます。[20]

文字セル全体の明度ビットは1つしかないため、文字セルの2つの色は明度プロパティを共有する必要があります。この制限を除けば、文字セルの2つの色として、パレットカラーの任意の組み合わせを自由に選択できます。次の表では、すべての「明るい」色が右側の列に示されています。


番号
バイナリ値色の
名前
バイナリ値色の
名前
GRBGRB
00000#0000000001#000000「明るい」黒
10010#0100CE0011#0200FD明るい青
20100#CF01000101#FF0201鮮やかな赤
30110#CF01CEマゼンタ0111#FF02FD明るいマゼンタ
41000#00CF151001#00FF1C明るい緑
51010#01CFCFシアン1011#02FFFF明るいシアン
61100#CFCF15黄色1101#FFFF1D明るい黄色
71110#CFCFCF1111#FFFFFF明るい白
  • 一部のZX Spectrum クローンまたはNTSCマシンでは、「明るい黒」が暗い灰色として表示されることがあります。[引用が必要]
  • 表中の色の輝度は相対的なものであり、絶対的なものではありません。一般的なテレビは通常、標準的なsRGB液晶の輝度である80 cd/m 2よりもはるかに高い輝度を備えています。絶対的な値で見ると、ZX Spectrumの色は表中のsRGB色よりもはるかに明るくなっています。ZX Spectrumの「白」はsRGBの最も明るい白色と同等の明るさですが、「明るい白」は標準的なsRGB色の輝度の限界を超えています。
  • sRGBディスプレイはPALテレビ規格のすべての色を再現できないため、緑、黄、シアンのsRGB値はあくまでも近似値です。PALの緑色蛍光体は、現代の一般的な液晶ディスプレイのsRGB色空間では色域外です。ほとんどの用途において、この色の不正確さは小さいものです。[要出典]
  • sRGBとしてシミュレートされた色は、明度が低い部分を85%の電圧(0.55 V)、明るい部分を100%の電圧(0.65 V)と仮定しています。[20] ZX Spectrumの各モデルは色に異なる電圧を使用しているため、ここでの値は参考値です。色はPAL TV色空間をsRGB色空間に変換することで計算されました。BT.470 PAL規格で推奨されているPALガンマ2.8が適用され、原色からsRGB原色への変換(IEC 61966-2-1 sRGB規格による)、および標準sRGBガンマ補正(逆EOTFによる)が適用されました。
  • 示されている色は、実際のZX Spectrumの色ではない可能性があります。これらの色の近似値は、ZX SpectrumがPALテレビ出力で生成できる最大の彩度を仮定して計算されています。実際のZX Spectrumの色は現時点では不明であり[説明が必要] 、おそらく彩度はそれよりも低いと考えられます。実際のZX Spectrumの色を計算するには、 ZX SpectrumのPAL出力をオシロスコープで測定し、各色についてクロマサブキャリアの位相振幅シフトを測定する必要があります[出典が必要] 。

ZX Spectrumエンコーディングでは、色成分は一般的なRGB順ではなく、GRB(緑、赤、青)順で表されます。GRB順の利点は、色番号が輝度の上昇順に並べられることです。そのため、白黒ディスプレイで表示すると、黒から白へのグラデーションが形成されます。

セルのすべての色特性は、属性と呼ばれる1バイトとしてメモリに保存されます。最下位ビットから最上位ビットの順に、属性バイトは、値が1のピクセルの色に3ビット、値が0のピクセルの色に3ビット、明るさフラグに1ビット、そして点滅効果に1ビット割り当てられます。点滅効果により、表示される前景色と背景色は0.64秒ごとに切り替わります。[21]

現在のZX Spectrumエミュレータのほとんどは、不正確な色を表示し、場合によっては彩度が高すぎる可能性があります。[要出典]これらの色は、PALからsRGBへの色空間変換の多くの微妙な要素を考慮に入れない単純な近似値で計算されています。同様に、ZX Artのウェブサイトでは、不正確な色の使用が非常に一般的です。[要出典]理論的にはあり得ないsRGBカラー#00CD00が、ZX Spectrumの緑色として一般的に使用されています(つまり、Spectrumの実際の緑色はおそらくより青みがかっています)。[要出典]

色に関するBASICコマンド

文字セルの2つの色は、前景色背景色と呼ばれます。nの値が0から7までの任意の値の場合以下のシンクレアBASICコマンドを使用してセルの色を設定または変更できます。[15]

  • PAPER n文字セルの背景色。セル内の値0のすべてのピクセルに適用されます。
  • INK n文字セルの前景色。セル内の値1のすべてのピクセルに適用されます。
  • BRIGHT i文字セルの明るさビットの値を選択します。値は0または1のいずれかになります。

さらに、このBORDERコマンドはピクセルビットマップを囲む画面領域の色を選択します。輝度フラグは使用しないため、境界色には8つの基本色のみがサポートされます。 [22]

標準モード

属性ブロックがはっきりと見える標準のZX Spectrum画面

オリジナルの ZX Spectrum の画面解像度は 256 × 192 ピクセルです。[23] [24]いずれの場合も、色は非常に飽和しています。色情報は、属性ブロックと呼ばれる 8 × 8 ピクセル領域のグリッドとして、この上に重ね合わされます。[25] [26]属性ブロックのすべての色プロパティは、単一の属性バイトとしてメモリに保存され、各属性ブロックは 1 つの文字セルに対応します。各属性ブロック内では、8 色のパレットから 2 色しか使用できません。さらに、属性ブロック全体を「明るい」色に指定すると、合計 15 色が可能になります (黒には「明るい」バリエーションはありません)。多くのプログラムでは、属性ブロックごとに 2 色しか使用できないというこの制限は、属性の衝突という望ましくない効果として明らかです。

このモードの画面はピクセル ビットマップ用に 6144 バイトを占有し、色属性と合わせて合計 6912 バイトになります。

詳細:

ピクセル: 256 × 192
属性: 32 × 24
色: 15 (明るい色と明るい色を含む)
マシン: すべて

モノクロテレビとモニター

モノクロディスプレイ上のZX Spectrum

モノクロ モニターまたは白黒テレビを使用することにより(またはカラー テレビの彩度設定を下げることにより)、Spectrum の色範囲にわたる強度の違いを利用して、256 × 192 解像度の 15 階調グレースケール画像を生成することができます。

詳細:

ピクセル: 256 × 192
属性: 32 × 24
色: 15 グレースケール
マシン: すべて、モノクロディスプレイを使用

ハードウェアハイカラー

Timex Sinclairマシン[27] [28]、PentagoneLeMeNt ZX、MB03+ Ultimateインターフェースなど、いくつかのサードパーティSpectrumクローンはHi-Colourという画面モードをサポートしており、[28]属性ブロックのサイズは通常の8×8ピクセルではなく8×1ピクセルである。[29] [30]このモードの画面は12KBのRAMを必要とする。Timexの場合、このモードはコマンドでアクティブ化されるOUT 255,2[27] [28] Timexマシン用の少なくとも1つのエディタがこのモードをサポートしている。[31]さらに、この画面モードはMB-02ディスクシステムのDMAハードウェア[32] (この技術はMultitech [33]と呼ばれている)を使用して生成することができ、 SAM Coupé [34]ではモード2 (線形バイト順序)としても利用できる

ソフトウェア ハイカラー

ZX Spectrum「8×1」属性/ハイカラーディスプレイ
4×1属性の例画像
4×2属性の例画像
4×4属性の例画像
ZX Spectrum「8×2」属性表示

他のSpectrumモデルでは、 ULAがビデオ出力を生成する際に各ピクセル行の属性情報を再読み込みするという事実を利用することで、この効果を再現することができる。つまり、連続する行の間に関連するメモリ位置に新しい値を書き込むことで、異なる色のペアを表示することができる。しかし、Spectrumのプロセッサは1つのスキャンラインで属性バイトの行全体に書き込むほど高速ではないため、8×1の属性は20列でしか実現できない。[35]この技術は、 HicolourMulticolourFLIBIFROST*2SuperColour[36] Rainbow GeneratorRainbow Processor [37]モードなどと呼ばれることもある[30]

  • ピクセル: 256 × 192
  • 属性: 32 × 192 (18 × 192 の領域に制限)
  • 色: 15
  • マシン: すべて (各マシンのタイミングに合わせて調整された特定のコード付き)

この手法のバリエーションとして、2本のスキャンラインにわたって属性の列を変更する方法があります。これにより、画面のより広い領域に8×2ピクセルの属性ブロックが生成されます。このモードはバイカラーと呼ばれ、 Nirvana+エンジンを使用することで画面幅全体に適用できます[38] [39]

  • ピクセル: 256 × 192
  • 属性: 32 × 96
  • 色: 15
  • マシン: すべて (各マシンのタイミングに合わせて調整された特定のコード付き)

特殊なケースとして、属性セルごとに2つの色を4ピクセルずつ交互に表示する方法があります。これにより、4 × 1の領域をそれぞれ独立して色付け可能な「ピクセル」として扱うことができます(ただし、8 × 1のセルごとに1つの輝度レベルという制限は依然として適用されます)。また、このモードの4 × 2バージョンは、画面のより広い領域に適用できます。さらに、128Kマシンでは、2つのビデオRAMをタイミング制御で切り替える(属性データを書き換えるのではなく)ことで4 × 4バージョンを実現し、一方の画面の文字セルの上部ともう一方の画面の文字セルの下部を表示できます。

  • ピクセル: 64 × 192; 64 × 96; 64 × 48
  • 属性: 8 × 1 明るさ制限
  • 色: 15
  • マシン: すべて (各マシンのタイミングに合わせて調整された特定のコード付き)

ULAプラス / HAM256 / HAM8×1

ULAplusは標準のZX SpectrumおよびTimexのHi-Res/Hi-Colourモードと互換性があり、パレットの再定義機能も備えています。[40]基本の16色をわずかに変更するだけであれば、ULAplusソフトウェアは標準のSpectrumで表示できます。64色すべてを使用すると、オリジナルのSpectrumの「フラッシュ」属性が引き起こされるため、互換性がありません。[41] Amiga HAM風のモード(HAM256およびHAM8×1)も使用可能で、最大256色を画面に表示できます。[42] [43] [44] [45]

詳細:

ピクセル: 256 × 192; 512 × 192 (高解像度モード)
属性: 32 × 24; 32 × 192 (8×1 ハイカラーモード)
色数: 256色中2色 (高解像度モード)、256色中64色、256色 (HAM256およびHAM8×1)
機種: ZXスペクトラムSEZXスペクトラムネクストZX-Unoクロエ280SE[46] クロエ140SE[46] エレメンツZXzx128u+[46]ザ・スペクトラム[47]
インターフェース: MB03+ Ultimate

インターレース/スイッチングモード

インターレース ZX Spectrum 画像が CRT 画面上でどのように見えるかの理論的なシミュレーション

インターレース

Timex クローンと ZX Spectrum 128K は、単一のコマンドを使用して切り替えることができる「シャドウ」画面領域を実装しておりOUT、この目的で 2 つの画像をすばやく切り替えるためによく使用されます (ただし、画面全体ではないものの、標準のブロック コピーを使用してもこれを実現できます)。

フレーム割り込み(50Hz)ごとに2つの画面を交互に表示することで、垂直解像度を192本から384本に倍増させたような効果をシミュレートできると理論づけられました。しかし、当時の標準であったCRTテレビ画面で見ると、現代のモニターほどちらつきは目立たないものの、それでも目的の効果を得るには目立ちすぎます。サンプル画像はこちらにリンクされています(注意:リンクされた画像は非常に速いちらつきがあり、光過敏性てんかんの患者に発作を引き起こす可能性があります)。

インターレース高解像度モノクロZX Spectrum画像。Sinclair ZX Spectrum +3のコンポジット出力とPCIキャプチャカードを使用して撮影した実画像。

この技術は実際には真のインターレース表示を実現していません。Spectrumはディスプレイハードウェアと非常に低いレベルで同期する能力がないからです。理論的には、現実のハードウェアよりも蛍光体の残光率が高いCRTテレビ画面では、この効果はアンチエイリアシングに似ており、特定のピクセルが半分の輝度で表示されることになります。[30] [48]

ただし、現代のLCD テレビキャプチャ カード、または元のアナログ信号をデジタルに変換する(したがって元のタイミング信号を部分的に無視する) その他のデバイスでは、このモードは真のインターレースとして解釈され、右側の猫の画像に示すように、意図したとおりに画面が表示されます。

詳細:

ピクセル: 256 × 384
属性: 32 × 24
色: 15

ギガスクリーン / DithVIDE / BZither

GigaScreen ZX Spectrumの画像がCRT画面上でどのように見えるかの理論的なシミュレーション

画像の属性(色)は画面上で50Hzで交互に切り替わり、[49]蛍光体の持続性が十分に高ければ同時フレームをブレンドできるとすれば、約36色のパレット増加を達成することを意図しているが、実際にはCRTディスプレイではちらつきが目立ちすぎてこの効果は得られない。[50]走査線ごとに画面を切り替えて画面を混ぜることも可能だが、これはCPUに非常に負荷がかかり、正確で安定したタイミングが必要となる。

実際のT-stateの精密ソフトウェアを使用すると、128Kの「トーストラック」オリジナルのZX Spectrum 128KでGigaScreenをシミュレートすることが可能です。[51]

Pentagon マシンでは、2 つの交互画面領域をビデオ信号に直接合成するハードウェア変更が利用可能であり、この方法に伴うちらつきを排除します。MB03+ Ultimate インターフェースと eLeMeNt ZX コンピューターは、ちらつきのない GigaScreen の 3 つのハードウェアモード(混合ビデオ RAM、混合ビデオフレーム、自動検出モード)を 256 × 192 および 512 × 192 の解像度で表示できます。

さらに、GigaScreenとHi-Colour技術を併用することで(ちらつきがあるため理論上のみ)、より豊かな色彩の画像を生成することができます。このフォーマットはDithVIDEBZitherと名付けられており、どちらもトゥルーカラー画像をこのフォーマットに 変換する際に用いられるディザリング手法に由来しています。詳細:

ピクセル: 256 × 192
属性: 32 × 24
色: 約36色
機械: すべて(ちらつきあり)
ハードウェア GigaScreen: PentagoneLeMeNt ZX、MB03+ Ultimate (ちらつきなし)

キーレイヤー

MB03+ UltimateインターフェースとeLeMeNt ZXコンピュータは、このグラフィックモードを提供します。このモードでは、ビデオRAM No.1の選択された色の代わりに、ビデオRAM No.2の画像データを表示できます。これにより、属性に3つ目の色が追加されます。

詳細:

ピクセル: 256 × 192、512 × 192
属性: 32 × 24、64 × 48、セルあたり3色
色: 15
マシン: eLeMeNt ZX
インターフェース: MB03+ Ultimate

3色 / マルチクローム / RGB-3 / インタークローム

3色ZXスペクトラムスクリーン

赤、緑、青の3つのレイヤーからなる3つの別々の画像が、視覚の残像効果を利用して、次々と画面に高速で表示されます。[52]その結果、各ピクセルが独立して色付けされた8色の画像が得られます。[53] [54]

詳細:

ピクセル: 256 × 192
属性: 256 × 192
色: 8
マシン: すべて

互換性のあるマシンとインターフェース

後期のZX Spectrum互換機では、追加のビデオモードが提供されました。これらは標準の256×192モードに基づいていますが、オリジナルのSpectrumとは互換性がありません。[30]また、SpectraインターフェースとMB03+ Ultimateインターフェースは、Spectrumのディスプレイを拡張し、より多くの色数や追加のビデオモードをサポートします。

16世紀

ATMターボ/ペンタゴン16色モード

各ピクセルが16色のいずれかを持つビデオモード。[55]詳細:

ピクセル: 256 × 192
属性: なし、制限なし
色: 16
機械: ATMターボペンタゴン

256 × 192 × 16 / モード4

サム・クーペ 256 × 192 × 16 カラーモード

サム・クーペモードでは、各ピクセルが128色のパレットから16色のいずれかを表示できます。[30]詳細:

ピクセル: 256 × 192
属性: なし、制限なし
色: 1行あたり16色(128色から)
マシン: SAM クーペ

384 × 304 × 16

ペンタゴンのコンピュータがサポートするモード。[56]詳細:

ピクセル: 384 × 304
属性: 48 × 38
色: 16
マシン:ペンタゴン

HGFXグラフィックス

eLeMeNt ZXコンピュータMB03+インターフェースは、平面ベースの256 × 192(低解像度)、512 × 192(高解像度)、および512 × 384(超高解像度)解像度を提供します。[57] HGFXグラフィックスは平面レイヤーを介して処理されますが、「チャンキー」RAMページとしてもアクセス可能です。チャンキーのみの最高解像度は、720 × 546ピクセルの「PAL」解像度です。HGFXは、ZXスクリーン互換(非線形または線形)のレイヤー(ビットプレーン)で構成され、低解像度[58]と高解像度モードで最大256色、超高解像度モードで16色、最高解像度で4色を実現します。ZXスクリーンメモリと同様にメモリの一部のみを占有し、独自の内部バッファを備え、いわゆる透明モードで元のZXグラフィックスと組み合わせることができます。[59] HGFXは24ビットのトゥルーカラーパレット(HiRes indeXedColour互換)と256のインデックスカラーを提供します。HGFXの画面データはHAM(Amiga風)モードとFILL(Apple2GS風)モードでも表示できます。

HGFXは、より強力なHGFX/Qシステムをベースにしており、元々は境界領域で320×240または640×240まで拡張可能でした。[60]

詳細:

ピクセル: 256 × 192、512 × 192、512 × 384、720 × 546
属性: なし、制限なし、FILL モードと HAM モード
色数: 最大 256 色 (16777216 から)、最大 16 色 (SuperHiRes)、4 色 (PAL 720 × 546)
マシン: MB03+ Ultimate、eLeMeNt ZX

レイヤー2

詳細:

ピクセル: 256 × 192 (512 色から 256 色)、320 × 256 (512 色から 256 色)、640 × 256 (512 色から 16 色)
属性: なし、制限なし
機種: ZXスペクトラムネクスト[61]

ラダスタン

このモードでは、128×96の倍サイズのピクセルを表示します。各ピクセルは16色のいずれかを保持し、属性制限はありません。ピクセルは4ビットニブル(1バイトあたり2ピクセル)として線形バッファに格納されます。バッファは6144バイト長で、256×192ピクセルの画面と同じメモリを占有します。

詳細:

ピクセル: 128 × 96
属性: なし、制限なし
色: 16 (256色から)
機種: ZX-UnoZX Spectrum Next、MB03+ Ultimate、eLeMeNt ZX

ロレス

このモードでは、128 × 96 の倍サイズピクセルを表示します。各ピクセルは 256 色(512 色から選択)のいずれかを保持し、属性制限はありません。ピクセルは 8 ビットの線形バッファに格納されます。バッファは 12288 バイト長で、256 × 192 ピクセルのプライマリ (DFILE1) およびシャドウ (DFILE2) スクリーンと同じメモリを占有します。

詳細:

ピクセル: 128 × 96
属性: なし、制限なし
色: 256 (512から)
機種: ZX Spectrum Next

スペクトラ (+128)

Spectraには31種類の表示形式があり、最大64色を同時に表示できます。また、属性の高さは1、2、4、8ピクセル、幅は4、8ピクセルと、様々な色解像度で表示できます。[62]

高解像度モード

512 × 192 × 2 / 高解像度

このモードは主に64×24または85×24列のテキスト画面を表示するために使用され、当初はTimex Sinclairコンピュータ(Hi-Resと呼ばれていた)と一部のロシア製クローン[63]でのみ表示可能でした。また、12KBのRAMを必要とします。Timexの場合、このモードはコマンド[27] [28]OUT 255,1によって起動されます。2つのグラフィックエディタ(「Draw 512」[64]と「Tech-Draw」[65])がこのモードをサポートしており、[66] [67] 、 BASIC64 、および一部のCP/M実装もサポートしています。[30]

詳細:

ピクセル: 512 × 192
属性: なし、制限なし
色: 2 (4 つのパレット: 黒と白、青と黄、赤とシアン、マゼンタと緑) (ZX Spectrum Next の 512 色のうち)
マシン: Timex SinclairZX Spectrum NextZX-Uno、MB03+ Ultimate、eLeMeNt ZXPentagon

512 × 192 × 4 / モード3

サム・クーペ 512×192×4色例

Sam Coupéにはこのモードがあり、各ピクセルは128色のパレットから4色のいずれかを使用できます。[30]

詳細:

ピクセル: 512 × 192
属性: なし、制限なし
色: 1行あたり4色(128色から)
マシン: SAM クーペ

512 × 384 × 2

ペンタゴン512×384ビデオモードの例

ペンタゴンのコンピュータがサポートするモード。[56]

詳細:

ピクセル: 512 × 384
色: モノクロ
機種:ペンタゴンTimex Sinclair 2128 (TC 2048 ベースの改造)

高解像度カラー

ピクセルは線形順序で保存されます。属性は垂直方向に2倍になり、属性の構成はオリジナルのZX Spectrumモードと同一です。HiRes indeXedColourでは、16,777,216色から32色を選択できます。キーレイヤーを介して、2つのビデオRAMをColorモードとindeXedColourモードの両方で混在させることができます。

詳細:

ピクセル: 512 × 192
属性: 64 × 48
色: 16 (または 1677216 からインデックスされた 32 色)
マシン: MB03+ Ultimate、eLeMeNt ZX

エミュレートされた

256 × 192、256色、「256色モード」、属性なし

SPEC256、[68] [69]、EmuZWin [70] [71]、およびEs.pectrum [72] エミュレータは、256x192ピクセルの画面モードを備えており、各ピクセルは256色のいずれかで表示できます。[30]これは、エミュレートされたZ80ワードサイズを8ビットから64ビットに拡張することで実現され、各ピクセルに8ビットのデータが割り当てられます。したがって、画面は48KBのメモリを消費します。このモードはエミュレータにのみ存在し、使用するにはソフトウェアグラフィックスを変更する必要があります。[要出典]

詳細:
ピクセル: 256 × 192
属性: なし、制限なし
色数: 256

ディザリングとぼかし

256 × 192のZX Spectrum画像に通常のディザリングパターンを適用し、テレビのようなぼやけ具合をシミュレートした画像です。パターンは意図的にぼかされており、新しい色(例:オレンジ、グレーなど)が生成されます。通常のディザリングにより、この画像の実効解像度は128 × 96に低下します。
8 × 8 の順序付きディザリングを備えた ZX Spectrum 標準パレット。
ピクセルアートのディザリング付き標準ZXスペクトラムパレット

ピクセルあたりのビット深度がわずか1ビットという低さのため、グラフィックアーティスト(例えばZX-Art)は様々なディザリング手法に頼らざるを得ませんでした。当時のアナログテレビは水平軸と垂直軸の両方で高いぼかし効果を発揮するため、ディザリングはCRTテレビに非常に効果的でした。一般的なCRTテレビの電子ビームは意図的に低い焦点に設定されているため、結果として生じる高いぼかし効果によって隣接するピクセルの色が混ざり合います。ぼかし効果は、ディザリングによって表示される画像に現れる不要なノイズを軽減します。

ZX Spectrumの実際の出力画像を忠実にシミュレートするには、最新のエミュレータでは非常に強力なぼかしフィルターを使用する必要があります。単純なバイリニアフィルターではぼかしが強すぎ、非常にシャープなランチョスフィルターでは不十分です。そのため、一般的なCRTテレビのぼかし効果をシミュレートするために、フィルターを特別に設計する必要があります。ほとんどのエミュレータは非常に低品質のフィルターを使用しているため、最終的な画像は非常にシャープでピクセル化されたものになります。[要出典] FUSEなどの一部のエミュレータは、ピクセル化の影響を軽減するために利用可能なフィルターを使用しています。[要出典]これらのフィルターは、ZX Spectrumの実際のビデオ出力とは大きく異なる最終画像を生成します。

一部のパレット色の組み合わせにおける相互コントラストが低い場合、ディザリングによって発生するノイズの量をさらに減らすことで、ディザリング効果を向上させることができます。下の表はこの効果を示しています。例えば、黄色の背景の上に白い色を置くとコントラストが非常に低くなり、白い文字がほとんど見えなくなります。

色彩コントラストチャート
0,00,000,00,010,00,020,00,030,00,040,00,050,00,060,00,07
0,01,000,01,010,01,020,01,030,01,040,01,050,01,060,01,07
0,02,000,02,010,02,020,02,030,02,040,02,050,02,060,02,07
0,03,000,03,010,03,020,03,030,03,040,03,050,03,060,03,07
0,04,000,04,010,04,020,04,030,04,040,04,050,04,060,04,07
0,05,000,05,010,05,020,05,030,05,040,05,050,05,060,05,07
0,06,000,06,010,06,020,06,030,06,040,06,050,06,060,06,07
0,07,000,07,010,07,020,07,030,07,040,07,050,07,060,07,07

参考文献

  1. ^ Vickers, Steven (1982). 「Introduction」. Sinclair ZX Spectrum BASIC Programming. Sinclair Research Ltd. 2006年9月24日時点のオリジナルよりアーカイブ。 2006年8月23日閲覧
  2. ^ Vickers, Steven (1982). 「Colours」. Sinclair ZX Spectrum BASICプログラミング. Sinclair Research Ltd. 2006年9月24日時点のオリジナルよりアーカイブ。 2006年8月23日閲覧
  3. ^ EP特許0107687、リチャード・フランシス・アルトヴァッサー、「コンピュータ用ディスプレイ」、1988年7月6日発行、シンクレア・リサーチ社に譲渡 
  4. ^ “データベース”. ZX-Art . 2023年4月14日閲覧
  5. ^ 「48K ZX Spectrum技術情報」。comp.sys.sinclair FAQ 。 2023年12月28日閲覧
  6. ^ ab 「Spectrum Clone Design Blog」。
  7. ^ 「48K ZX Spectrum 技術情報」。
  8. ^ 「128K ZX Spectrum 技術情報」。
  9. ^ ab スミス、クリス (2010). 『ZX Spectrum ULA: マイクロコンピュータの設計方法(第1版)』 イギリス: ZXDesign Technology and Media. pp.  224– 227. ISBN 978-0-95-650710-5
  10. ^ 「48K ZX Spectrum技術情報」worldofspectrum.org . 2023年11月15日閲覧
  11. ^ ab スミス、クリス (2010). 『ZX Spectrum ULA: マイクロコンピュータの設計方法(第1版)』 イギリス: ZXDesign Technology and Media. p. 74. ISBN 978-0-95-650710-5
  12. ^ 「48K ZX Spectrum技術情報」worldofspectrum.org . 2023年11月15日閲覧
  13. ^ ティシュノフスキー、パベル。 「シンクレア II のグラフィカ ナ オスミビトヴィッチ ポチタチチ」。Root.cz (チェコ語) 2023 年11 月 15 日に取得
  14. ^ 「初心者向け - C64ビデオ出力の説明」Lemon64 - Commodore 64 . 2019年9月24日. 2024年1月11日閲覧
  15. ^ abc Colours – Sinclair ZX Spectrum 入門マニュアル、p. 27
  16. ^ 「ZX Spectrum +2A/+3、+2B、+3BのSビデオ出力」zxnet.co.uk . 2023年12月20日閲覧
  17. ^ 「128/+2のビデオ出力から青/黄色のゴーストを除去する」Spectrum for Everyone . 2023年12月20日閲覧
  18. ^ Farrow, Paul (2001). Spectrum 128 SCARTケーブル(PDF) .
  19. ^ TEA2000 PAL/NTSCカラーエンコーダー(PDF) . Philips. 1985年9月.
  20. ^ ab 「Spectrum Clone Design Blog」。www.zxdesign.info
  21. ^ 「48K ZX Spectrum技術情報」. worldofspectrum.org . 2023年11月14日閲覧
  22. ^ 色 – シンクレア ZX スペクトラム入門マニュアル、p. 27
  23. ^ 「Spectrum Clone Design Blog」。www.zxdesign.info
  24. ^ 「48K ZX Spectrum技術情報」。worldofspectrum.org
  25. ^ ベルフィールド、ディーン. 「L ブレークイン・プログラム - ZX Spectrum 画面メモリレイアウト」. L ブレークイン・プログラム, 0:1 .
  26. ^ 「World of Spectrum – ドキュメント – ZX Spectrum マニュアル – 第24章」。worldofspectrum.org
  27. ^ abc 「Timex I/O ポート」。timex.comboios.info
  28. ^ abcd 「Timex技術情報」。worldofspectrum.org
  29. ^ Weissenberg, Michael (1983年12月19日). 「InfoWorld」. InfoWorld Media Group, Inc. – Google Books経由.
  30. ^ abcdefgh 「ZX Spectrum extra graphics modes」. 8bit Projects For Everyone . 2006年6月15日時点のオリジナルよりアーカイブ。 2006年9月14日閲覧
  31. ^ 「Extended Paint」. www.timexsinclair.com . 2020年11月. 2022年11月20日閲覧
  32. ^ MB-02+ 革命的前進(PDF) 8 Bit Company Laboratories.
  33. ^ “MB02+ ダウンロード”. www.128land.com . 2022年2月10日時点のオリジナルよりアーカイブ2022年2月10日閲覧。
  34. ^ Gordon, Wright, Bruce, Andy (1990). SAM COUPE テクニカルマニュアル v3.0 (PDF) . MILES GORDON TECHNOLOGY plc.{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク)
  35. ^ 「Spectrum ComputingのBIFROST*2エンジン」。Spectrum Computing
  36. ^ 「Spectrum ComputingのSuperColour」。Spectrum Computing
  37. ^ 「スペクトラムコンピューティング」。スペクトラムコンピューティング
  38. ^ 「Spectrum ComputingのNIRVANA+ ENGINE」。Spectrum Computing
  39. ^ 「データベース」ZX-Art .
  40. ^ 「データベース」ZX-Art .
  41. ^ 「ULAplus」. sites.google.com .
  42. ^ “ULAplus”. sites.google.com . 2013年5月25日時点のオリジナルよりアーカイブ2022年11月20日閲覧。
  43. ^ 「ULAplus™ 10周年記念コレクション by Source Solutions, Inc.」itch.io . 2022年11月20日閲覧
  44. ^ 「Spectrum ComputingのHAM256ビューア」Spectrum Computing . 2022年11月20日閲覧
  45. ^ 「Spectrum ComputingのHAM 8×1」。Spectrum Computing 。 2022年11月20日閲覧
  46. ^ abc Gabor, Tarjan (2021). 「21世紀のZX Spectrum?」
  47. ^ Games、Chris Smith、Retro (2024年1月11日). 「The Spectrum」. retrogames.biz . 2025年3月19日閲覧{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク)
  48. ^ 「Spectrum ComputingでのInterlaceデモ」。Spectrum Computing
  49. ^ 「データベース」ZX-Art .
  50. ^ 「ZX-Spectrum グラフィックモード」。GFX ZONE
  51. ^ ZX Spectrum 128k:「VelesoftのDragon in Giga Screen Simulator」デモ(2021年)、2021年4月15日、 2023年12月21日閲覧。
  52. ^ 「データベース」ZX-Art .
  53. ^ 「ZX Prism: 16色「カラークラッシュフリー」平面モードとハードウェアギガスクリーン」2014年7月17日。
  54. ^ “Триколор”. SpeccyWiki (ロシア語)。
  55. ^ "16col". SpeccyWiki (ロシア語).
  56. ^ ab "384x304". SpeccyWiki (ロシア語).
  57. ^ “eLeMeNt/MBプラットフォームでサポートされるZX Spectrumおよび互換機のグラフィックモード”. 2024年2月24日時点のオリジナルよりアーカイブ。 2024年2月24日閲覧
  58. ^ 「LnxSpectrum HGFX Oxygene」 – vimeo.com 経由。
  59. ^ 「HGFX – ZX Planar – チュートリアル」。
  60. ^ "HGFX/Q Graphics". wiki.ilnx.cz (チェコ語).
  61. ^ 「ビデオモード」。SpecNext公式Wiki
  62. ^ Farrow, Paul (2018). SPECTRA表示モードの概要(PDF) . www.fruitcake.plus.com / www.zxresourcecentre.co.uk.
  63. ^ "512x192". SpeccyWiki (ロシア語).
  64. ^ “Draw 512”. www.timexsinclair.com . 2019年11月30日. 2022年11月20日閲覧
  65. ^ “Tech-Draw”. www.timexsinclair.com . 2020年1月20日. 2022年11月20日閲覧
  66. ^ 「Draw 512 at Spectrum Computing」. Spectrum Computing . 2022年11月20日閲覧
  67. ^ 「TS 2068用ソフトウェア」www.timexsinclair.com . 2022年11月20日閲覧
  68. ^ MVV (2022年7月18日)、mvvproject/Spec256-Games 、 2022年11月26日閲覧。
  69. ^ 「Spectrum Magic ZX games 256 colour」. spectrummagic.emuunlim.com . 2022年11月26日閲覧
  70. ^ 「EmuZWin v2.6 リリース 1.0」。
  71. ^ “EmuZWin 2”. f0460945.xsph.ru . 2022年11月26日閲覧
  72. ^ 「Es.pectrum マニュアル」www.habisoft.com . 2022年11月26日閲覧
  • ZX-Spectrum グラフィックモード
  • ZX-Spectrum 追加グラフィックモード 2006年6月15日アーカイブWayback Machine
  • 「Image to ZX Spec – PCからZX Spectrumへの画像変換のためのオープンソースユーティリティ(14種類のディザモードを含む)」www.silentdevelopment.co.uk。2016年3月3日時点のオリジナルよりアーカイブ。
  • Retro-X – PCから古いマシンへの画像変換ユーティリティ(非標準のZX Spectrumモードを含む)
  • ZX GIMP プラグイン 任意のRGB イメージを ZX Spectrum スクリーンのように見せるためのGIMPプラグイン。
  • BIFROST*2 エンジン (マルチカラー「8×1」属性 20 列)
  • NIRVANA+ エンジン (マルチカラー「8×2」属性、全画面幅)
  • ZX-Spectrum Next ビデオモード
  • ZX-Spectrum グラフィックアートコレクション
「https://en.wikipedia.org/w/index.php?title=ZX_Spectrum_graphic_modes&oldid=1321831489」から取得