경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!=== PPUSCROLL - X 및 Y 스크롤 ($2005 쓰기) === ---- 1번째 쓰기 7 bit 0 ---- ---- XXXX XXXX |||| |||| ++++-++++- X 스크롤 비트 7-0 (PPUCTRL 비트 0의 비트 8) 2번째 쓰기 7 bit 0 ---- ---- YYYY YYYY |||| |||| ++++-++++- Y 스크롤 비트 7-0 (PPUCTRL 비트 1의 비트 8) 이 레지스터는 [[PPU scrolling|스크롤 위치]]를 변경하는 데 사용되며, [[#PPUCTRL|PPUCTRL]]을 통해 선택된 네임테이블의 어떤 픽셀이 렌더링된 화면의 왼쪽 상단 모서리에 있어야 하는지 PPU에 알려준다. PPUSCROLL은 두 번의 쓰기를 필요로 한다. 첫 번째는 X 스크롤이고 두 번째는 Y 스크롤이다. 이것이 첫 번째 쓰기인지 두 번째 쓰기인지는 [[#PPUADDR|PPUADDR]]과 공유되는 [[#Internal_registers|w 레지스터]]에 의해 내부적으로 추적된다. 일반적으로 이 레지스터는 다음 프레임이 원하는 위치에서 렌더링을 시작하도록 수직 블랭킹 중에 쓰여지지만, 화면을 분할하기 위해 렌더링 중에 수정될 수도 있다. 렌더링 중에 수직 스크롤을 변경하면 다음 프레임에만 적용된다. PPUCTRL의 네임테이블 비트와 함께 스크롤은 구성 요소당 9비트로 생각할 수 있으며, 스크롤 위치를 완전히 지정하려면 PPUSCROLL과 함께 PPUCTRL을 업데이트해야 한다. {{mbox | type = warning | text = <font size=+1>PPU 스크롤 레지스터는 PPU 주소 레지스터와 [[PPU_scrolling#PPU_internal_registers|내부 상태를 공유]]한다. 이 때문에 PPUSCROLL 및 PPUCTRL의 네임테이블 비트는 PPUADDR에 대한 모든 쓰기 ''후에'' 쓰여져야 한다.</font>}} [[#Internal_registers|w (쓰기 래치)]]를 지우기 위해 [[#PPUSTATUS|PPUSTATUS]]를 읽은 후, 화면을 켜기 직전에 PPUSCROLL에 수평 및 수직 스크롤 오프셋을 쓴다. ; X 및 Y 스크롤의 상위 비트를 설정한다. lda ppuctrl_value ora current_nametable sta PPUCTRL ; X 및 Y 스크롤의 하위 8비트를 설정한다. bit PPUSTATUS lda cam_position_x sta PPUSCROLL lda cam_position_y sta PPUSCROLL 수평 오프셋은 0에서 255까지의 범위를 갖는다. "정상적인" 수직 오프셋은 0에서 239까지의 범위를 가지며, 240에서 255까지의 값은 현재 네임테이블 끝의 속성 데이터가 타일 데이터로 잘못 사용되게 한다. PPU는 일반적으로 239에서 다음 네임테이블의 0으로 자동으로 건너뛰므로 이러한 "잘못된" 스크롤 위치는 명시적으로 기록된 경우에만 발생한다. 여기서 여러 프레임에 걸쳐 스크롤 값을 변경하고 새로 드러난 네임테이블 영역에 타일을 쓰면 큰 배경 위로 카메라가 패닝하는 효과를 얻을 수 있다. {{Anchor|PPUADDR}}{{Anchor|Reg2006}}{{Anchor|Address_($2006)_>>_write_x2}} 요약: 한식구 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 한식구위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 자동 편집 스팸으로부터 위키를 보호하기 위해, 다음 CAPTCHA를 풀어주세요: 취소 편집 도움말 (새 창에서 열림)