ZX 스펙트럼 그래픽 모드

ZX Spectrum graphic modes
사용 가능한 색상을 보여주는 ZX 스펙트럼 화면

오리지널 ZX 스펙트럼 컴퓨터는 픽셀당 1비트, 비트맵 컬러 그래픽 비디오 출력을 생성합니다. 복합 비디오 신호는 RF 변조기를 통해 생성되며, 1980년대 현대 텔레비전 세트와 함께 사용하도록 설계되었습니다.

프레임 버퍼의 이미지 크기는 256x192 픽셀로 수정할 수 없는 15가지 색상의 팔레트가 있으며, 전체 색상 팔레트는 매우 포화 상태입니다. 색상 출력의 해상도는 픽셀 비트맵의 해상도보다 64배 낮습니다.[1][2] 매우 낮은 색상 해상도는 메모리를 절약하기 위해 사용되었으며 색상 속성에 대해 총 768바이트에 불과했습니다. 색상은 각 문자 셀당 1바이트를 사용하여 픽셀 비트맵과 별도로 32x24 셀 그리드로 저장됩니다. 하나의 캐릭터 셀은 8x8 픽셀로 구성되어 있습니다. 실제로는 모든 캐릭터 셀이 포함된 64 픽셀을 색칠하기 위해 선택된 두 가지 색상만 사용할 수 있음을 의미합니다.[3]

이 기계는 표준 텔레비전 세트와 함께 사용하도록 설계되었기 때문에 256x192 픽셀 영역은 표준 384x288 저해상도 PAL TV 가시 화면 영역의 나머지 공간을 채우는 넓은 테두리로 둘러싸여 있습니다. 일반적으로 테두리 영역은 단일 색상을 가정하지만 소프트웨어 트릭을 사용하면 일부 저해상도 그래픽을 표시할 수 있습니다.[4]

ZX 스펙트럼에는 스크롤 및 스프라이트를 위한 전용 하드웨어나 전용 하드웨어 블리터가 없었습니다. 컬러 그래픽의 표시를 용이하게 하기 위해 원래 ZX 스펙트럼은 16KiB의 이산 그래픽 RAM을 사용합니다. 그래픽 RAM의 지연 시간은 150ns입니다. 최대 대역폭은 2.1875MB/s입니다(64μs당 224x5/8바이트로 계산됨).[5]

프레임 속도 및 타이밍

원래 ZX 스펙트럼은 50HzPAL 표준 프레임 속도와 엄격하게 일치하지 않습니다. ZX 스펙트럼은 정확히 224개의 CPU 클럭 주기로 하나의 비디오 라인을 출력하며, 여기서 CPU 클럭 속도는 3.5MHz입니다. 이는 PAL 표준 64μs 라인 시간과 정확히 일치합니다. 그러나 ZX 스펙트럼은 하나의 디스플레이 프레임을 구성하기 위해 312개의 라인만 생성하는 반면 PAL 표준은 312.5개의 라인을 권장합니다. 결과적으로 ZX 스펙트럼의 프레임 속도는 초당 약 50.08프레임입니다.[6]

이 불일치는 초당 50프레임의 프레임 속도를 가정한 많은 프로그래머들에게 알려지지 않았습니다.[citation needed] 그 결과, 내장된 BASIC 인터프리터를 포함한 일부 프로그램은 시간이 너무 빠르지 않았습니다. 이후 ZX Spectrum 모델은 프레임 속도와 CPU 클럭 속도가 약간 다르기 때문에 일부 구형 소프트웨어는 수직 동기화를 사용할 경우 약간 너무 느리게 실행되거나 CPU 클럭 속도에 의존할 경우 너무 빨리 실행됩니다.[6]

각 디스플레이 프레임이 시작될 때 마스크 가능한 인터럽트 신호가 ZX Spectrum의 Z80 CPU로 전송되어 프로그램이 시간의 흐름을 쉽게 감지하고 측정할 수 있습니다. 또한 프로그램이 그래픽 출력과 비디오 프레임 디스플레이를 완벽하게 동기화할 수 있습니다. 디스플레이 찢어짐을 방지하기 위해 사용할 수 있는 현대 컴퓨터의 수직 동기화와 정확히 동일한 메커니즘입니다.

PAL에 시간 표시
ZX 스펙트럼 16K, 48K 및 ZX 스펙트럼+[7] 128K, +2, +2A, +3[8]
PAL 라인당 CPU 주기 224 228
PAL라인타임 64μs 64.28μs
프레임당 PAL 라인 수 312 311
프레임타임 19.968ms 19.9915ms
골조율 초당 50.08프레임 초당 50.02프레임
수직 동기화 표시 Z80 마스크 가능 인터럽트 라인(INT)[9]을 통해 사용 가능 Z80 마스크 가능 인터럽트 라인(INT)[9]을 통해 사용 가능


그래픽 메모리 구조 및 픽셀 좌표

16 KiB 이산 그래픽 RAM은 16384 - 32767 주소로 CPU에 직접 액세스할 수 있습니다. 메인 픽셀 비트맵은 그래픽 RAM의 맨 처음에 저장되고 속성 배열은 그 바로 뒤에 있습니다.[10]

비디오 컨트롤러 회로는 약 480개의 구성 가능한 셀로 구성된 세미 커스텀 Feranti ULA 집적 회로에 내장되어 있습니다(모델에 따라 다름). ULA의 셀은 ZX 스펙트럼용 ULA를 생산하기 위해 다양한 방식으로 공장 구성되었으며, 여기서 하나의 셀은 약 2개의 NAND 게이트의 기능을 갖습니다.[11]

그래픽 RAM에 대한 CPU 액세스는 비디오 컨트롤러가 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, y5, y4, x7, x7, x6, x5, x4, x7, x5, x4, x4, x3, x7, x5, x4, x3, x4, x4, x4, x4, x7, x4, x4, x4, x7, x4, x4, x4, x7, y7, y7, y7, y7, y7, y7, y7, y7, y7, y4, y2, y2, y1, y0, x3, y2, y0, x4, x3, x4, x4, x4, x3, x4, x4, x4, x3, x4, x4, x4, x4, x4, x4, x3,[13] x

