처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.04.28 25

Super ZSNES 등장: GPU로 돌리는 SNES 에뮬레이터, 픽셀 단위 렌더링 시대 종료?

Hacker News 원문 보기
Super ZSNES 등장: GPU로 돌리는 SNES 에뮬레이터, 픽셀 단위 렌더링 시대 종료?

추억의 슈퍼 패미콤이 GPU를 만났어요

90년대에 슈퍼 패미콤(SNES)으로 마리오, 젤다, 파이널 판타지 했던 분들 많죠? 그 시절 게임을 PC에서 돌릴 수 있게 해준 전설의 에뮬레이터가 바로 ZSNES였어요. 1997년부터 개발돼서 2000년대 초반 에뮬레이터 씬을 거의 평정했던 프로젝트인데요, 한동안 개발이 멈춰있다가 최근 "Super ZSNES"라는 이름으로 GPU 가속 버전이 등장하면서 화제예요.

에뮬레이터가 뭔지 잠깐 설명하면, 옛날 게임기의 하드웨어를 소프트웨어로 흉내 내서 그 게임기용 게임이 PC에서 돌아가게 해주는 프로그램이에요. SNES는 1990년에 나온 16비트 게임기인데, 그 안의 CPU(65816), PPU(그래픽 처리), APU(사운드) 같은 칩들의 동작을 코드로 재현하는 거죠.

기존 에뮬레이터와 뭐가 다른가

전통적인 SNES 에뮬레이터들은 모든 걸 CPU로 처리했어요. 한 픽셀 한 픽셀, 매 스캔라인마다 PPU가 어떤 색을 출력했을지 CPU가 계산했죠. 이게 뭐냐면, 옛날 TV가 화면을 위에서 아래로 가로줄 한 줄씩 그리는 방식이었거든요. SNES도 그렇게 동작하니까, 정확한 에뮬레이션을 하려면 똑같이 줄 단위로 그려야 했어요.

그래서 제일 정확하다는 bsnes/higan 같은 에뮬레이터는 "사이클 정확(cycle-accurate)" 에뮬레이션을 한다고 자랑하지만, 그만큼 CPU 부담이 커요. 라즈베리파이 같은 저사양 기기에서는 풀스피드로 안 돌아가는 경우도 있었죠.

Super ZSNES는 발상을 바꿨어요. PPU 에뮬레이션을 GPU 셰이더로 옮긴 거예요. GPU가 원래 픽셀을 병렬로 동시에 처리하는 데 특화된 하드웨어잖아요. SNES 화면이 256x224 해상도이고, 백그라운드 레이어 4장과 스프라이트들을 합성하는 구조인데, 이걸 GPU의 프래그먼트 셰이더에서 한 번에 계산하면 CPU가 노는 동안 화면이 뚝딱 나와요.

기술적으로 어떻게 동작하나

핵심 아이디어는 SNES의 VRAM, OAM(스프라이트 정보), CGRAM(팔레트) 같은 데이터를 GPU의 텍스처로 통째로 업로드해두는 거예요. 그러면 셰이더에서 "이 픽셀은 BG2 레이어의 어떤 타일을 참조하니까, 거기 색은 팔레트의 몇 번"하는 식으로 직접 룩업해서 색을 결정해요.

어려운 부분은 SNES의 "Mode 7" 같은 특수 모드예요. F-Zero에서 트랙이 원근감 있게 휘어지는 효과 기억나시죠? 그게 Mode 7인데, 매 스캔라인마다 행렬이 바뀌면서 회전·확대를 적용하는 방식이에요. CPU 에뮬레이션에서는 자연스럽게 처리되지만, GPU에서 병렬화하려면 스캔라인별 매트릭스를 SSBO(Shader Storage Buffer Object)에 넣어두고 셰이더에서 픽셀의 Y 좌표로 인덱싱하는 식으로 풀어요.

게다가 게임에 따라 HDMA(Horizontal DMA)를 써서 스캔라인 중간에 색이나 스크롤 값을 바꾸는 트릭이 있어요. Chrono Trigger의 안개 효과 같은 거죠. 이런 "중간 변경"을 GPU로 정확히 재현하는 게 이 프로젝트의 진짜 도전이에요.

업계 맥락에서 보면

GPU 에뮬레이션 자체가 완전히 새로운 아이디어는 아니에요. RetroArch 진영의 "Beetle PSX HW"가 PS1을 OpenGL/Vulkan으로 가속하고, Dolphin은 게임큐브/Wii를 GPU로 돌려요. PCSX2도 마찬가지죠. 다만 SNES처럼 2D 중심에 PPU 동작이 까다로운 콘솔에 GPU 가속을 본격 적용한 건 드물었어요. "굳이 그럴 필요가 있나, CPU로도 충분히 빠른데" 싶었거든요.

Super ZSNES의 의미는 4K, 8K 같은 고해상도 업스케일링을 셰이더 단에서 깔끔하게 할 수 있고, CRT 필터나 HQx 같은 화질 개선도 GPU 파이프라인에 자연스럽게 녹일 수 있다는 점이에요. 모바일이나 휴대용 기기(스팀덱, Analogue Pocket 같은)에서 배터리 효율도 좋아져요. CPU보다 GPU가 같은 작업을 더 적은 전력으로 처리하는 경우가 많거든요.

한국 개발자에게 주는 시사점

에뮬레이터 개발이 직접적인 업무는 아니더라도, 이 프로젝트의 접근법은 꽤 일반적인 교훈을 줘요. "오랫동안 CPU로 하던 일을 GPU로 옮기면 어떻게 될까"라는 질문은 게임 엔진, 영상 처리, 데이터 분석, 심지어 LLM 추론까지 모든 분야에서 통하는 질문이거든요.

또 셰이더 프로그래밍, GPU 메모리 모델, SSBO/UBO 같은 개념을 실전으로 익힐 수 있는 좋은 오픈소스 학습 자료가 늘어난다는 의미도 커요. WebGPU가 점점 자리잡으면서 브라우저에서 이런 에뮬레이터를 직접 돌리는 시대도 멀지 않았고요.

마무리

SNES라는 30년도 더 된 콘솔이 GPU 셰이더로 부활한 건, 결국 "문제를 어디서 푸느냐"의 관점만 바꿔도 새 길이 열린다는 걸 보여줘요. 여러분은 지금 CPU로 풀고 있는 작업 중에 GPU로 옮길 만한 게 있다고 생각하세요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.