You are currently viewing MacNativeGames biến file game Tears of the Kingdom thành app chạy native trên Mac M-series

MacNativeGames biến file game Tears of the Kingdom thành app chạy native trên Mac M-series

Có một repo vừa lên GitHub cách đây một ngày mà dân chơi game trên Mac đang truyền nhau. Nó tên là MacNativeGames. Chức năng gói gọn trong một câu: lấy file XCI hoặc NSP của The Legend of Zelda: Tears of the Kingdom cùng file prod.keys, chạy một script Python, và bạn có một file .app macOS chạy được trên máy Apple silicon.

Điểm mấu chốt nằm ở chỗ đây không phải emulator. Tác giả nói rõ: mã ARM64 của chính game chạy trực tiếp trên chip Apple, chỉ viết lại những chỗ macOS bắt buộc phải viết lại. Các dịch vụ hệ thống của Switch được trả lời bởi một host nhỏ, còn phần đồ họa NVN được dựng lại trên Metal 4. Nói cách khác, không có lớp giả lập CPU, không có translation layer kiểu Rosetta cho game. Đó là lý do repo này gây tò mò, vì cách tiếp cận khác hẳn với những gì người ta quen thấy.

Vì sao 576 sao sau một ngày

Repo tạo ngày 17/10/2026, cập nhật ngày 18/10/2026. Một ngày, 576 sao. Con số này đến từ ba thứ.

Thứ nhất, Tears of the Kingdom là game độc quyền Switch, chưa từng có bản chính thức trên Mac. Ai muốn chơi trên MacBook phải dựa vào emulator, mà emulator thì vẫn còn cả đống vấn đề về hiệu năng và shader. Thứ hai, máy Mac dùng Apple silicon có GPU mạnh, nhưng gần như không có tựa game AAA nào tận dụng được. Thứ ba, tác giả đưa ra con số cụ thể: test trên MacBook Air M4 và Mac mini M4, thu được 8.582 shaders, đạt khoảng 90 FPS sau khi warm-up shader, lên 120 FPS trong menu. Những con số này là quan sát cục bộ, chính README cũng ghi rõ như vậy, nhưng nó đủ để người ta bấm star.

Cái làm tôi để ý hơn cả là tốc độ cập nhật. Ngày 17/10 hỗ trợ bản 1.0.0 và 1.1.2. Ngày 18/10 thêm 1.4.3 kèm shader prewarming trước phiên chơi đầu tiên, mất khoảng 10 phút. Với một dự án phải reverse engineering từng version game, đây là tiến độ nhanh đáng ngờ theo nghĩa tích cực.

Cài và build thử

Yêu cầu phần cứng trước đã. Mac Apple silicon, macOS 26 trở lên vì đồ họa dùng Metal 4, macOS 27 cũng được hỗ trợ. Khuyến nghị 16 GB RAM trở lên. Dung lượng thì cần khoảng 25 GB trống cho thư mục làm việc, chưa tính file game. Nếu APFS cloning không khả dụng hoặc app nằm ở volume khác, cộng thêm khoảng 17 GB cho bản copy của app.

Công cụ cài một lần:

xcode-select --install
brew install opus libvpx [email protected]

Sau đó clone repo, mở Terminal trong thư mục MacNativeGames, chạy script với file game và keys. Với XCI:

python3.14 build_app.py ~/Games/totk.xci -k ~/keys/prod.keys

Với NSP thì phải đưa thêm font hệ thống, vì NSP không chứa font share:

python3.14 build_app.py ~/Games/totk.nsp -k ~/keys/prod.keys --firmware ~/Games/firmware
# Hoặc tái sử dụng sáu file .bfttf từ lần build trước:
python3.14 build_app.py ~/Games/totk.nsp -k ~/keys/prod.keys --shared-fonts /path/to/TOTK_build/totk/extracted/firmware/shared-fonts

Cần build bản 1.1.2 hoặc 1.4.3 thì đưa thêm bản update tích lũy dạng NSP hoặc NSZ qua cờ --update. Không cần update trung gian. NSZ sẽ được giải nén và verify hash NCA trước khi extract. DLC và package gộp thì không hỗ trợ. App xuất ra nằm cạnh file game, tên Tears of the Kingdom.app, cờ -o để đổi vị trí.

Một chi tiết nên biết: từ bản 1.4.3, lúc build app sẽ tự chuẩn bị ít nhất 8.000 shader từ dữ liệu game bạn chọn và nhúng vào app. Bản 1.4.3 hiện tại chuẩn bị 8.290 shader. Lần đầu chạy sẽ warm-up GPU, mất vài phút. Không cần chơi thử trước để “mồi” cache như trước đây.

