OAM NDS에서 H/W로 지원하는 스프라이트 전용 처리기입니다.
이미지 처리형식은 256BG출력과 크게 다르지 않습니다
.

   

   

정사각형

8x8, 16x16, 32x32, 64x64

직사각형

16x8, 8x16, 32x8, 8x32, 32x16, 16x32, 64x32, 32x64

OAM의 크기는 의 정사각형 모델과 직사각형 모델을 지원합니다.
색은 16, 256색만 사용합니다. 한 화면에 오브젝트는 최대 128개로 제한됩니다.


OAM
은 투명색을 기본 지원하고 (팔레트 0) H/W 지원을 받아 스프라이트의 확대, 축소, 대칭, 반전,모자이크 처리등을 신속히 그리게 됩니다.

OAM
을 화면에 출력할 때 약간 제약이 따릅니다.

우선 Object의 컬러는 256, 16색 밖에 사용이 안되며, 1화면에 128개의 OAM
띄울 수 있습니다
.

기본적으로 OAM Image의 프레임 방식은 아래와 같은 구조입니다.

OAM Image

 

사용자 삽입 이미지

0x00

0x10

0x20

0x30

0x40

0x50

0x60

0x70

0x80

0x90

0xA0

0xB0

0xC0

이 곳을 왼쪽 그림처럼, 스프라이트를 지정해준다음,
(
가로 방향 이미지는 깨짐, 세로 이미지로 스프라이트 이미지를 생성)

32x32 스프라이트 이미지일 경우 0x10 (16)씩 띄어주면 다음 프레임이 찍힙니다.

tile(8x8) 개념으로 보면 총 16타일이 1 프레임이기 때문입니다.
만약 64x64 이미지 타일이면, 다음 프레임을 찍기 위해선 (8x8=64=0x40),

0x40씩 띄어야 합니다. (경우에 따라선 한프레임이 128byte로 떨어져 있음)


사용자 삽입 이미지

타일 개념으로 접근

(위의 크기는 32x32, 타일로 보면 4x4 = 16 = 0x10).

여기에 다음 스프라이트를 추가 하려면, 0xD0위치부터 넣으면 됩니다.

OAM을 출력하는 방법은

1. OAM 버퍼 생성
2. OAM 초기화
3. OAM 로드
4. OAM 출력될 판넬 지정
5. OAM 배치
6. OAM 출력 입니다.

+ Recent posts