주소 비트 패턴에는 필요한 것보다 두 개 더 많은 비트 패턴 전이가 포함되어 있습니다. 가장 빠르고 간단한 비트 패턴은 0, 1, 0, x7, x6, x5, x4, x3, y7, y6, y5, y4, y3, y2, y1, y0이고, 이는 픽셀 주소를 먼저 열만큼 증가시킵니다. 불행하게도 ZX Spectrum 설계자들은 극심한 시간적 압박 속에서 작업을 하고 있었고, 이러한 단순한 개선 사항을 알아채지 못했습니다.[11]

오리지널 ZX 스펙트럼 48K 모델은 메인 RAM이 32KiB인 반면, 16K 모델은 16KiB 그래픽 RAM만 있습니다. 이것이 컬러 속성 배열이 단지 768바이트에 맞도록 설계된 이유입니다. 색상 속성은 수직 축에서 쉽게 2배 또는 4배의 해상도를 가질 수 있었지만, 이는 특히 16KiB 모델에서 프로그램을 위한 남은 메모리 공간을 1~2킬로바이트 더 줄였을 것입니다.

컬러 그래픽의 표시를 용이하게 하기 위해 원래의 ZX 스펙트럼은 코모도어 64를 포함한 대부분의 다른 마이크로컴퓨터의 공유 그래픽 RAM 아키텍처와 달리 16KiB의 이산 그래픽 RAM을 사용합니다.[citation needed] 픽셀 비트맵의 해상도는 일반적으로 160x200 해상도를 픽셀당 2비트로 사용하는 다른 현대 마이크로컴퓨터와 비슷합니다.[14]

"속성"이라고 불리는 컬러 셀의 시스템은 컬러 응용 프로그램의 프로그래밍을 상당히 복잡하게 하기 때문에 많은 비판을 받았습니다.[citation needed] 그럼에도 불구하고 색상 속성 시스템은 해당 시대의 일반적인 응용 프로그램과 게임을 지원하기에 충분한 기능을 가지고 있었고, 매우 제한된 색상 기능조차도 사용자들에게 환영을 받았습니다.[citation needed]

컬러 팔레트

ZX 스펙트럼(및 호환) 컴퓨터는 4비트 RGBI 팔레트 철학(CGA, Thomson MO5, Sharp MZ-800, Mattel Aquarius 등에서도 사용됨)의 변형을 사용하여 밝기 변화가 있는 8가지 기본 색상을 생성합니다.[15] 128, +2 및 +3 모델에서 ULA는 TTL 레벨의 적색, 녹색, 청색 및 동기 신호를 출력합니다. 이 신호는 TEA2000 비디오 인코더에서 복합 비디오 신호 생성에 사용됩니다.[16][17][18][19]

3비트 팔레트의 각 색상에는 기본밝은 변형이 있습니다.[15] 휘도 신호에 대한 비디오 디스플레이의 최대 전압 레벨을 사용하여 팔레트의 밝은 절반을 생성합니다. 팔레트의 기본 절반은 휘도 신호의 전압을 줄이기만 하면 생성됩니다.[20]

전체 셀에 대해 단일 밝기 비트만 있기 때문에 캐릭터 셀의 두 색상은 밝기 특성을 공유해야 합니다. 이 제한 외에도 팔레트 색상의 모든 조합을 캐릭터 셀의 두 가지 색상으로 자유롭게 선택할 수 있습니다. 다음 표에는 모든 "밝은" 색상이 오른쪽 열에 나와 있습니다.


번호
이진값
이름.
이진값
이름.
G R B I G R B I
0 0 0 0 0 #000000 블랙입니다. 0 0 0 1 #000000 "밝은" 검정
1 0 0 1 0 #0100CE 파랑색 0 0 1 1 #0200FD 브라이트 블루
2 0 1 0 0 #CF0100 빨간. 0 1 0 1 #FF0201 브라이트 레드
3 0 1 1 0 #CF01CE 마젠타 0 1 1 1 #FF02FD 밝은 마젠타
4 1 0 0 0 #00CF15 초록의 1 0 0 1 #00FF1C 브라이트 그린
5 1 0 1 0 #01CFCF 시안 1 0 1 1 #02FFFF 브라이트 시안
6 1 1 0 0 #CFCF15 노란 색 1 1 0 1 #FFF1D 브라이트 옐로우
7 1 1 1 0 #CFCFCF 하얀색 1 1 1 1 #FFFFFF 브라이트 화이트
  • 일부 ZX Spectrum 클론 또는 NTSC 시스템에서는 "밝은 검은색"이 짙은 회색으로 표시될 수 있습니다.
  • 표에서 색상의 휘도는 절대적인 것이 아니라 상대적인 것입니다. 일반적인 텔레비전 세트는 일반적으로 표준 sRGB LCD 휘도인 80cd/m²보다 훨씬 더 높은 휘도를 가지고 있었습니다. 절대적인 측면에서 ZX 스펙트럼의 색상은 테이블의 sRGB 색상보다 훨씬 밝습니다. ZX Spectrum의 "화이트" 색상은 가장 밝은 sRGB 화이트 색상만큼 밝은 반면, "브라이트 화이트" 색상은 표준 sRGB 색상 휘도의 한계를 초과합니다.
  • 녹색, 노란색 및 청록색에 대한 주어진 sRGB 값은 PAL TV 표준의 모든 색상을 생성할 수 없기 때문에 최상의 근사치일 뿐입니다. 녹색 PAL 형광체는 현대 일반 LCD 디스플레이의 sRGB 색상 공간에서 사용할 수 없습니다. 대부분의 목적에서 이 색상의 부정확성은 작습니다.
  • sRGB로 시뮬레이션된 색상은 84.615% 전압(0.55V)으로 밝지 않고 100%(0.65V)로 밝다고 가정합니다.[20] 각 ZX Spectrum 모델은 색상에 대해 서로 다른 전압을 사용하므로 여기의 값은 단지 지시적일 뿐입니다. 색상은 PAL TV 색상 공간을 sRGB 색상 공간으로 변환하여 계산되었습니다. BT.470 PAL 표준에서 권장하는 대로 2.8의 PAL 감마적용되었으며, 기본 색상을 sRGB 기본 색상으로 변환(IEC 61966-2-1 sRGB 표준에 의해), 표준 sRGB 감마 보정(역 EOTF에 의해)이 적용되었습니다. (어둡게 보이는 일부 희미한 값의 허용 가능성과 관련된 논의)
  • 지정된 색상은 실제 ZX 스펙트럼 색상이 아닐 수 있습니다. 색상 근사치는 ZX 스펙트럼이 PAL TV 출력에서 생성할 수 있는 최대 포화도를 가정하여 계산되었습니다. 실제 ZX 스펙트럼 색상은 현재 알려지지 않았으며, 아마도 덜 포화되었을 것입니다. 실제 ZX 스펙트럼 색상을 계산하려면 각 색상에 대해 ZX 스펙트럼의 PAL 출력에 있는 오실로스코프를 통해 크로마 서브 캐리어의 위상 진폭 이동을 측정해야 합니다.

