- Dolphin, khởi đầu là trình giả lập GameCube vào năm 2003, đang mở rộng sang một nền tảng mới khi bổ sung hỗ trợ hệ thống arcade Triforce vào năm 2026
- Với tối ưu hóa MMU Fastmem, việc truy cập bộ nhớ dựa trên bảng trang được tăng tốc, đặc biệt Rogue Squadron III lần đầu tiên có thể chạy ở tốc độ đầy đủ
- Lỗi đồng bộ trực tuyến của Mario Strikers Charged đã được khắc phục sau 5 năm, giúp chơi mạng với Wii thật hoạt động chính xác
- Trong giả lập Triforce, việc khôi phục giao thức màn hình cảm ứng và chức năng thẻ IC của The Key of Avalon đang được tiến hành, đồng thời các tính năng liên quan đến F-Zero AX và Virtua Striker 4 cũng dự kiến được cải thiện
- Nhiều tính năng giúp nâng cao trải nghiệm người dùng và hiệu năng đã được bổ sung, như lưu đệm trò chơi vào RAM, thiết lập gợi ý bộ điều khiển SDL và điều chỉnh thời gian của menu Wii
Bổ sung hỗ trợ Triforce
- Dolphin chính thức hỗ trợ Triforce, hệ thống arcade do Sega·Namco·Nintendo cùng phát triển
- Bao gồm các cải tiến ban đầu như tự động chèn Magnetic Card, thiết lập khu vực và sửa lỗi giả lập nhiều cabin
- Đã xác nhận giao thức màn hình cảm ứng của The Key of Avalon tương tự Elo SmartSet, trò chơi đã khởi động thành công nhưng bị dừng do vấn đề khởi tạo thẻ IC
- Thông qua việc khôi phục chức năng thẻ IC, các chế độ xây dựng đội hình và tạo nhân vật trong Virtua Striker 4, Gekitou Pro Yakyuu và các game khác dự kiến sẽ hoạt động trở lại
Tối ưu hóa MMU Fastmem và Rogue Squadron
- Việc triển khai ánh xạ Fastmem bằng bảng trang giúp hiệu năng của Rogue Squadron II·III tăng tối đa gấp đôi
- Thông qua việc theo dõi lệnh
tlbie, các thay đổi của bảng trang được phản ánh theo thời gian thực
- Việc tắt Branch Following, tối ưu hóa vô hiệu hóa mã và bật CPU Vertex Culling giúp giảm tụt khung hình và giật hình
- Rogue Squadron III nay lần đầu tiên có thể chạy ở tốc độ hoàn chỉnh trên phần cứng hiệu năng cao
Sửa lỗi Mario Strikers Charged
- Nguyên nhân của lỗi đồng bộ vật lý giữa Dolphin và Wii thật được xác định là do phép tính số thực dấu chấm động không chính xác của lệnh
fmadds
- Sự cố được khắc phục bằng hiệu chỉnh làm tròn chính xác sử dụng thuật toán
2Sum, giúp các trận đấu trực tuyến đồng bộ hoàn toàn
- Bản sửa này được phát triển dựa trên kinh nghiệm xử lý vấn đề tương tự trong Inazuma Eleven GO: Strikers 2013
Các cải tiến chính khác
- Thời gian quản lý dữ liệu của menu Wii được điều chỉnh gần với phần cứng thật hơn, giúp giảm tải CPU quá mức khi truy cập NAND
- Bổ sung tính năng Load Whole Game into Memory, giúp loại bỏ độ trễ chờ đĩa khi chạy từ thiết bị lưu trữ mạng như NAS
- Bổ sung thiết lập GUI cho SDL hints, cải thiện khả năng tương thích tay cầm như tách Joy-Con và lỗi hot-plug của DualSense
- Áp dụng bản vá đồng bộ VBI cho một số game như Need for Speed: Hot Pursuit 2 và Rabbids Go Home, giúp giới hạn khung hình hoạt động bình thường
Hiệu năng và đóng góp từ cộng đồng
- Bản phát hành lần này đã hợp nhất 465 commit, phản ánh nhiều thử nghiệm từ cộng đồng và nghiên cứu phần cứng
- Bao gồm các trường hợp giải quyết những bài toán khó tồn đọng lâu năm như dòng Rogue Squadron, Mario Strikers Charged và Triforce, giúp cải thiện đáng kể độ chính xác và hiệu năng của Dolphin
1 bình luận
Ý kiến Hacker News
Thật đáng kinh ngạc khi Dolphin có thể kết nối trực tuyến với máy Wii thật, thay cho các máy chủ chính thức đã đóng từ lâu
Thật vui khi biết vẫn có những người có sự tận tâm đầy đam mê như vậy
Nhưng trong ngắn hạn, những tiến bộ kỹ thuật như thế này cũng có thể làm bất bình đẳng trầm trọng hơn
Nếu lỗi của trình giả lập khiến game không thể chạy hoàn toàn hoặc một phần, thì các thế hệ tương lai sẽ mất cơ hội trải nghiệm những tựa game đó
Thật tuyệt khi mọi người quan tâm đến mức này
Điều tôi thấy thú vị nhất là việc phát triển trình giả lập thường dẫn đến phát hiện rằng game gốc từng có những hành vi kỳ quặc nhưng là chủ đích
Tôi đã ngạc nhiên khi biết GCC từ giữa thập niên 90 đã tự động xử lý những thứ mà đầu những năm 2000 tôi từng cố tối ưu thủ công
Trình giả lập không lưu SRAM nên gây ra sai lệch dữ liệu save, nhưng đã được sửa rất nhanh
Vì là mã C đơn giản dựa trên Plan9 nên việc sửa khá dễ
Tôi luôn thích đọc báo cáo phát triển Dolphin
Chúng trình bày nội dung kỹ thuật theo cách rất dễ hiểu
Liên quan đến các báo cáo của Dolphin, một trong các tác giả từng đăng một bài viết thú vị bàn về vấn đề của cộng đồng trình giả lập mã nguồn mở
Rethinking Open Source
Tóm lại, nếu công khai mã nguồn các dự án được hype lớn trước khi hình thành cộng đồng và bản sắc rõ ràng, bạn có thể gặp rắc rối vì những người dùng đưa ra yêu cầu phi thực tế
Ngoài ra còn có trường hợp người khác lấy các nhánh chưa hoàn thiện rồi phát hành như thể đó là do họ làm ra
Đội ngũ Dolphin vẫn đang vận hành dự án với mức độ chuyên nghiệp rất cao bất chấp những khó khăn như vậy
Ngay cả khi được trả tiền cũng đã khó, nên với một dự án miễn phí thì còn khó hơn nữa
Các bản fork trước đây có chất lượng chưa tốt
Thật dễ chịu khi thấy tác giả thực sự phấn khích về những gì mình viết
Khi tôi từng báo lỗi netplay của Melee trước đây, anh ấy là kiểu người có sự tò mò với mọi thứ và đào sâu đến cùng
Dolphin thật sự là một hình mẫu về phát triển thông minh
Trước đây trên chiếc máy cũ của tôi phải dùng cả 4 lõi thì Metroid Prime mới chạy được, nhưng vài năm sau cùng game đó chỉ còn dùng 25% của một lõi
Nhờ JIT và tối ưu hiệu quả giả lập, hiệu năng đã tăng vọt
Những tối ưu như vậy thật sự là thành tựu đáng nể
Trong lúc thảo luận về khả năng tương thích arcade Triforce, có nhắc tới “hỗ trợ thẻ IC”, và nói rằng nếu triển khai được thì sẽ mở ra rất nhiều tính năng
Trông giống như thẻ giao thông ở Nhật, nhưng trên bo mạch Triforce nó được dùng để lưu dữ liệu tiến trình trong game
Đây là một tính năng rất hay mà tôi chưa từng thấy ở arcade tại Mỹ
Magcard rẻ hơn nhưng kém bền hơn, và có thể in lên được
Thẻ IC dày hơn, bền hơn nhưng không thể in
Nguồn có ảnh minh họa: Rise of the Triforce
Gần như mọi game Triforce đều dùng thẻ để lưu dữ liệu
Có lẽ bạn cũng từng thấy phiên bản Mario Kart Arcade GP ở Mỹ
Khái niệm này tương tự thẻ AIME dùng trong maimai, chunithm, DDR v.v.
Tuy nhiên, thẻ IC của Triforce không chỉ dùng để xác thực mà còn có chức năng lưu dữ liệu
Trường hợp lệnh CPU fnmsubs được triển khai sai trong JIT nhưng lại hoạt động đúng trong interpreter khá thú vị
Tôi nghĩ đây là cơ hội rất phù hợp để áp dụng differential fuzzing
Điểm chính của bài này là Dolphin đã khôi phục hỗ trợ cho các cabinet arcade Triforce
Triforce là phần cứng do Nintendo, Sega và Namco cùng phát triển, và Dolphin đã ngừng hỗ trợ nó vào năm 2016
Giờ đây các game như F-Zero AX, Mario Kart Arcade GP 1·2 lại chạy được
Xem chi tiết: The Return of the Triforce
Liên kết thảo luận trước
Đoạn đầu bài viết đã nói về việc này rồi, nên khó mà gọi đây là một “chủ đề bị chôn vùi”
Tôi có thắc mắc liệu họ có nhận quyên góp không, nhưng không tìm thấy trên trang chính thức
Bài viết trên diễn đàn liên quan: Dolphin Donations