1P by neo 2달전 | favorite | 댓글 1개

Here is a summary of the key points from the article on Super Nintendo cartridges, translated into Korean and organized using Markdown syntax:

수퍼 닌텐도 카트리지 내부 구조

  • 수퍼 닌텐도 게임 카트리지는 ROM 칩에 명령어와 에셋 외에도 추가적인 요소들을 포함할 수 있음.
    • CIC 복사 방지 칩, SRAM, 심지어 "성능 향상 프로세서"도 PCB 내부에서 찾아볼 수 있음.

CIC (복사 방지)

  • SNES의 복사 방지 메커니즘은 콘솔과 카트리지에 있는 두 개의 칩이 동기화된 상태로 통신하는 방식으로 동작함.
  • 콘솔의 CIC가 이상 동작을 감지하면 모든 프로세서를 리셋시킴.

ROM: 명령어 & 에셋

  • 게임 ROM 크기는 과거에는 바이트 대신 비트 단위로 표시되었음 (예: 젤다의 전설3는 8Mb).
  • 가장 큰 용량의 게임은 Star Ocean (48Mb)이며, 슈퍼 마리오 월드 같은 명작은 4Mb ROM 하나만 사용함.
  • 저자가 직접 만든 CSV에 3,378개 타이틀의 ROM 사용량 추정치가 정리되어 있음.

SRAM (저장 기능)

  • 일부 게임들은 SRAM 칩과 배터리를 이용해 진행 상황 저장 기능을 제공함.
  • 콘솔 전원이 꺼지면 SRAM은 저전력 모드로 전환되어 배터리 소모를 줄임.

성능 향상 프로세서 (Enhancement Processor)

  • 가장 유명한 것은 1993년 스타폭스에 사용된 Super FX (별칭 "MARIO", "GSU-1")임.
  • 위키피디아와 snescentral.com에 성능 향상 칩을 사용한 SNES 게임들의 전체 목록이 있음.
    • 총 13종의 칩이 72개 게임에 사용됨.

SA-1

  • "Super Accelerator 1"은 성능 향상 칩의 MVP로 34개 카트리지에 사용됨.
    • 콘솔과 동일한 65C816 CPU이지만 4배 빠른 10.74Mhz로 동작함.
    • 2KB SRAM과 내장 CIC를 갖추고 있음.
  • SA-1은 3가지 동작 모드 (가속, 병렬 처리, 혼합 처리)를 가짐. 가장 강력한 설정에서는 시스템 전체 성능을 5배 향상시킴.
  • 레트로 게이밍 커뮤니티에서는 SA-1을 이용해 느려지는 문제가 있던 과거 게임들 (마리오월드, 그라디우스3, 콘트라3 등)의 게임플레이를 개선함.

CX4

  • CX4는 캡콤의 작품으로 록맨 X2, X3에서 사용됨.
    • 3D 와이어프레임 렌더링과 다양한 연산, 스프라이트 스케일/회전 기능을 VRAM에 제공함.
  • 와이어프레임 효과로 유명하지만 전체 게임에서 모든 스프라이트 처리에 사용되어 화면 깜빡임 없이 더 많은 스프라이트를 표시할 수 있게 해줌.

기타 Enhancement Processor

  • CS-DD1: 스프라이트 압축 해제 칩. 2개 게임에서 사용됨.
  • DSP 시리즈: 16개 게임에 사용. 고속 16비트 곱셈, sin/cos 등의 명령어 제공.
  • OBC-1: 1개 게임에서 사용. (스프라이트 조작 관련 추측만 있음)
  • S-RTC: 실시간 시계 기능 제공. 1개 게임에서 사용.
  • SPC7110: 데이터 압축 해제 칩. 3개 게임에서 사용됨.
  • ST-010, ST-011, ST-018: SETA사의 AI 개선 목적 칩. 각각 1~2개 게임에서 사용됨.

SUPERFX (GSU-1, GSU-2)

  • GSU-1은 StarFox 등 5개 게임에서 사용됨.
    • 10.74Mhz로 동작, 512바이트 명령어 캐시로 SNES CPU를 굶주리지 않고 동작함.
  • SNES PPU가 타일/스프라이트 중심인데 반해 SuperFX는 픽셀 렌더링과 폴리곤 래스터화에 특화됨.
    • 보통 카트리지의 프레임버퍼에 렌더링하고 VSYNC시 VRAM으로 전송함.
  • GSU-2는 GSU-1을 21.47Mhz full speed로 동작시킨 것임. 요시아일랜드, 둠 등 3개 게임에서 사용됨.
  • SNES 커뮤니티에서는 GSU-1, GSU-2를 이용해 과거 게임들을 개선하는 프로젝트 진행중.