ZX 스펙트럼 인코딩에서 색상 성분은 일반적인 RGB 순서가 아닌 GRB(Green, Red, Blue) 순서입니다. GRB 순서는 휘도를 증가시킴으로써 색상 번호가 순서화된다는 장점이 있습니다. 따라서 흑백 디스플레이에서 보면 순서화된 순서는 검은색에서 흰색으로 그라데이션을 형성합니다.

셀의 모든 색상 속성은 속성이라고 하는 1바이트로 메모리에 저장됩니다. 속성 바이트는 최소 비트에서 최대 비트까지 계산하여 1로 평가된 픽셀의 색상에 대해 3비트, 0으로 평가된 픽셀의 색상에 대해 3비트, 밝기 플래그에 대해 1비트, 점멸 효과에 대해 1비트를 지정합니다. 점멸 효과로 인해 표시되는 전경색과 배경색이 0.64초마다 번갈아 나타납니다.[21]

현재 대부분의 ZX 스펙트럼 에뮬레이터가 부정확하고 과포화된 색상을 표시하고 있습니다.[citation needed] 이러한 색상은 PAL-to-sRGB 색상-공간 변환의 많은 세부 사항을 고려하지 않은 단순한 근사치에 의해 계산되었습니다. 마찬가지로 ZX 스펙트럼 그래픽 아티스트의 커뮤니티에서도[22] 부정확한 색상의 사용이 매우 일반적입니다.[citation needed] 이론적으로 불가능한 sRGB 색상 #00CD00은 일반적으로 ZX 스펙트럼의 녹색 색상으로 사용됩니다(즉, 스펙트럼의 실제 녹색 색상은 아마도 더 푸르스름할 것입니다).[citation needed]

색상에 대한 BASIC 명령

캐릭터 셀의 두 가지 색상을 전경색배경색이라고 합니다. 0에서 7 사이의 n 값에 대해 다음과 같은 싱클레어 BASIC 명령을 사용하여 셀의 색상을 설정하거나 변경할 수 있습니다.[15]

  • PAPER n, 문자 셀의 배경색; 셀의 모든 픽셀 값 0에 적용됩니다.
  • INK n, 캐릭터 셀의 전경색; 셀 내의 값 1의 모든 픽셀에 적용됩니다.
  • BRIGHT i, 문자 셀의 밝기 비트 값을 선택합니다. 여기서 값은 0 또는 1입니다.

추가적으로, BORDER 명령어는 픽셀 비트맵을 둘러싼 화면 영역의 색상을 선택합니다. 밝기 플래그를 사용하지 않으므로 테두리 색상은 8가지 기본 색상만 지원됩니다.[23]

표준모드

속성 블록이 선명하게 보이는 표준 ZX 스펙트럼 화면

오리지널 ZX 스펙트럼은 256x192 픽셀의 화면 해상도를 가지고 있습니다.[24][25] 모든 경우에 색상은 극도로 포화 상태입니다. 색상 정보는 속성 블록으로 알려진 8x8 픽셀 영역의 그리드로 겹쳐집니다.[26][27] 속성 블록의 모든 색상 속성은 단일 속성 바이트로 메모리에 저장되며 각 속성 블록은 하나의 문자 셀과 일치합니다. 각 속성 블록 내에서 8가지 색상의 팔레트 중 2가지 색상만 사용할 수 있습니다. 또한 전체 속성 블록이 '밝기'로 지정되어 총 15가지 색상이 가능합니다(검은색은 '밝기' 변화가 없음). 많은 프로그램에서 속성 블록당 두 가지 색상만 제한되는 이러한 제한은 속성의 원치 않는 효과가 충돌함에 따라 분명하게 나타납니다.

이 모드의 화면은 픽셀 비트맵에 대해 6144바이트를 차지하며 색상 속성과 함께 총 6912바이트를 차지합니다.

세부사항:
픽셀: 256 x 192
속성: 32 x 24
색상: 15(비밝고밝기 집계)
기계: 모두

모노크롬 TV 및 모니터

모노크롬 디스플레이의 ZX 스펙트럼

흑백 모니터 또는 흑백 TV를 사용하여(또는 컬러 TV의 포화 설정을 줄임) 스펙트럼의 색상 범위에 따른 강도 차이를 활용하여 256x192 해상도로 15 음영의 그레이스케일 이미지를 생성할 수 있습니다.

세부사항:
픽셀: 256 x 192
속성: 32 x 24
색상 : 15 그레이스케일
기계: 모두, 모노크롬 디스플레이 사용

하이컬러 속성

하드웨어 구현

하이컬러 / 멀티텍

ZX 스펙트럼 "8x1" 속성 / Hicolour 디스플레이

