ANES: 2중 PPU를 장착한 NES 하드웨어 개조
NES(패밀리 컴퓨터) 콘솔에 그래픽 처리 칩인 PPU를 2개 장착하여 색상, 스프라이트, 시차 스크롤링 등 그래픽 성능을 대폭 끌어올리는 하드웨어 개조(모딩) 프로젝트입니다. 두 대의 본체를 부품 기증용으로 활용해 직접 회로를 조립해야 하므로 제작 난이도가 매우 높으며, 실제 개조 없이 에뮬레이터 포크(fork)를 통해 이 기술을 테스트해 볼 수도 있습니다. 하드웨어 해커와 레트로 게임 매니아들에게 매우 흥미로운 오픈소스 프로젝트입니다.
고급 닌텐도 엔터테인먼트 시스템(ANES)
이 저장소(레포지토리)는 고급 그래픽 기능을 위해 NES에 2개의 PPU를 사용하도록 개조(모딩)하는 과정을 설명합니다. 누군가가 직접 이것을 만들기 위해 굳이 애쓰지 않을 것으로 예상하기 때문에 문서가 때때로 대충 작성되었을 수 있습니다. NES를 개조하지 않고 이 개념을 실험해 보고 싶다면, 제가 수정한 Mesen2 에뮬레이터 포크(fork)를 확인해 보세요. 듀얼 PPU 설정을 활용하는 데모는 관련 프로젝트 섹션을 참조하세요. 영상도 꼭 시청해 보세요!
기능 더 많은 색상! 더 많은 스프라이트! 시차 스크롤링(Parallax scrolling)!
회로도 KiCad 파일은 하드웨어 디렉터리에서 찾을 수 있습니다.
재료 먼저 콘솔 2대가 필요합니다. 한 대는 개조용이고 다른 한 대는 부품 기증용으로 사용합니다.
수량 | 위치 | 부품 번호 | 설명 2 | U1, U2 | RP2C02 PPU | 두 콘솔 모두에서 납땜을 제거한 PPU 1 | U3 | AS6C6264-55PCN | PPU2용 정적 RAM(SRAM) 1 | U4 | 74LS373 | 부품 기증용 콘솔에서 납땜을 제거한 주소 래치(Address latch) 1 | U5 | 74LS139 | 부품 기증용 콘솔에서 납땜을 제거한 디멀티플렉서(Demultiplexer) 1 | U1 | EMS-26405 | PPU1용 40핀 와이어 랩 소켓 2 | J1 | 20핀 암형 핀 헤더 | 와이어 랩 소켓을 꽂기 위함 1 | U5/J3 | 16핀 소켓 | 74LS139용 4 | RN1 | 10K 1/4 와트 | EXT 풀다운 저항 1 | - | 6x8cm 프로토타입 보드 1 | U2 | 40핀 소켓 | PPU2용 (선택 사항) 1 | U3 | 28핀 소켓 | AS6C6264-55PCN용 (선택 사항) 1 | U4 | 20핀 소켓 | 74LS373용 (선택 사항)
제작 과정
프로토타입 보드 자르기 재료 섹션에 나열된 6x8cm 프로토타입 보드는 약간 너무 커서 확장 포트를 가로막습니다. 알맞게 잘라주세요.
다음 부품들의 납땜 제거 (Desoldering) 개조할 콘솔과 부품 기증용 콘솔 양쪽에서 RP2C02 (U5)를 제거합니다. 부품 기증용 콘솔에서 74LS373 (U2)을 제거합니다. 부품 기증용 콘솔에서 74LS139 (U3)를 제거합니다.
캐패시터 이동 이 캐패시터들이 듀얼 PPU 보드의 설치를 방해할 수 있습니다. 납작하게 접어두거나 메인보드 반대쪽으로 재배치하세요.
핀 헤더 납땜 원래 PPU가 있던 자리에 20핀 암형 헤더 2개를 납땜합니다.
듀얼 PPU 보드 조립 제공된 회로도와 사진을 따라 듀얼 PPU 보드를 조립합니다. 행운을 빕니다.
디멀티플렉서 설치 16핀 IC 소켓에서 6, 7, 9, 10, 11, 12, 13, 14, 15번 핀을 제거합니다. 2, 3, 4, 5번 핀을 수평으로 바깥쪽으로 구부립니다. 콘솔의 74LS139 칩 위에 소켓을 얹고, 나머지 1, 8, 16번 핀을 납땜합니다. 소켓의 2번 핀에서 CPU 주소 라인 A12로 점퍼 와이어를 납땜합니다. 소켓의 3번 핀에서 콘솔의 74LS139 5번 핀으로 점퍼 와이어를 납땜합니다. 소켓의 4번과 5번 핀에서 각각 PPU1과 PPU2의 /CE 핀으로 점퍼 와이어를 납땜합니다. 부품 기증용 74LS139 칩을 해당 소켓에 장착합니다.
듀얼 PPU 보드 설치 조립한 듀얼 PPU 보드를 암형 핀 헤더에 꽂습니다. 이제 완성되었습니다.
관련 프로젝트 https://github.com/decrazyo/Mesen2 https://github.com/decrazyo/dual-ppu-demo https://github.com/VinglesSmi/DualPPUTest