성능 향상 칩과 에뮬레이터

  • 성능 향상 칩은 플레이 경험을 크게 개선하고 퍼블리셔의 비용을 줄여주었지만, 후에는 에뮬레이터 개발자들에게 골칫거리가 됨.
    • 일부 게임은 특이한 칩에 의존해 2012년에야 제대로 에뮬레이션 되었음.
  • 에뮬레이터를 위해서는 칩을 리버스 엔지니어링 하는 많은 노력이 필요했음.
    • 내부 ROM을 가진 칩(ARM 기반)은 에뮬레이터에 BIOS 파일을 제공해야 함.
  • 2020년 현재에도 일부 희귀 칩의 에뮬레이션은 완료되지 않았음.

GN⁺의 의견

  • 성능 향상 칩들은 하드웨어 설계와 게임 개발의 역사에서 흥미로운 사례임. 한정된 하드웨어 성능을 최대한 활용하기 위한 다양한 아이디어와 노력이 돋보임.
  • 오늘날 에뮬레이터 개발 관점에서 보면 성가신 존재지만, 당시에는 게임 퀄리티를 높이고 개발 비용을 아끼는 효과적인 방법이었음.
  • 업계에서 비슷한 사례로는 세가 메가드라이브/제네시스의 각종 추가 칩들 (SVP, Sega Virtua Processor 등), 네오지오의 메모리 카드 슬롯 등이 있음.
  • 이런 확장 칩들은 콘솔 수명주기 후반부에 등장하는 경우가 많은데, 이는 한계에 부딪힌 하드웨어 스펙을 극복하려는 시도로 보임. 동시에 새로운 콘솔 출시를 준비하는 과도기이기도 함.
  • 레트로 게이밍 커뮤니티에서 오래된 게임 성능을 개선하는 프로젝트가 진행되는 것이 인상적임. 옛 제작진의 의도를 살리면서 현대적 시각으로 게임을 재해석하는 작업이라 볼 수 있음.
Hacker News 의견
  • 과거 게임기의 카트리지는 PC의 PCI 확장 카드와 유사하게 버스에 직접 연결되어 다양한 기능을 구현할 수 있었음. 그러나 GBA 이후로는 단순 데이터 저장 용도로만 사용됨.
  • 최신 기술을 이용하면 레이트레이싱 칩이나 MSU1 확장 칩 등을 카트리지에 탑재하여 게임기 성능을 크게 향상시킬 수 있음. 실제 물리적인 칩 제조도 이론적으로 가능함.
  • SNES의 CPU는 보통 3.58MHz로 동작하지만, 일부 저가형 슬로우롬 카트리지를 사용하면 2.68MHz로 속도가 낮아짐. 이를 패치로 개선하려는 모딩 커뮤니티도 있음.
  • SNES의 복사방지는 콘솔과 카트리지의 CIC 칩이 동기화되어 동작하는 방식이었으나, 백업 장치를 통해 쉽게 우회할 수 있었음.
  • 과거 게임 개발자들이 블로그 형태로 상세한 기술을 공유하는 것이 유튜브 영상보다 정보 밀도가 높음.
  • 슈퍼 마리오 월드는 360KB 용량에 다양한 캐릭터, 스프라이트, 스테이지를 담은 걸작임.
  • SNES의 확장 칩 방식을 현대 기술과 결합하면 더 발전된 그래픽 구현도 가능할 것임. SuperFX 칩은 자체 프레임버퍼를 가지고 VRAM에 복사하는 방식이었음.
  • SNES용 둠 포팅 작업자는 GSU 칩이나 둠 소스코드에 대한 문서 없이 모두 리버스 엔지니어링으로 개발함.
  • 과거 게임 가격의 상당 부분이 카트리지 제조 비용이었음. 최근에는 게임 배포 비용이 거의 들지 않음.
  • 요시 아일랜드에서는 특정 상황에서 프레임 속도 저하가 관찰됨.
  • 게임 용량은 롬 칩 크기에 맞춰 2의 거듭제곱 단위로 나옴. 문서에 나온 정확한 바이트 수의 출처는 불분명함.
  • SNES 확장 칩은 콘솔 기본 성능을 크게 뛰어넘는 게임을 가능케 했음. 특히 SA-1 칩은 주 CPU보다 4배 빠른 성능을 보였음.
  • 비공식 게임들은 복사방지를 우회하기 위해 정품 카트리지를 꽂아야만 하는 등 다양한 편법을 사용했음.
  • 게임 용량과 다른 요소들 간의 상관관계를 분석하면 SNES 게임 개발에 대한 흥미로운 통찰을 얻을 수 있을 것임.