Timex Sinclair 머신,[28][29] 펜타곤, eLeMeNt ZXMB03+ Ultimate 인터페이스를 포함한 여러 타사 Spectrum 클론은 하이컬러(Hi-Color)라는 화면 모드를 지원하며,[29] 속성 블록의 크기는 일반적인 8x8이 아닌 8x1 픽셀입니다.[30][31] 이 모드의 화면은 12KB RAM이 필요합니다. Timex의 경우 명령어를 통해 이 모드가 활성화됩니다. OUT 255,2.[28]Timex 시스템의 편집기 중 하나[28][29] 이상이 이 모드를 지원합니다.[32] 또한 이 화면 모드는 MB-02 디스크 시스템의 DMA 하드웨어[33](여기서 이 기법은 Multitech[34] 알려져 있음)를 사용하여 생성할 수 있으며 SAM Coupé에서 모드 2(선형 바이트 순서 포함)로도 사용할 수 있습니다.[35]

세부사항:
픽셀: 256 x 192
속성: 32 x 192
색상 : 15
기계: Timex Sinclair 모델, ZX Spectrum Next, 펜타곤, eLeMeNt ZX, SAM Coupé
인터페이스 : MB03+ 얼티밋

소프트웨어 구현

8x1 속성 / 히컬러 / 멀티컬러 / FL / BIFROST*2 / 레인보우 발생기 / 레인보우 프로세서

다른 스펙트럼 모델에서는 ULA가 비디오 출력을 생성할 때 모든 픽셀 행의 속성 정보를 다시 읽는다는 사실을 이용하여 이 효과를 복제할 수 있습니다. 연속된 행 사이에 관련 메모리 위치에 새 값을 쓸 수 있으므로 다른 색상 쌍을 표시할 수 있습니다. 그러나 Spectrum의 프로세서는 하나의 스캔라인에서 전체 속성 바이트 행에 기록할 만큼 빠르지 않으므로 8x1 속성은 20개 이상의 열에서만 달성할 수 있습니다.[36] 이 기술은 Hicolour, Multicolour, FL, BIFROST*2 "SuperColor",[37] "Rainbow Generator" 또는 Rainbow Processor[38] 모드로 다양하게 알려져 있습니다.[31]

세부사항:
픽셀: 256 x 192
속성: 32 x 192(18 x 192 영역에 한함)
색상 : 15
기계: 모두(각 기계의 타이밍에 맞춘 특정 코드 포함)

8x2 속성 / 바이컬러 / 열반+

ZX 스펙트럼 "8x2" 속성 표시

이 방법의 변형은 두 스캔 라인을 통해 속성 행을 변경하여 화면의 더 넓은 영역에 걸쳐 8x2 픽셀 속성 블록을 생성하는 것입니다. 이 모드는 바이컬러(Bicolour)로 알려져 있으며, 너바나+ 엔진을 사용하여 화면 전체 너비에 적용할 수 있습니다.[39][40]

세부사항:
픽셀: 256 x 192
속성: 32 x 96
색상 : 15
기계: 모두(각 기계의 타이밍에 맞춘 특정 코드 포함)

4x1 / 4x2 / 4x4 attributes

특수한 경우에는 속성 셀당 4개의 픽셀에 대해 두 가지 색상을 번갈아 사용하여 각 4x1 영역을 독립적으로 색상이 지정된 '픽셀'로 처리할 수 있습니다(비록 8x1 셀당 1개의 밝기 레벨 제한은 여전히 유효하지만). 이 모드의 4x2 변형을 화면의 더 넓은 영역에 적용할 수 있습니다. 또한 128K 컴퓨터에서 속성 데이터를 다시 쓰는 대신 두 비디오 RAM 사이의 시간 스위치를 통해 한 화면에서 문자 셀의 상위 절반을 표시하고 다른 화면에서 하위 절반을 표시하여 4x4 변형을 구현할 수 있습니다.

세부사항:
픽셀: 64 x 192, 64 x 96, 64 x 48
속성: 8x1 밝기 제한
색상 : 15
기계: 모두(각 기계의 타이밍에 맞춘 특정 코드 포함)

ULAplus / HAM256 / HAM8x1

ULAplus는 표준 ZX 스펙트럼 및 Timex Hi-Res 및 Hi-Color 모드와 호환되며 팔레트를 재정의하는 기능을 추가합니다.[41] 기본 16가지 색상을 약간 수정하는 데만 사용할 경우 ULAplus 소프트웨어를 표준 스펙트럼에 표시할 수 있습니다. 64색 전체를 사용하면 원래 스펙트럼의 "플래시" 속성이 트리거되므로 호환되지 않습니다.[42] 아미가 HAM에서 영감을 받은 모드(HAM256 및 HAM8x1)도 가능하며, 최대 256가지 색상을 화면에 표시합니다.[43][44][45][46]

세부사항:
픽셀: 256 x 192; 512 x 192(Hi-Res 모드)
속성: 32 x 24; 32 x 192(8x1 하이컬러 모드)
색상: 256에서 2개(Hi-Res 모드), 256에서 64개(HAM256 및 HAM8x1)
기계: ZX 스펙트럼 SE, ZX 스펙트럼 넥스트, ZX-우노, 클로이 280SE,[47] 클로이 140SE,[47] eLeMeNt ZX, zx128u+[47]
인터페이스 : MB03+ 얼티밋

인터레이스/스위치 모드

CRT 화면에서 시뮬레이션된 인터레이스 ZX Spectrum 영상

인터레이스

프레임 인터럽트(50Hz)마다 두 개의 화면을 번갈아 표시함으로써 이론적으로 192 라인에서 384 라인으로 수직 디스플레이 해상도가 두 배로 증가하는 것을 시뮬레이션할 수 있습니다.

Timex 클론과 ZX Spectrum 128K는 '그림자' 화면 영역을 구현하며, 이 영역은 단일 제품을 사용하여 제자리로 전환할 수 있습니다. OUT 명령어, 그리고 이 명령어는 종종 이 목적을 위해 두 이미지 사이를 빠르게 전환하는 데 사용됩니다(비록 전체 화면은 아니지만 표준 블록 복사로도 가능합니다).

CRT 텔레비전 화면(당시 표준)에서 볼 때 깜박임이 최신 모니터보다 덜 눈에 띕니다. 그리고 예시적인 이미지는 여기에 연결됩니다(경고: 연결된 이미지는 매우 빠르게 깜박여 감광성 뇌전증을 가진 사람들에게 발작을 일으킬 수 있습니다).

