Bạn có bản Diablo II: Resurrected trên Nintendo Switch, kèm expansion Reign of the Warlock. Bạn muốn chơi nó trên iPhone, iPad hoặc Mac mà không phải mua lại bản PC. Repo jhaizhou-ops/d2r-mobile làm đúng việc đó: một lớp tương thích iOS/macOS mã nguồn mở, chạy chương trình game gốc (bản Switch, version 1.0.34.0, tương ứng PC 3.3.94012) trực tiếp trên thiết bị Apple.
Nó làm gì, cụ thể
Điểm mấu chốt: đây không phải giả lập. Chương trình aarch64 của game chạy thẳng trên CPU thiết bị, không có lớp emulate CPU nào ở giữa. iPhone và Switch dùng cùng loại vi xử lý, nên chỉ một số ít instruction không chạy được dưới kernel của Apple là phải viết lại, phần còn lại giữ nguyên như bản ship. Kết quả là mọi class, runeword, Terror Zone, boss, bảng drop, luồng quest đều y hệt bản gốc, vì nó chính là bản gốc đang chạy.
Phần được viết mới là host layer cho các dịch vụ hệ thống mà game cần: syscall, file system, graphics API, audio, input. Graphics API được cài lại toàn bộ trên Metal, không có lớp trung gian, shader được dịch offline từ shader gốc và compile ahead of time. Nghĩa là vào scene mới không phải chờ compile shader.
README nói rõ nó không phải gì: không phải emulator, không cloud gaming, không streaming. Và quan trọng hơn, repo không chứa nội dung game. Không có game program, art, text, data table hay shader nào trong repo. Tất cả được sinh ra trên máy bạn từ file game bạn tự có. Cái repo mang theo là thông tin interface để port chạy được (mô tả shader interface, bảng hàm graphics API, địa chỉ trong chương trình), liệt kê từng mục trong docs/DERIVED.md.
Vì sao đang hot
3.637 sao sau 5 ngày (tạo 12/10, cập nhật 17/10). Con số đó với một repo C thuần về compatibility layer là khá bất thường. Lý do dễ hiểu: nhu cầu chơi D2R trên điện thoại có thật, và trước giờ chưa có ai làm tử tế đến vậy.
Điểm khác biệt nằm ở chỗ nó không dừng ở mức “chạy được”. README ghi closed beta có 44 thiết bị iPhone/iPad (35 máy cài trực tiếp gồm 25 iPhone và 10 iPad, cộng 9 account TestFlight), tất cả đều clear Normal, Nightmare, Hell với nhiều nhân vật. Máy thấp nhất trong danh sách test là iPhone 14 Pro Max (A16, 6 GB) chạy 60 fps. Đó là mức độ test mà mấy repo “tech demo” thường không có.
Số đo trên iPhone 17 Pro Max: frame rate 60 fps ổn định sau khi máy ấm lên, app launch 0.15 s, từ main menu vào game khoảng 1 s, Quick Restart khoảng 1.2 s, frame dài nhất khi chuyển act khoảng 0.1 s. Công suất toàn máy ở 60 fps khoảng 3.8 W (trong camp, độ sáng 50%), tức gần 5 tiếng chơi liên tục. Power saver mode ở 30 fps khoảng 1.85 W, gần một nửa, pin được khoảng gấp đôi. Gói cài chỉ hơn 100 MB, resource game (khoảng 5.6 GB) để riêng trên máy, update app không đụng save lẫn resource.
Cài và chạy thử
README bị cắt ở phần hướng dẫn nên tôi chỉ đưa những gì có trong dữ liệu. Yêu cầu nền tảng: iPhone/iPad cần iOS 26 trở lên, hoặc iOS 18 đến 25 với bản build dùng API cũ. Mac cần Apple silicon, macOS 26 trở lên, hoặc macOS 15 đến 25 với bản build API cũ. Bản Mac native mở bằng double-click, dùng được keyboard, mouse và gamepad.
Quy trình cơ bản theo mô tả: bạn tự chuẩn bị file game từ bản Switch bạn sở hữu, sinh resource trên máy mình theo tài liệu trong repo, rồi cài app. Các tài liệu cần đọc nằm trong repo:
docs/GAME_FILES.md
docs/DERIVED.md
docs/LEGACY_DEVICES.md
Lưu ý riêng cho máy cũ: chip A16 trở xuống (ví dụ iPhone 14, iPhone 15) không hỗ trợ định dạng texture nén gốc của game. Máy đó cần thêm một texture pack sinh từ file game của bạn, sau đó vẫn chạy full frame rate. Chi tiết trong docs/LEGACY_DEVICES.md.
Có một bản port cộng đồng cho Apple TV 4K (thế hệ 3, chip A15) ở mức developer preview, mới chỉ tới màn hình chọn nhân vật trên máy của tác giả. Đừng mua Apple TV vì cái này.
Ai nên dùng
Người đã có bản D2R trên Switch và muốn chơi lại trên điện thoại hoặc Mac mà không mua thêm bản PC. Cụ thể hơn: người chơi offline, không quan tâm multiplayer (repo không có online, không cần account), thích cầm điện thoại cày endgame trong lúc rảnh. Nhóm thứ hai là dev tò mò về kỹ thuật compatibility layer trên Apple: cách viết host layer thay syscall, cách map graphics API sang Metal, cách dịch shader offline. Repo C thuần, MIT license, đọc được.
Không phù hợp nếu bạn muốn cài phát chạy ngay mà không đụng file game. Repo không kèm nội dung, bạn phải tự lo phần đó. Cũng không phù hợp nếu bạn cần chơi online với bạn bè.
Ưu điểm và hạn chế
Ưu điểm rõ nhất: chạy native, không emulate, nên hiệu năng và độ chính xác gameplay đi kèm nhau. Touch control được thiết kế lại cho điện thoại (README mô tả “not a game…”, phần bị cắt), có controller support, power saver, save sync, tiếng Anh và tiếng Trung. Bản Mac native có từ bản đầu tiên. License MIT, thoáng.
Hạn chế cần cân nhắc. Thứ nhất, repo mới 5 ngày tuổi. Số sao cao không thay được thời gian kiểm chứng, dù closed beta 44 máy nghe khá nghiêm túc. Thứ hai, ràng buộc phiên bản: iOS 26 hoặc macOS 26 trở lên cho bản chuẩn, máy cũ phải dùng bản build API cũ. Thứ ba, vấn đề pháp lý là của bạn: “bring your own game files” nghĩa là bạn tự chịu trách nhiệm về việc mình sở hữu bản game và cách sinh file. Repo cố tình không chứa gì để tránh chuyện đó, nhưng đọc docs/DERIVED.md để hiểu nó mang theo những gì. Thứ tư, tài liệu nằm rải trong docs/, README khá dài và có phần marketing, cần đọc kỹ trước khi làm theo.
Một điểm tôi thấy đáng nghi: con số “about 3.8 W” và “gần 5 tiếng” được tính từ công suất đo và dung lượng pin, không phải chơi từ 100% đến 0%. README ghi rõ điều này, ai đọc kỹ thì ổn, nhưng con số pin thực tế có thể lệch. Cứ coi đó là ước lượng.
Kết
Nếu bạn có sẵn bản Switch và một chiếc iPhone hay Mac Apple silicon đời mới, đây là con đường ngắn nhất để chơi D2R đúng nghĩa bản gốc trên thiết bị Apple, 60 fps, khoảng 1 giây từ menu vào game. Còn nếu bạn chỉ muốn cài một cái app rồi chơi, khoan đã, đọc docs/GAME_FILES.md trước. Repo: jhaizhou-ops/d2r-mobile.
