Tin tức

Snowboard Kids được dịch ngược trong 84 ngày: LLM Agents thực sự đã làm gì

Trò chơi Snowboard Kids gốc cho N64 hiện đã được dịch ngược 100% chỉ trong 84 ngày—khoảng một phần bảy thời gian so với phần tiếp theo. Tác giả ghi nhận sự kết hợp giữa các tác tử AI, sự trợ giúp của chuyên gia và công cụ tốt hơn, nhưng cảnh báo rằng chỉ riêng LLM không thể làm được điều đó.

August 27, 2026· 4 min read· Nguồn: Chris' Blog
Snowboard Kids được dịch ngược trong 84 ngày: LLM Agents thực sự đã làm gì

Trò chơi Snowboard Kids gốc cho Nintendo 64 hiện đã được dịch ngược hoàn toàn, với mọi hàm khớp với mã máy gốc khi biên dịch. Dự án mất 84 ngày, so với 596 ngày cho phần tiếp theo—một tốc độ tăng đáng kể mà tác giả cho là nhờ sự kết hợp giữa các tác tử AI, sự can thiệp của chuyên gia và công cụ cải tiến.

Đây là một cột mốc đáng chú ý cho cộng đồng retro-gaming và dịch ngược. Một bản dịch ngược hoàn chỉnh có nghĩa là mã nguồn của trò chơi được tái tạo hiệu quả, cho phép speedrunner hiểu chính xác cơ chế trò chơi và mở ra cánh cửa cho việc tái biên dịch tĩnh và modding đầy tham vọng.

Tại sao nhanh đến vậy?

Tác giả, Chris Lewis, đã dành gần hai năm cho một dự án tương tự (Snowboard Kids 2), vì vậy anh ấy đã có nhiều kinh nghiệm hơn. Nhưng sự khác biệt lớn nhất là quyền truy cập vào các LLM tiên tiến và một harness tác tử có khả năng (Nigel). Tuy nhiên, anh ấy nhanh chóng chỉ ra rằng AI không phải là lý do duy nhất: khoảng 4,8% các commit khớp yêu cầu sự can thiệp của chuyên gia và dự án phụ thuộc rất nhiều vào sự đóng góp của cộng đồng.

Một yếu tố khác là trình biên dịch. Snowboard Kids được biên dịch với IDO 5.3, một trình biên dịch SGI độc quyền nổi tiếng là khó làm việc. Không giống như GCC, mã nguồn của IDO không có sẵn và các bước tối ưu hóa mạnh mẽ của nó khiến việc dự đoán trở nên khó khăn. Cộng đồng dịch ngược đã phải reverse-engineer và tái biên dịch tĩnh IDO để chạy trên phần cứng hiện đại.

Nơi các tác tử đã giúp

Các tác tử xuất sắc trong việc khớp mã thư viện chuẩn, chẳng hạn như libultra và thư viện âm thanh libmus của Nintendo. Tác giả nhận thấy rằng các tác tử cần prompting mạnh mẽ để tái sử dụng mã nguồn thư viện hiện có thay vì dịch ngược từ đầu. Một script tự động sử dụng m2c chỉ khớp 17 trong số 1.830 hàm (0,93%), nhưng nó vẫn rẻ hơn so với việc đốt token của tác tử.

Các tác tử cũng giúp ghi lại các đặc điểm kỳ lạ của IDO trong tệp DECOMPILATION_LEARNINGS.md, tạo ra một vòng phản hồi giúp các tác tử tiếp theo tốt hơn. N64 Decomp Workbench tỏ ra vô giá trong việc gỡ lỗi các mismatch ở giai đoạn cuối, vì nó có thể phát lại các bước biên dịch và phân biệt các vấn đề cấu trúc với các vấn đề phân bổ thanh ghi.

Song song hóa và đồng bộ hóa

Tác giả đã chạy harness trên bốn Git worktree, cho phép các nỗ lực dịch ngược song song. Mỗi nhiệm vụ có một thời hạn rõ ràng, giúp các tác tử sử dụng permuter hiệu quả hơn. Tuy nhiên, việc đồng bộ hóa trở thành một thách thức: khi một worktree dịch ngược một hàm tương tự như hàm đang được thử ở nơi khác, tác tử kia không thể thấy nó cho đến khi merge. Việc merge định kỳ đã khắc phục điều này nhưng có thể mất hơn một giờ.

Bài học

Dự án này chứng minh rằng các tác tử LLM có thể tăng tốc đáng kể việc dịch ngược, nhưng chúng không phải là viên đạn bạc. Phần khó nhất không phải là hiểu một hàm làm gì, mà là cách nó được biểu diễn trong C và được biên dịch—đặc biệt với một trình biên dịch đóng như IDO. Chuyên môn của con người và công cụ cộng đồng vẫn rất cần thiết.

Không có lượng AI nào có thể thay thế họ.
Ban biên tập Manul X