| 해당 내용은 NES에 국한된 내용입니다. 해당 문서의 내용의 일부는 NES(패미컴) 외에서는 해당 내용이 적용되지 않을 수 있습니다. |
| 해당 문서는 NesDev의 문서를 번역했습니다. 해당 문서의 전체 또는 일부는 NesDev의 문서를 번역했습니다. 원문서는 CC0 1.0 Universal이므로 가져와도 문제가 없습니다. 원글링크: [1] |
PPU에 연결된 메모리 영역인 패턴 테이블은 배경과 스프라이트를 구성하는 타일의 모양을 정의한다. 이 데이터는 CHR로도 알려져 있으며, 이를 포함하고 PPU에 연결된 메모리는 CHR-ROM 또는 CHR-RAM일 수 있다. CHR은 "character"에서 유래했으며, 각 타일이 단일 문자 하나를 나타낼 수 있는 컴퓨터 텍스트 디스플레이와 관련이 있다.

타일 형식[편집]
패턴 테이블은 2BPP 타일들로 구성되며, 각 타일은 16바이트이며 두 개의 8바이트 평면으로 구성된다. 첫 번째 평면의 각 비트는 픽셀 색상 인덱스의 비트 0을 제어하고, 두 번째 평면의 해당 비트는 비트 1을 제어한다.
- 두 비트 모두 1로 설정되지 않은 경우: 픽셀은 배경/투명이다.
- 첫 번째 평면의 비트만 1로 설정된 경우: 픽셀의 색상 인덱스는 1이다.
- 두 번째 평면의 비트만 1로 설정된 경우: 픽셀의 색상 인덱스는 2이다.
- 두 비트가 모두 1로 설정된 경우: 픽셀의 색상 인덱스는 3이다.
이 그림은 ½(분수 2분의 1) 타일이 어떻게 인코딩되는지 보여주며, `.`은 투명 픽셀을 나타낸다.
비트 평면 픽셀 패턴
$0xx0=$41 01000001
$0xx1=$C2 11000010
$0xx2=$44 01000100
$0xx3=$48 01001000
$0xx4=$10 00010000
$0xx5=$20 00100000 .1.....3
$0xx6=$40 01000000 11....3.
$0xx7=$80 10000000 ===== .1...3..
.1..3...
$0xx8=$01 00000001 ===== ...3.22.
$0xx9=$02 00000010 ..3....2
$0xxA=$04 00000100 .3....2.
$0xxB=$08 00001000 3....222
$0xxC=$16 00010110
$0xxD=$21 00100001
$0xxE=$42 01000010
$0xxF=$87 10000111
패턴 테이블은 두 개의 256타일 섹션으로 나뉜다: 첫 번째 패턴 테이블은 $0000-$0FFF에 있고 두 번째 패턴 테이블은 $1000-$1FFF에 있다. 때때로 디버거가 있는 에뮬레이터가 표시하는 방식에 따라 "왼쪽" 및 "오른쪽" 패턴 테이블이라는 별명이 붙기도 한다. (아래 표시 규칙 참조)
mapper 기능의 중요한 측면은 패턴 테이블의 일부를 얼마나 세밀하게 뱅크 스위칭할 수 있는지이다.
주소 지정[편집]
패턴 테이블 내의 PPU 주소는 다음과 같이 디코딩할 수 있다:
DCBA98 76543210 --------------- 0HNNNN NNNNPyyy |||||| |||||+++- T: 미세 Y 오프셋, 타일 내의 행 번호 |||||| ||||+---- P: 비트 평면 (0: 하위 비트; 1: 상위 비트) ||++++-++++----- N: 네임 테이블의 타일 번호 |+-------------- H: 패턴 테이블의 절반 (0: "왼쪽"; 1: "오른쪽") +--------------- 0: 패턴 테이블은 $0000-$1FFF에 있다
PPUCTRL ($2000)에 기록된 값은 배경과 스프라이트가 첫 번째 패턴 테이블($0000-$0FFF)을 사용할지 두 번째 패턴 테이블($1000-$1FFF)을 사용할지 제어한다. PPUCTRL 비트 4는 배경에 적용되고, 비트 3은 8x8 스프라이트에 적용되며, 각 OAM 항목의 타일 번호의 비트 0은 8x16 스프라이트에 적용된다.
예를 들어, 타일의 행 번호가 0부터 7까지인 경우, 왼쪽 패턴 테이블의 타일 $69의 1행은 평면 0이 $0691에, 평면 1이 $0699에 저장된다.
표시 규칙[편집]

디버깅 에뮬레이터의 비디오 메모리 뷰어는 패턴 테이블을 나란히 있는 두 개의 16x16 타일 그리드로 표시하는 것이 일반적이다. 왼쪽에는 $0000-$0FFF의 패턴 테이블을, 오른쪽에는 $1000-$1FFF의 패턴 테이블을 그린다. 각 패턴 테이블은 일반적으로 16행 16타일로 구성된 128x128 픽셀 정사각형으로 표시된다. 일반적으로 타일은 서양식 읽기 순서에 따라 왼쪽에서 오른쪽으로, 위에서 아래로 표시된다: 왼쪽 상단에 $00, 그 오른쪽에 $01, 오른쪽 상단에 $0F, 그 다음 두 번째 줄에 $10부터 $1F까지, 오른쪽 하단에 $FF까지 이어진다. 일부 에뮬레이터에는 8x16 스프라이트용으로 뷰를 재정렬하는 옵션이 있다. 여기서 처음 두 행은 $00, $02, $04, ..., $1E와 $01, $03, $05, ..., $1F이고, 그 아래의 각 행 쌍은 또 다른 16개의 타일 쌍을 보여준다.