인터레이스된 고해상도 모노크롬 ZX 스펙트럼 이미지입니다. 합성 출력과 PCI 캡처 카드를 사용하여 Sinclair ZX Spectrum +3에서 실제 사진을 촬영합니다.

스펙트럼은 디스플레이 하드웨어와 낮은 레벨에서 동기화할 수 있는 기능이 없기 때문에 이 기법은 실제 인터레이스 디스플레이를 달성하지는 못합니다. CRT 텔레비전 화면에서는 특정 픽셀이 절반 강도로 나타나는 안티에일리어싱에 더 가깝습니다.[31][48]

최신 LCD TV, 캡처 카드 또는 원본 아날로그 신호를 디지털로 변환하는 기타 장치에서 이 모드는 오른쪽에 고양이가 있는 이미지와 같이 진정한 인터레이스로 해석될 수 있습니다.

세부사항:
픽셀: 256 x 384
속성: 32 x 24
색상 : 15

기가스크린 / 디쓰 비디오 / BZiter

기가스크린 ZX 스펙트럼 화면

영상의 속성(색상)은 화면에서 50Hz로 교대로 표시됩니다.[49] 이렇게 하면 팔레트가 약 36가지 색상으로 늘어납니다.[50] 스캔 라인별로 화면을 전환하여 화면을 혼합할 수 있지만 CPU 집약적이므로 정확하고 안정적인 타이밍이 필요합니다.

실제 상태의 정밀한 소프트웨어를 사용하면 128k "토스트랙" 원본 128k ZX 스펙트럼에서 기가 스크린을 시뮬레이션할 수 있습니다.[51]

펜타곤 기계의 경우 두 개의 대체 화면 영역을 비디오 신호에 직접 결합하여 이 방법과 관련된 깜박임을 제거하는 하드웨어 수정을 사용할 수 있습니다. MB03+ Ultimate 인터페이스와 eLeMeNt ZX 컴퓨터는 256 x 192 및 512 x 192 해상도로 3가지 하드웨어 모드(혼합 비디오 RAM, 혼합 비디오 프레임 및 자동 감지 모드)를 표시할 수 있습니다.

또한 GigaScreen 및 Hi-Color 기술을 함께 사용하여 더욱 풍부한 색상의 이미지를 생성할 수 있습니다. 이 형식은 실제 색상의 이미지를 형식으로 변환할 때 사용되는 디더링 방법을 나타내는 이름으로 DithVIDEBZiter로 명명되었습니다.

세부사항:
픽셀: 256 x 192
속성: 32 x 24
색상 : ~36
기계: 모두( 깜빡임 포함)
하드웨어 기가스크린: 펜타곤, eLeMeNt ZX, MB03+ 얼티밋(점멸 없음)

키레이어

MB03+ Ultimate 인터페이스와 eLeMeNt ZX 컴퓨터는 두 번째 비디오 RAM의 이미지 데이터를 비디오 RAM 1번의 선택된 색상 위치에 표시할 수 있는 그래픽 모드를 제공합니다. 이렇게 하면 속성에 세 번째 색상이 추가됩니다.

세부사항:
픽셀: 256 x 192, 512 x 192
속성: 셀당 32 x 24, 64 x 48, 3가지 색상
색상 : 15
기계: eLeMeNt ZX
인터페이스 : MB03+ 얼티밋

3color / 멀티크롬 / RGB-3 / 인터크롬

3color ZX Spectrum 화면

빨간색, 녹색 및 파란색 층으로 구성된 세 개의 개별 이미지가 하나의 색상 이미지로 병합되기 위해 시각 효과의 지속성에 의존하여 화면에 빠르게 표시됩니다.[52] 결과적으로 각 픽셀을 독립적으로 색칠할 수 있는 8색 이미지가 됩니다.[53][54]

세부사항:
픽셀: 256 x 192
속성: 256 x 192
색상: 8
기계: 모두

호환되는 기계 및 인터페이스

이후 ZX 스펙트럼 호환기는 추가 비디오 모드를 제공했습니다. 이들은 표준 256x192 모드를 기반으로 하지만 원래의 스펙트럼과는 호환되지 않습니다.[31] 또한 인터페이스, Spectra 인터페이스MB03+ Ultimate 인터페이스는 Spectra의 디스플레이를 확장하여 더 많은 색상 또는/및 추가 비디오 모드를 지원합니다.

16c

ATM터보/펜타곤 16컬러모드

각 픽셀이 16가지 색상 중 하나를 가질 수 있는 비디오 모드입니다.[55]

세부사항:
픽셀: 256 x 192
특성: 없음, 제한 없음
색상: 16
기계: ATM 터보, 펜타곤
샘쿠페 256x192x16 컬러모드

256x192x16 / 모드4

각 픽셀이 128색 팔레트의 16가지 색상 중 하나를 표시할 수 있는 Sam Coupé 모드입니다.[31]

세부사항:
픽셀: 256 x 192
특성: 없음, 제한 없음
색상: 라인당 16개(128개부터)
기계: 샘 쿠페

384x304x16

펜타곤 컴퓨터가 지원하는 모드입니다.[56]

세부사항:
픽셀: 384 x 304
속성: 48 x 38
색상: 16
기계: 펜타곤

HGFX 그래픽스

eLeMeNt ZX 컴퓨터MB03+ 인터페이스는 평면 기반 256x192(LowRes), 512x192(HighRes) 및 512x384(SuperHiRes) 해상도를 제공합니다.[57] HGFX는 ZX 화면 호환(비선형 또는 선형) 레이어 비트 평면으로 구성되어 LowRes 및 HiRes 모드 모두에서 최대 256가지 색상과 SuperHiRes에서 16가지 색상을 구현합니다. ZX-스크린 메모리와 마찬가지로 메모리의 일부만 차지하며 자체 내부 버퍼가 있으며 소위 투명도 모드로 원본 ZX-그래픽과 결합할 수 있습니다.[58] HGFX는 256개의 인덱싱된 색상으로 24비트 트루 컬러 팔레트(HiResindXedColor 호환)를 제공합니다. HGFX 화면 데이터는 HAM(Amiga-like), FILL(Apple2GS-like) 모드로도 표시가 가능하며 "chunky" 모드로 처리할 수 있습니다. 720x546 특수 해상도는 청키 형식으로만 제공됩니다.

