WinCE64: 닌텐도 64를 위한 Windows CE 2.11 이식 프로젝트

개발자 'ThroatyMumbo'가 닌텐도 64(N64) 하드웨어에서 Windows CE 2.11을 구동하는 'WinCE64' 프로젝트를 공개했습니다. 이 프로젝트는 커스텀 HAL을 통해 VR4300 프로세서에서 순정 nk.lib 커널을 실행하며, 에버드라이브-64(EverDrive-64) X7의 SD 카드를 지원하고 N64 컨트롤러를 마우스로 활용해 윈도우 데스크탑 환경을 완벽히 구현했습니다.

AI 요약

최근 깃허브(GitHub)를 통해 공개된 'WinCE64'는 마이크로소프트의 임베디드 운영체제인 Windows CE 2.11을 실제 닌텐도 64 하드웨어에 이식한 취미 기반 역공학 프로젝트입니다. 이 프로젝트는 수정되지 않은 순정 nk.lib 커널을 활용하여 N64의 VR4300 CPU 위에서 작동하며, 윈도우의 핵심 모듈인 GWES 데스크탑과 셸(Shell)을 성공적으로 불러옵니다. 특히 에버드라이브-64 X7의 SD 카드를 '\SDCard' 경로로 마운트하여 외부 실행 파일(.exe)을 직접 실행할 수 있는 것이 특징입니다. 사운드 출력은 N64의 AI 하드웨어를 통해 표준 CE 웨이브 스택으로 재생되며, 하드웨어 가속(RDP)을 이용한 3D 그래픽 렌더링까지 지원합니다. 이는 공식 포트가 아님에도 불구하고 하드웨어 추상화 계층(HAL)부터 디스플레이 드라이버까지 모든 요소를 정교하게 설계하여 레트로 게임기에서 현대적인 OS 환경을 구축한 기술적 성과로 평가받습니다.

핵심 인사이트

  • 순정 커널 활용: 마이크로소프트의 수정되지 않은 'nk.lib' 커널을 그대로 사용하여 VR4300 프로세서 환경에서 스케줄링 및 TLB 관리를 수행합니다.
  • 에버드라이브-64 X7 필수: 하드웨어 실행을 위해 EverDrive-64 X7 카트리지를 사용하며, FatFS 기반의 드라이버를 통해 SD 카드 파일 시스템을 지원합니다.
  • 입출력 기기 최적화: N64 컨트롤러를 마우스로 변환(A 버튼=좌클릭, B 버튼=우클릭)하여 사용하며, 공식 닌텐도 64 마우스도 함께 지원합니다.
  • 그래픽 가속 지원: RDP(Reality Display Processor) 가속을 이용한 GDI 채우기 및 3D 데모(cube3d.exe)를 통해 평면 셰이딩 삼각형 렌더링이 가능합니다.

주요 디테일

  • 커스텀 HAL/OAL 구현: bsp/hal/ 경로 내에 MIPS 스타트업 코드, 타이머, USB 디버그 및 RDRAM 관련 워크아라운드를 포함한 독자적인 하드웨어 추상화 계층을 구축했습니다.
  • 오디오 드라이버: 인터럽트 방식 대신 폴링(Polling) 모드 AI 드라이버를 사용하여 실제 하드웨어의 시스템 버스(SysAD) 중단 문제를 해결했습니다.
  • 디스플레이 기술: VI 프레임버퍼와 RDP 가속 외에도, 비-오버레이 하드웨어의 한계를 극복하기 위해 소프트웨어 커서 컴포지터를 자체 개발했습니다.
  • 애플리케이션 호환성: BeziersCE와 같은 제3자 Windows CE 2.11용 실행 파일을 SD 카드에서 직접 실행할 수 있는 수준의 호환성을 확보했습니다.
  • 버그 수정: 기존 CE 2.11 라이브러리에서 누락되었던 commctrl.dll의 DllMain을 직접 구현하여 스피너 컨트롤(msctls_updown32) 기능을 정상화했습니다.

향후 전망

  • 레트로 컴퓨팅의 확장: 닌텐도 64와 같은 특정 목적의 게임 하드웨어가 범용 컴퓨팅 장치로 활용될 수 있는 가능성을 제시하며 레트로 커뮤니티의 기술적 연구를 촉진할 것입니다.
  • 추가 드라이버 개발: 현재 구현된 기초적인 RDP 3D 라이브러리를 바탕으로 더 복잡한 그래픽 애플리케이션이나 게임 이식 시도가 이어질 것으로 보입니다.
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...