Ai nên thử, ai nên bỏ qua

Nếu bạn có sẵn Mac M-series, có file game hợp lệ và prod.keys, và tò mò muốn xem một tựa game Switch chạy native trên Metal trông thế nào, đây là thứ đáng bỏ thời gian cuối tuần. Cộng đồng dev graphics cũng có thể đọc code để xem cách họ map NVN sang Metal 4, cách họ xử lý shader cache, cách họ trả lời system service của Switch.

Nếu bạn chỉ muốn chơi game mà không muốn động vào Terminal, đây không phải lựa chọn. Script Python, Homebrew, cờ dòng lệnh, đường dẫn file, tất cả đều cần bạn hiểu mình đang gõ gì. Không có installer, không có GUI.

Còn nếu bạn đang dùng máy Intel Mac thì dừng ở đây. Dự án chỉ hỗ trợ Apple silicon. iPhone và iPad thì tác giả ghi “coming soon”, khuyến nghị iPhone 16 trở lên, nhưng đó là kế hoạch, chưa có gì để chạy.

So với các lựa chọn khác

Tôi không tiện so sánh trực tiếp với các emulator Switch cụ thể vì chưa test trên cùng cấu hình, và bản thân README cũng không nhắc tên đối thủ nào. Điều chắc chắn là hướng tiếp cận khác nhau về bản chất. Emulator phải giả lập toàn bộ kiến trúc và hệ thống của Switch, còn dự án này bỏ qua lớp giả lập CPU, chỉ dựng lại phần macOS bắt buộc. Về lý thuyết, ít lớp trung gian hơn nghĩa là ít overhead hơn. Về thực tế, nó phụ thuộc vào việc tác giả xử lý được bao nhiêu scene, và hiện tại README tự nhận vẫn còn hiện tượng stutter khi vào scene mới do shader compile.

Ưu, nhược và mấy điểm phải biết

Ưu điểm rõ nhất: code chạy native, shader prewarming tự động, hỗ trợ nhiều version game, license MIT khá thoáng cho một dự án kiểu này. README viết kỹ, có phần troubleshooting cho audio, có ghi chú test riêng cho từng version. Tác giả cũng thẳng thắn về giới hạn: những con số FPS là quan sát cục bộ, không phải cam kết, số 8.582 shader là số thu được trong test chứ không phải tổng shader của game.

Nhược điểm thì nhiều. Dự án mới một ngày tuổi, tài liệu chỉ có README, không có API doc, không có issue history dài để tra cứu. Yêu cầu macOS 26 và Metal 4 loại bỏ kha khá máy Mac cũ. Audio mới chỉ được verify trên version 1.0.0, các version khác cần kiểm chứng thêm. Stutter khi vào scene mới là chuyện đương nhiên phải chấp nhận, chính README nói vậy. Và quan trọng: repo không chứa bất kỳ nội dung nào của game, bạn phải tự có file game và keys hợp lệ. Dự án không liên kết với Nintendo, đây là điều bạn nên cân nhắc về mặt pháp lý tùy nơi bạn sống.

Về license MIT, đọc qua thì có vẻ thoáng, nhưng nhớ rằng license của repo chỉ áp cho code của repo, không áp cho game bạn dump ra. Chuyện bạn có quyền dùng file game đó hay không là câu chuyện khác, không liên quan đến repo.

Một điểm nữa: nếu bạn muốn đóng góp shader cache, gửi file ~/Library/Application Support/MacNativeGames/TOTK/shader-cache/rt-totk-native-v4-unverified/pso_collected.tsv. File này chỉ chứa định danh shader và pipeline, không chứa save game hay binary shader đã compile. Danh sách gắn với version translation-chain tương ứng, nên gửi kèm version bạn đang chạy.

576 sao sau một ngày, 8.290 shader chuẩn bị sẵn trong bản 1.4.3, hai ngày ra hai bản hỗ trợ version game khác nhau. Nếu tốc độ này giữ được vài tuần, đây sẽ là repo đáng theo dõi với bất kỳ ai quan tâm đến việc đưa game độc quyền lên Apple silicon theo hướng native. Còn nếu bạn chỉ cần một thứ chạy được ngay hôm nay mà không muốn đọc README, khoan đã. Xem qua ly05010419/MacNativeGames trước, đọc phần “What you need” cho kỹ, rồi hãy quyết định có bỏ 25 GB đĩa ra thử hay không.

Đăng ngày 19/10/2026
Giang Na
Về tác giả: Giang Na
Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.

Giang Na

Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.