모더가 원본 하드웨어로 NES를 윈도우 같은 데스크톱으로 변신시키다
요약
Throaty Mumbo는 EverDrive N8 Pro와 같은 FPGA 기반 장치를 활용하여 NES를 데스크톱 환경으로 변신시켰습니다. 이 프로젝트는 x86 에뮬레이션을 구현하고, Windows 98과 유사한 기능적 UI 및 명령줄 인터페이스(CLI)를 구축하는 과정을 보여줍니다.
핵심 포인트
- FPGA 기반 EverDrive N8 Pro로 NES의 x86 에뮬레이션 한계를 극복했습니다.
- 오픈 소스 코어(Next186)를 활용하여 호환성 높은 시스템을 구축했습니다.
- CLI와 기능적인 UI를 결합해 레트로 콘솔의 사용자 경험을 개선했습니다.
YouTube의 레트로 게이밍 실험 채널인 Throaty Mumbo는 NES에 윈도우와 유사한 데스크톱 환경을 만들었습니다. 이 프로젝트는 무거운 x86 에뮬레이션을 처리하는 FPGA 기반의 NES 카트리지인 EverDrive N8 Pro를 활용했습니다. Throaty Mumbo는 NESPC 프로젝트를 GitHub에 공개했으며, 키보드, 마우스 및 MIDI 기능을 위한 USB 인터페이스를 만들기 위해 사용한 RP2350의 펌웨어도 포함했습니다.
Throaty Mumbo는 처음에는 인터넷에서 찾은 ROM들을 가지고 시작하여, 별로 기능하지 않는 중국어 Windows 98 ROM을 시도해 보았습니다. 이 ROM에는 Paint, Windows Explorer와 같은 프로그램들이 많이 있었고, 마치 Windows 98 프로그램처럼 보이는 것이 많았지만, 실제로 작동하는 것은 아무것도 없었습니다. 단지 그 프로그램들이 대략적으로 어떻게 생겼는지에 대한 이미지들만 존재했습니다. 그는 또한 decrazyo가 만든 NES86이라는 이름의 Linux ROM도 시도했지만, 속도가 엄청나게 느리고 사용할 수 없어 자신이 직접 ROM을 만들기로 했습니다.
NES의 6502 8비트 마이크로프로세서로는 x86 에뮬레이션이 너무 느렸기 때문에, Throaty Mumbo는 훨씬 더 강력한 ARM 기반 Cyclone IV FPGA를 탑재한 EverDrive N8 Pro를 사용했습니다. 이 장치는 단순히 카트리지 슬롯에 삽입되어 NES의 카트리지 측 처리를 활용하며, 기본적으로 작업을 다른 처리 장치로 아웃소싱하여 외부 그래픽 카드처럼 작동하게 만듭니다. x86을 실행하기 위해 Throaty Mumbo는 Next186이라는 오픈 소스 FPGA 소프트 프로세서 코어를 사용했는데, 이는 FPGA가 마치 x86 CPU인 것처럼 Intel 80186과 호환되는 명령을 실행할 수 있게 해줍니다.
Throaty Mumbo는 먼저 명령줄 인터페이스(command-line interface)를 갖춘 NESPC 프로젝트를 선보였습니다. 그는 환경을 얼마나 빠르게 탐색하고 tty-tetris와 같은 명령줄 프로그램(command-line programs)을 실행할 수 있는지 시연했습니다. 이 프로그램은 낮은 해상도에서는 잘 작동하지 않았지만, 그는 명령줄 기차 애니메이션이 상당히 부드럽게 돌아가는 것을 보여주었습니다.
그는 마침내 이전에 본 것보다 훨씬 간소화된 Windows 98 ROM과 같은 전체 데스크톱 환경을 구축했음을 보여주었습니다. 하지만 그의 UI는 더 기능적이었으며, EverDrive N8 Pro 메뉴 ROM의 메뉴 대체재 역할을 했고, 심지어 시작 메뉴(Start menu)에 완전히 플레이 가능한 지뢰 찾기(Minesweeper) 게임까지 포함하고 있었습니다. 또한 이 UI에는 게임 ROM을 시작하거나 EverDrive N8 Pro 카트리지 저장소 내부의 파일에 접근하는 방법으로 사용되는 프로그램 아이콘도 있었습니다.
하지만 Throaty Mumbo는 마우스 커서를 움직이고 NES 컨트롤러로 타이핑하는 것이 최고의 데스크톱 경험이 아니라고 생각하여, NES 확장 슬롯을 이용해 Family BASIC 키보드를 Famicom에 연결하고 특정 핀에 점퍼 와이어를 연결하려고 시도했습니다. 이 과정에서 브레이크아웃 보드(breakout board)를 사용하여 점퍼 와이어를 특정 핀에 연결했지만, 이는 매우 잘 작동하지 않았습니다. 키 입력 한 번마다 여러 개의 문자 및 기호가 출력되었고, 하단의 부피 때문에 NES 본체가 책상 위에 평평하게 놓이지도 않았습니다.
Throaty Mumbo는 이후 커스텀 펌웨어를 사용하는 RP2350 마이크로컨트롤러를 사용하여 USB 장치를 NES 컨트롤러 포트에 연결할 수 있게 하는 방법을 생각했습니다. 이것은 훨씬 더 잘 작동하여 부드러운 마우스 입력까지 가능하게 했지만, USB 포트가 하나밖에 없어서 키보드 또는 마우스 중 하나만 연결할 수 있었습니다. 이에 대한 그의 해결책은 내장형 USB 허브가 있는 키보드를 사용하는 것이었고, 이는 훌륭하게 작동했습니다. Throaty Mumbo는 이 USB 입력을 MIDI 장치로 더 실험했으며, USB 피아노 키보드를 연결하고 매우 기본적인 디지털 오디오 워크스테이션(DAW)으로 작업하며, 심지어 NSF(Nintendo Sound Format) 파일에서 마리오 사운드트랙을 재생하기도 했습니다.
더욱 레트로 PC 경험을 얻기 위해, 그는 이전에 3D 프린팅했던 NES CD 드라이브 프로젝트인 NESCD를 추가했습니다. 이는 EverDrive N8 Pro 카트리지의 포트와 확장 슬롯에 연결되어, 성능 저하 없이 NES 게임을 하는 동시에 배경 음악을 재생할 수 있게 했습니다. 이후 그는 Wi-Fi 기능을 추가하기 위해 NESCD를 Seeed Studio XIAO ESP32로 업그레이드하여, 다운로드 속도 4 MB/s와 업로드 속도 90 KB/s를 가능하게 했습니다. 인터넷 기능이 매우 제한적이기 때문에, NES는 Throaty Mumbo의 노트북을 프록시(proxy)로 사용하여 인터넷에서 NES의 요청을 가져오고 이를 제한된 해상도에 더 쉽게 표시할 수 있도록 단순화합니다. 하지만 Throaty Mumbo는 인터넷에 직접 연결하는 옵션도 추가했는데, 이는 고통스러운 경험이 될 것이라고 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Tom's Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기