잔글편집 요약 없음 |
잔글편집 요약 없음 |
||
| 1번째 줄: | 1번째 줄: | ||
[[PPU]]는 CPU의 주소 버스와 완전히 분리된 14비트(16kB) 주소 공간, $0000-$3FFF를 주소 지정한다. PPU 자체에서 직접 접근하거나, $2006과 $2007에 있는 [[PPU 레지스터|메모리 매핑된 레지스터]]를 통해 CPU로 접근할 수 있다. | [[PPU]]는 CPU의 주소 버스와 완전히 분리된 14비트(16kB) 주소 공간, $0000-$3FFF를 주소 지정한다. PPU 자체에서 직접 접근하거나, $2006과 $2007에 있는 [[PPU 레지스터|메모리 매핑된 레지스터]]를 통해 CPU로 접근할 수 있다. | ||
| 10번째 줄: | 9번째 줄: | ||
| $1000-$1FFF || $1000 || 패턴 테이블 1 || 카트리지 | | $1000-$1FFF || $1000 || 패턴 테이블 1 || 카트리지 | ||
|- | |- | ||
| $2000-$23BF || $03c0 || [[PPU | | $2000-$23BF || $03c0 || [[PPU 네임테이블]] 0 || 카트리지 | ||
|- | |- | ||
| $23C0-$23FF || $0040 || [[PPU attribute tables|속성 테이블]] 0 || 카트리지 | | $23C0-$23FF || $0040 || [[PPU attribute tables|속성 테이블]] 0 || 카트리지 | ||
2025년 10월 1일 (수) 12:21 판
PPU는 CPU의 주소 버스와 완전히 분리된 14비트(16kB) 주소 공간, $0000-$3FFF를 주소 지정한다. PPU 자체에서 직접 접근하거나, $2006과 $2007에 있는 메모리 매핑된 레지스터를 통해 CPU로 접근할 수 있다.
| 주소 범위 | 크기 | 설명 | 매핑 주체 |
|---|---|---|---|
| $0000-$0FFF | $1000 | 패턴 테이블 0 | 카트리지 |
| $1000-$1FFF | $1000 | 패턴 테이블 1 | 카트리지 |
| $2000-$23BF | $03c0 | PPU 네임테이블 0 | 카트리지 |
| $23C0-$23FF | $0040 | 속성 테이블 0 | 카트리지 |
| $2400-$27BF | $03c0 | 네임테이블 1 | 카트리지 |
| $27C0-$27FF | $0040 | 속성 테이블 1 | 카트리지 |
| $2800-$2BBF | $03c0 | 네임테이블 2 | 카트리지 |
| $2BC0-$2BFF | $0040 | 속성 테이블 2 | 카트리지 |
| $2C00-$2FBF | $03c0 | 네임테이블 3 | 카트리지 |
| $2FC0-$2FFF | $0040 | 속성 테이블 3 | 카트리지 |
| $3000-$3EFF | $0F00 | 사용되지 않음 | 카트리지 |
| $3F00-$3F1F | $0020 | 팔레트 RAM 인덱스 | PPU 내부 |
| $3F20-$3FFF | $00E0 | $3F00-$3F1F의 미러 | PPU 내부 |
하드웨어 매핑
NES에는 PPU 전용 2kB의 RAM이 있으며, 일반적으로 $2000-$2FFF의 네임테이블 주소 공간에 매핑되지만, 사용자 지정 카트리지 배선을 통해 재라우팅될 수 있다. 위의 매핑은 렌더링 중에 PPU가 데이터를 가져오는 데 사용하는 주소이다. PPU가 패턴, 네임테이블 및 속성 테이블 데이터를 가져오는 실제 장치는 카트리지에 의해 구성된다.
- $0000-1FFF는 일반적으로 카트리지에 의해 CHR-ROM 또는 CHR-RAM에 매핑되며, 종종 뱅크 스위칭 메커니즘이 있다.
- $2000-2FFF는 일반적으로 2kB NES 내부 VRAM에 매핑되어 카트리지에 의해 제어되는 미러링 구성으로 2개의 네임테이블을 제공하지만, 카트리지의 ROM 또는 RAM에 부분적으로 또는 완전히 다시 매핑될 수 있어 최대 4개의 동시 네임테이블을 허용한다.
- $3000-3EFF는 일반적으로 $2000-2EFF의 2kB 영역의 미러이다. PPU는 이 주소 범위에서 렌더링하지 않으므로 이 공간은 거의 사용되지 않는다.
- $3F00-3FFF는 구성할 수 없으며 항상 내부 팔레트 제어에 매핑된다.
OAM
또한 PPU는 내부에 객체 속성 메모리로 알려진 256바이트의 메모리를 포함하고 있으며, 이는 스프라이트가 렌더링되는 방식을 결정한다. CPU는 OAMADDR ($2003), OAMDATA ($2004), OAMDMA ($4014)의 메모리 매핑된 레지스터를 통해 이 메모리를 조작할 수 있다. OAM은 64개의 항목이 있는 배열로 볼 수 있다. 각 항목에는 스프라이트 Y 좌표, 스프라이트 타일 번호, 스프라이트 속성, 스프라이트 X 좌표의 4바이트가 있다.
| 주소 하위 니블 | 설명 |
|---|---|
| $0, $4, $8, $C | 스프라이트 Y 좌표 |
| $1, $5, $9, $D | 스프라이트 타일 # |
| $2, $6, $A, $E | 스프라이트 속성 |
| $3, $7, $B, $F | 스프라이트 X 좌표 |