HGFX는 보다 강력한 HGFX/Q 시스템을 기반으로 하는데, 원래는 경계 지역에서 320 x 240 또는 640 x 240으로 확장이 가능했습니다.[59]

세부사항:
픽셀: 256 x 192, 512 x 192, 512 x 384
특성: 없음, 제한 없음
색상: 최대 256(16777216부터), 최대 16(SuperHiRes)
기계 : MB03+ 얼티밋, eLeMeNt ZX

레이어2

세부사항:
픽셀: 256 x 192(512에서 256 색상), 320 x 256(512에서 256 색상) 및 640 x 256(512에서 16 색상)
특성: 없음, 제한 없음
기계: ZX 스펙트럼 넥스트[60]

라다스탄

이 모드는 128x96 이중 크기의 픽셀을 표시합니다. 각 픽셀은 속성 제한 없이 16가지 색상 중 하나를 보유합니다. 픽셀은 선형 버퍼에 4비트 니블(예: 바이트당 2 픽셀)로 저장됩니다. 버퍼 길이는 6144바이트이며 256 x 192 픽셀 화면과 동일한 메모리를 차지합니다.

세부사항:
픽셀: 128 x 96
특성: 없음, 제한 없음
색상: 16(256에서)
기계: ZX-Uno, ZX 스펙트럼 넥스트

LoRES

이 모드는 128x96 이중 크기의 픽셀을 표시합니다. 각 픽셀은 속성 제한 없이 256가지 색상 중 하나(512부터)를 유지합니다. 픽셀은 선형 버퍼에 8비트로 저장됩니다. 버퍼의 길이는 12288바이트이며 256x192 픽셀 기본(DFILE1) 및 섀도(DFILE2) 화면과 동일한 메모리를 차지합니다.

세부사항:
픽셀: 128 x 96
특성: 없음, 제한 없음
색상: 256(512부터)
기계: ZX 스펙트럼 넥스트

스펙트럼(+128)

스펙트럼에는 31개의 디스플레이 형식이 있습니다. 이를 통해 최대 64개의 고유 색상을 동시에, 다양한 색상 해상도로 표시할 수 있으며 속성 높이는 1, 2, 4, 8 픽셀, 너비는 4, 8 픽셀입니다.[61]

고해상도 모드

512x192x2 / Hi-Res

이 모드는 주로 64x24 또는 85x24 열 텍스트 화면을 표시하는 데 사용되었으며 원래는 Timex Sinclair 컴퓨터(Hi-Res라는 이름의 컴퓨터)와 일부 러시아 클론만[62] 표시할 수 있습니다. 또한 12KB RAM이 필요합니다. Timex의 경우 명령어를 통해 이 모드가 활성화됩니다. OUT 255,1.[28][28][29] 개의 그래픽 편집기("Draw 512"[63] 및 "Tech-Draw")[64]가 이 모드를 지원하며,[65][66] BASIC64 및 일부 CP/M 구현도 지원합니다.[31]

