개발자 dbreunig가 GitHub에 nesformer 프로젝트를 올렸습니다. 이 프로젝트는 표준 Qwen3.5 체크포인트의 가중치 안에 닌텐도 엔터테인먼트 시스템의 핵심 부품인 6502 CPU와 2KB 작업용 RAM, 그리고 카트리지 프로그램 ROM을 직접 심어 넣었습니다.
기존의 머신러닝 학습 방식이 아니라 컴파일 과정을 통해 구현된 점이 특징입니다. 모델은 CPU의 실행 로그를 토큰 단위로 예측하며 동작합니다. 그래픽 처리나 컨트롤러 입력, vblank 타이밍 같은 주변 기능은 별도의 호스트 프로세스가 담당합니다.
체크포인트에는 총 4억 6660만 개의 파라미터가 포함됩니다. 그중 실제로 값이 있는 것은 930만 개뿐이며 압축 시 크기는 3.3MB 수준으로 줄어듭니다. 이는 이전 프로젝트인 Qwenputer에서 CHIP-8과 RISC-V CPU를 Qwen3.5-4B에 컴파일했던 기술을 확장한 결과입니다.
핵심 원리는 Gated DeltaNet 상태 행렬의 각 행이 메모리 셀처럼 작동하는 성질을 이용했습니다. 게이트를 열어두고 one-hot 키로 업데이트하면 정확히 한 행이 덮어써집니다. 이후 one-hot 쿼리로 읽으면 해당 행에 저장된 카트리지 데이터나 레지스터 값을 복원할 수 있습니다.
실제 성능은 물리적 콘솔 대비 현저히 낮습니다. numba로 컴파일된 엔진을 사용할 경우 초당 약 1650개의 토큰을 처리합니다. 반면 실제 NES는 초당 약 70만 개의 토큰 속도를 요구합니다.
따라서 이론상 콘솔보다 150배에서 290배가량 느립니다. 순수 numpy 엔진은 초당 210개, 일반 transformers 라이브러리 사용 시 초당 10개 수준까지 떨어집니다.
지원 범위에도 제한이 있습니다. 현재 NROM 매퍼 0 카트리지와 공식 6502 명령어 세트만 구동 가능합니다. Hacker News에서는 이 기술적 접근의 창의성을 칭찬하는 반응과 함께 극단적인 비효율성이라는 비판이 공존했습니다.
프로젝트 진행 과정에서는 Opus 5.5 모델이 두 번의 프롬프트만으로 초기 가중치와 코드를 생성한 것으로 알려졌습니다. 참고 자료로 활용된 Qwenputer 저장소와 NES 에뮬레이션 커뮤니티의 호환성 테스트가 결정적인 역할을 했습니다.
