Mục lục bài viết
Không ít người ngạc nhiên khi thấy máy chạy mượt các game mobile 3D đồ họa đẹp như Genshin Impact nhưng lại giật lag, nóng máy khi chạy giả lập PS2, PSP qua ứng dụng như AetherSX2, PPSSPP. Nguyên nhân không nằm ở đồ họa đẹp hay xấu mà nằm ở bản chất khác nhau giữa chạy một ứng dụng native và mô phỏng lại một bộ vi xử lý khác từ đầu.
Game mobile native được biên dịch sẵn cho đúng kiến trúc chip
Game mobile 3D dù đồ họa phức tạp đến đâu vẫn được biên dịch trực tiếp thành mã máy chạy đúng trên kiến trúc ARM của chip điện thoại, gọi lệnh thẳng tới GPU qua các API như Vulkan hay OpenGL ES mà chip được thiết kế để xử lý hiệu quả. Toàn bộ công sức tối ưu, từ nén texture, giảm độ phức tạp mô hình 3D theo cấu hình máy, đến tinh chỉnh shader, đều được studio làm sẵn và đóng gói trong file cài đặt. Chip chỉ việc chạy đúng những gì được viết cho nó mà không phải suy luận thêm gì về phần cứng gốc.
Giả lập phải dịch lệnh của một bộ vi xử lý hoàn toàn khác theo thời gian thực
Máy giả lập PS2 chạy trên chip Emotion Engine kiến trúc MIPS, hoàn toàn khác kiến trúc ARM trong điện thoại. Phần mềm giả lập phải dịch từng lệnh máy (dynamic recompilation) từ tập lệnh MIPS sang ARM ngay khi game đang chạy, đồng thời mô phỏng lại các thành phần phần cứng khác như chip đồ họa GS, bộ nhớ VU0/VU1 xử lý vector. Khối lượng tính toán để “giả vờ làm một máy khác” này tiêu tốn CPU nhiều hơn hẳn chạy trực tiếp mã ARM gốc, bất kể độ phức tạp hình ảnh hiển thị ra sao.
Vì sao đồ họa PS2 trông đơn giản mà vẫn nặng hơn game mobile hiện đại
So về số polygon hay độ phân giải texture, một game PS2 từ hai thập niên trước thua xa game mobile 3D hiện tại. Nhưng công bằng để so sánh không phải là độ đẹp đầu ra, mà là số bước xử lý để tạo ra đầu ra đó. Game mobile hiện đại chỉ một bước: chạy mã ARM native cho GPU xử lý. Giả lập PS2 phải qua nhiều bước: dịch lệnh CPU, mô phỏng GPU gốc bằng phần mềm rồi mới chuyển sang lệnh GPU hiện tại, mỗi bước trung gian cộng thêm độ trễ và tiêu thụ chu kỳ xử lý.
Vì sao giả lập tiêu tốn pin và tỏa nhiệt nhanh hơn
Vì phải liên tục dịch lệnh theo thời gian thực thay vì chỉ thực thi mã có sẵn, CPU khi chạy giả lập thường duy trì tải cao gần như liên tục trên 80-90%, khác với game mobile 3D có những khoảng nghỉ ngắn giữa các khung hình để CPU hạ tải tạm thời. Tải liên tục cao khiến nhiệt tích tụ nhanh hơn, kích hoạt throttling sớm hơn so với chơi game native cùng thời lượng, và người chơi giả lập thường thấy máy nóng tay chỉ sau 15-20 phút dù game trông “nhẹ” hơn nhiều game mobile hiện đại.
Hiểu nhầm thường gặp
“Game càng đồ họa đẹp thì càng nặng máy, giả lập game cũ đồ họa xấu chắc chắn phải nhẹ hơn.” Độ nặng của ứng dụng với chip không chỉ phụ thuộc độ phức tạp hình ảnh mà còn phụ thuộc việc mã lệnh chạy trực tiếp trên kiến trúc chip hay phải dịch qua lại từ kiến trúc khác. Giả lập console cũ dù đồ họa đơn giản vẫn có thể nặng hơn game mobile hiện đại vì phải dịch lệnh theo thời gian thực.
Xem thêm
Nội dung này nằm trong nhóm chủ đề Benchmark & chơi game: tổng hợp bài viết. Xem thêm Vai trò của GPU và CPU khi chơi game trên điện thoại.
