F-Zero X 디컴파일 3DS 이식, 31.7억 토큰 $4,974 들여 New 3DS 60fps와 Old 3DS·64DD 확장킷까지
- F-Zero X 디컴파일 G-Diffuser를 3DS로 옮긴 v1.0.0 공개: 1단계 24일 만에 New 3DS에서 중앙값 59.6fps, 30대 밀집 구간 10퍼센타일 51.4fps, 60fps 상한 도달 프레임 53%까지 올림(첫 에뮬레이터 레이스는 12~20fps)
- 2단계 43일 동안 Old 3DS 지원, 네이티브 렌더러, 64DD 익스팬션 킷을 더해 한 소스트리에서 Old 3DS, New 3DS, New 3DS+확장킷 세 가지 콘솔 빌드를 배포함
- 1단계에서만 31.7억 토큰을 써 API 정가 기준 $4,974가 나왔고, 3DS 포트 관련 커밋 250개와 port/3ds 15,039줄, 순수 델타 패치 48개를 남김
- Old 3DS에서는 두 번째 CPU 코어를 못 써서 디스플레이 리스트를 한 번 훑어 같은 머티리얼 삼각형을 묶어 배치 호출하고 위치와 회전 변환을 GPU로 이전, 트랙 메시는 레이스 시작 시 미리 계산함
- 온라인 멀티는 레이스 시뮬레이션이 결정론적이라 컨트롤러 입력과 시드만 교환하는 방식으로 이미 구현됨
Hacker News 의견들
프로젝트 만든 사람임. 몇 시간 뒤에 올드 3DS 64DD 지원, 커스텀 코스 QR 공유, 로컬·온라인 멀티 업데이트 올린다. authors notes랑 포스트모템 한번 봐줘.
아직 코드는 안 봤는데 사람이 쓴 생각 모아둔 섹션 따로 만든 거 좋더라. 디테일은 최대한 살리면서 개인 목소리도 들리는 구성이라.
솔직히 첫 두세 문장이 AI 문체로 작렬해서 읽을 맛이 확 떨어짐. 도입부조차 사람 대 사람 말투로 못 쓴다면 나머지를 볼 이유가 있나 싶어짐.
비용이 API 정가 기준이라던데 실제로는 다들 구독으로 쓰잖아. 진짜로 얼마 나갔는지가 궁금함.
API 가격은 물리적 원가 대리값이라고 봄. 5천 달러든 3만이든 10만이든 사람 고용하는 것보단 훨씬 싸고 빨랐다는 게 핵심 아님? 게임 포팅이나 상호운용성 쪽에 쓰이면 좋겠는데 그 희망이 좀 희미하긴 하다.
구독이 API 가격보다 98%쯤 싸더라.
왜 요즘 다들 3DS로 포팅하는지 궁금함. 스위치가 훨씬 강력한데.
3DS가 스위치보다 훨씬 많이 풀려 있는 거 아닐까.
스위치는 솔직히 재미없는 콘솔임. 같은 폼팩터면 PC 핸드헬드 쓰면 되고 영구 개조는 하드웨어 모드가 필요하잖아. 3DS는 주머니에 들어가고 어떤 펌웨어든 쉽게 개조됨.
난 3D라는 신기함 때문임. F-Zero를 이 폼팩터로 하고 싶었고 포팅 난이도도 맞아 보였음.
N64 개발 씬이 같이 뜨는 것도 있고, 하드웨어 한계를 우회하는 게 재밌는 사람이 많아서일 듯.
slopport라는 단어는 좀 아니지. 이건 노력 들어간 작업임.
3DS 필레이트가 진짜 제약일 텐데, N64 T&L 파이프라인을 타일드 GPU에 매핑하면서 60fps 유지한 수치가 궁금함.
병목은 CPU 쪽임. PICA200은 타일러가 아니라 immediate-mode GPU임. 다른 포팅은 디스플레이 리스트를 명령 단위로 해석하면서 T&L을 CPU에서 돌리는데, 올드 3DS에선 코어 하나를 못 써서 같은 머티리얼 삼각형을 묶어 배치 호출하고 변환을 GPU로 넘겼음. 덕분에 메뉴 일부는 아직 버벅임.
난 오리지널 Xbox 게임 두 개를 요즘 플랫폼으로 옮기는 중인데, 어셈블리 배경이 있어서 유용한 제안 몇 개 했더니 AI가 놀랍게도 손을 거의 안 대더라.
3DS 온라인 멀티 넷코드는 어떻게 할 계획임?
이미 됐음. 레이스 시뮬이 완전 결정론적이라 콘솔끼리 컨트롤러 입력과 시드만 주고받음. VS 모드 구조를 가져다 쓰고 화면만 각자 전체 화면으로 바꿈.
F-Zero X 기억으로 게임 만드는 중인데 3DS 포팅 생각하고 있었음. 이거 보고 비교해봐야겠다. 개발 중엔 일부러 안 플레이했는데.