세부사항:
픽셀: 512 x 192
특성: 없음, 제한 없음
색상: 2개(4개 팔레트: Black & White, Blue & Yellow, Red & Cyan, Magenta & Green (ZX Spectrum Next에서 512점 만점)
기계: Timex Sinclair, ZX Spectrum Next, ZX-Uno, MB03+ Ultimate, eLeMeNt ZX, 펜타곤
Sam Coupé 512x192x4 색상 예시

512x192x4 / Mode 3

Sam Coupé에는 이 모드가 있으며 각 픽셀은 128의 팔레트에서 4가지 색상 중 하나를 사용할 수 있습니다.[31]

세부사항:
픽셀: 512 x 192
특성: 없음, 제한 없음
색상: 한 라인당 4개(128개부터)
기계: 샘 쿠페
펜타곤 512 x 384 비디오 모드 예

512x384x2

펜타곤 컴퓨터가 지원하는 모드입니다.[56]

세부사항:
픽셀: 512 x 384
색상 : 단색
기계: 펜타곤, Timex Sinclair 2128 (TC 2048 기반 수정)

하이레스 컬러

픽셀은 선형 순서로 저장됩니다. 속성이 수직 방향으로 두 배로 증가하고 속성의 구성이 원래 ZX 스펙트럼 모드와 동일합니다. HiResindXedColor는 16777216 색상 중 32가지 색상을 선택할 수 있습니다. 두 개의 비디오 RAM을 Keylayer를 통해 Color 모드와 XedColor 모드로 혼합할 수 있습니다.

세부사항:
픽셀: 512 x 192
속성: 64 x 48
색상: 16개(또는 32개, 1677216부터)
기계 : MB03+ 얼티밋, eLeMeNt ZX

에뮬레이트된

256x192, 256색, "256색 모드", 속성 없음

SPEC256,[67][68][69] EmuZWin[70][67][71][72][69] 및 Es.pectrum[73] 에뮬레이터에는 화면 모드 256x192 픽셀이 있으며 각 픽셀은 256가지 색상 중 하나로 표시될 수 있습니다.[31] 이는 에뮬레이트된 Z80워드 크기를 8비트에서 64비트로 확장하여 각 픽셀에 8비트의 데이터를 사용할 수 있게 함으로써 달성됩니다. 따라서 화면에는 48KB의 메모리가 필요합니다. 이 모드는 에뮬레이터에만 존재하며 소프트웨어 그래픽을 수정하여 사용해야 합니다.[70]

세부사항:
픽셀: 256 x 192
특성: 없음, 제한 없음
색상 : 256

ULAX

ZX ULAX 에뮬레이터는 15비트 하이 컬러 모드를 제공합니다.[74]

디더링 앤 블러

일반적인 디더링 패턴이 있는 256x192 ZX 스펙트럼 이미지의 시뮬레이션된 TV 블러. 패턴이 의도적으로 흐릿하게 새 색상(예: 오렌지, 회색 등)을 생성합니다. 일반 디더링은 이 이미지의 유효 해상도를 128x96으로 줄입니다.
ZX Spectrum standard palette with 8x8 ordered dithering.
픽셀 아트에서 디더링 기능이 있는 표준 ZX 스펙트럼 팔레트

픽셀당 비트 수가 1비트에 불과하기 때문에 그래픽 아티스트(예: ZX-Art)는 다양한 디더링 기술에 의존해야 합니다. 아날로그 텔레비전은 가로축과 세로축 모두에서 많은 양의 블러를 사용하기 때문에 디더링은 해당 시대의 CRT TV 세트와 매우 잘 작동합니다. 일반적인 CRT TV 전자 빔의 초점이 의도적으로 낮기 때문에 높은 흐림으로 인해 주변 픽셀 색상이 혼합됩니다. 블러는 표시된 이미지에서 디더링하여 추가되는 원하지 않는 가시 소음을 줄입니다.

ZX 스펙트럼의 실제 출력 이미지를 충실하게 시뮬레이션하려면 현대 에뮬레이터는 상당한 강도의 블러 필터를 사용해야 합니다. 단순한 쌍선형 필터는 너무 많은 블러를 도입하는 반면 극도로 날카로운 Lanczos 필터는 부적절합니다. 따라서 필터는 일반적인 CRT TV 세트에 대한 블러의 영향을 시뮬레이션하도록 특별히 구성되어야 합니다. 대부분의 현재 에뮬레이터는 매우 낮은 품질의 필터를 사용하므로 최종 이미지가 매우 선명하고 픽셀화되어 표시됩니다. FUSE와 같은 일부 에뮬레이터는 픽셀화 효과를 줄이기 위해 쉽게 구할 수 있지만 불충분한 필터를 사용합니다. 이러한 불충분한 필터는 ZX Spectrum의 실제 비디오 출력과는 상당히 다른 최종 이미지를 생성합니다.

일부 팔레트 색상 조합의 낮은 상호 대비는 디더링에 의해 유입되는 노이즈의 양을 더욱 줄여 디더링 효과를 향상시킬 수 있습니다. 아래 표는 이러한 효과를 보여줍니다. 예를 들어 노란색 배경 위에 흰색이 대비되는 정도가 매우 낮아서 흰색 텍스트가 거의 보이지 않습니다.

색대비도
0,00,00 0,00,01 0,00,02 0,00,03 0,00,04 0,00,05 0,00,06 0,00,07
0,01,00 0,01,01 0,01,02 0,01,03 0,01,04 0,01,05 0,01,06 0,01,07
0,02,00 0,02,01 0,02,02 0,02,03 0,02,04 0,02,05 0,02,06 0,02,07
0,03,00 0,03,01 0,03,02 0,03,03 0,03,04 0,03,05 0,03,06 0,03,07
0,04,00 0,04,01 0,04,02 0,04,03 0,04,04 0,04,05 0,04,06 0,04,07
0,05,00 0,05,01 0,05,02 0,05,03 0,05,04 0,05,05 0,05,06 0,05,07
0,06,00 0,06,01 0,06,02 0,06,03 0,06,04 0,06,05 0,06,06 0,06,07
0,07,00 0,07,01 0,07,02 0,07,03 0,07,04 0,07,05 0,07,06 0,07,07

참고문헌

  1. ^ Vickers, Steven (1982). "Introduction". Sinclair ZX Spectrum BASIC Programming. Sinclair Research Ltd. Archived from the original on 24 September 2006. Retrieved 23 August 2006.
  2. ^ Vickers, Steven (1982). "Colours". Sinclair ZX Spectrum BASIC Programming. Sinclair Research Ltd. Archived from the original on 24 September 2006. Retrieved 23 August 2006.
  3. ^ EP 특허 0107687, Richard Francis Altwasser, "Display for computer", 1988년 7월 6일 발행, Sinclair Research Ltd.
  4. ^ "Database - ZX-Art". zxart.ee. Retrieved 14 April 2023.
  5. ^ "48K ZX Spectrum Technical Information". worldofspectrum.org. Retrieved 28 December 2023.
  6. ^ a b http://www.zxdesign.info/vidresearch.shtml
  7. ^ https://worldofspectrum.org/faq/reference/48kreference.htm
  8. ^ https://worldofspectrum.org/faq/reference/128kreference.htm
  9. ^ a b Smith, Chris (2010). The ZX Spectrum ULA: How to Design a Microcomputer (1st ed.). United Kingdom: ZXDesign Technology and Media. pp. 224–227. ISBN 978-0-95-650710-5.
  10. ^ "48K ZX Spectrum Technical Information". worldofspectrum.org. Retrieved 15 November 2023.
  11. ^ a b Smith, Chris (2010). The ZX Spectrum ULA: How to Design a Microcomputer (1st ed.). United Kingdom: ZXDesign Technology and Media. p. 74. ISBN 978-0-95-650710-5.
  12. ^ "48K ZX Spectrum Technical Information". worldofspectrum.org. Retrieved 15 November 2023.
  13. ^ Tišnovský, Pavel. "Grafika na osmibitových počítačích firmy Sinclair II". Root.cz (in Czech). Retrieved 15 November 2023.
  14. ^ "For Newbies - C64 Video output explained". Lemon64 - Commodore 64. 24 September 2019. Retrieved 11 January 2024.
  15. ^ a b c "Colours - Sinclair ZX Spectrum Introduction Manual [Page 27] ManualsLib". www.manualslib.com.
  16. ^ "S-video out for the ZX Spectrum +2A/+3, +2B, and +3B". zxnet.co.uk. Retrieved 20 December 2023.
  17. ^ "Removing Blue/Yellow Ghosting from the 128/+2's Video Output". Spectrum for Everyone. Retrieved 20 December 2023.
  18. ^ Farrow, Paul (2001). Spectrum 128 SCART Cable (PDF).
  19. ^ TEA2000 PAL/NTSC Colour Encoder (PDF). Philips. September 1985.
  20. ^ a b "Spectrum Clone Design Blog". www.zxdesign.info.
  21. ^ "48K ZX Spectrum Technical Information". worldofspectrum.org. Retrieved 14 November 2023.
  22. ^ "ZX Spectrum games, graphics and music - ZX-Art". zxart.ee. Retrieved 12 January 2024.
  23. ^ "Colours - Sinclair ZX Spectrum Introduction Manual [Page 27]". ManualsLib. Retrieved 14 November 2023.
  24. ^ "Spectrum Clone Design Blog". www.zxdesign.info.
  25. ^ "48K ZX Spectrum Technical Information". worldofspectrum.org.
  26. ^ Belfield, Dean. "L Break Into Program - ZX Spectrum Screen Memory Layout".
  27. ^ "World of Spectrum - Documentation - ZX Spectrum manual - Chapter 24". worldofspectrum.org.
  28. ^ a b c "Timex I/O Ports". timex.comboios.info.
  29. ^ a b c d "Timex Technical Information". worldofspectrum.org.
  30. ^ Weissenberg, Michael (19 December 1983). "InfoWorld". InfoWorld Media Group, Inc. – via Google Books.
  31. ^ a b c d e f g h "ZX Spectrum extra graphics modes -- 8bit Projects For Everyone". 8bit.yarek.pl. Archived from the original on 15 June 2006. Retrieved 14 September 2006.
  32. ^ "Extended Paint". www.timexsinclair.com. Retrieved 20 November 2022.
  33. ^ MB-02+ Revolutionary Step Forward (PDF). 8 Bit Company Laboratories.
  34. ^ "MB02+ download". www.128land.com.
  35. ^ Gordon, Wright, Bruce, Andy (1990). SAM COUPE TECHNICAL MANUAL v3.0 (PDF). MILES GORDON TECHNOLOGY plc.{{cite book}}: CS1 maint: 다중 이름: 저자 목록 (링크)
  36. ^ "BIFROST*2 ENGINE at Spectrum Computing - Sinclair ZX Spectrum games, software and hardware". Spectrum Computing.
  37. ^ "SuperColour at Spectrum Computing - Sinclair ZX Spectrum games, software and hardware". Spectrum Computing.
  38. ^ "Spectrum Computing - ZX Spectrum games, software and hardware".
  39. ^ "NIRVANA+ ENGINE at Spectrum Computing - Sinclair ZX Spectrum games, software and hardware". Spectrum Computing.
  40. ^ "Database - ZX-Art".
  41. ^ "Database - ZX-Art". zxart.ee.
  42. ^ "ULAplus". sites.google.com.
  43. ^ "ULAplus". sites.google.com. Archived from the original on 25 May 2013. Retrieved 20 November 2022.
  44. ^ "ULAplus™ 10th Anniversary Collection by Source Solutions, Inc". itch.io. Retrieved 20 November 2022.
  45. ^ "HAM256 Viewer at Spectrum Computing - Sinclair ZX Spectrum games, software and hardware". Spectrum Computing. Retrieved 20 November 2022.
  46. ^ "HAM 8x1 at Spectrum Computing - Sinclair ZX Spectrum games, software and hardware". Spectrum Computing. Retrieved 20 November 2022.
  47. ^ a b c Gabor, Tarjan (2021). "ZX Spectrum in the 21st Century?".
  48. ^ "Interlace Demo at Spectrum Computing - Sinclair ZX Spectrum games, software and hardware". Spectrum Computing.
  49. ^ "Database - ZX-Art". zxart.ee.
  50. ^ "GFX ZONE - ZX-Spectrum graphics modes". gfxzone.planet-d.net.
  51. ^ ZX Spectrum 128k: "Velesoft's Dragon in Giga Screen Simulator" Demo (2021), retrieved 21 December 2023
  52. ^ "Database - ZX-Art". zxart.ee.
  53. ^ "ZX Prism: 16 Colour "colour-clash free" planar mode and Hardware Gigascreen". 17 July 2014.
  54. ^ "Триколор — SpeccyWiki". speccy.info.
  55. ^ "16col — SpeccyWiki".
  56. ^ a b "384x304 — SpeccyWiki".
  57. ^ "LnxSpectrum HGFX Oxygene" – via vimeo.com.
  58. ^ "HGFX - ZX Planar - Spectrum Computing Forums".
  59. ^ "lnxspectrum:hgfx [ilnx.cz]". wiki.ilnx.cz.
  60. ^ "Video Modes - SpecNext official Wiki".
  61. ^ Farrow, Paul (2018). Summary of SPECTRA Display Modes (PDF). www.fruitcake.plus.com / www.zxresourcecentre.co.uk.
  62. ^ "512x192 — SpeccyWiki".
  63. ^ "Draw 512". www.timexsinclair.com. Retrieved 20 November 2022.
  64. ^ "Tech-Draw". www.timexsinclair.com. Retrieved 20 November 2022.
  65. ^ "Draw 512 at Spectrum Computing - Sinclair ZX Spectrum games, software and hardware". Spectrum Computing. Retrieved 20 November 2022.
  66. ^ "Software for the TS 2068". www.timexsinclair.com. Retrieved 20 November 2022.
  67. ^ a b MVV (18 July 2022), mvvproject/Spec256-Games, retrieved 26 November 2022
  68. ^ "Spectrum Magic ZX games 256 colour". spectrummagic.emuunlim.com. Retrieved 26 November 2022.
  69. ^ a b Parsons, Neil (31 January 2011). "¿Y si el ZX Spectrum hubiese tenido 256 colores?". Program : Bytes : 48k (in Spanish). Retrieved 26 November 2022.
  70. ^ a b arda (9 January 2010). "Creating 256 colour games with EmuZwin". æ Unutmadan. Retrieved 26 November 2022.
  71. ^ "EmuZWin v2.6 release 1.0".
  72. ^ "EmuZWin 2". f0460945.xsph.ru. Retrieved 26 November 2022.
  73. ^ "Es.pectrum manual". www.habisoft.com. Retrieved 26 November 2022.
  74. ^ "ZX ULAX emulator - Spectrum Computing Forums".

외부 링크