Việc các lỗi xuất hiện ngay sau khi Microsoft tung ra một bản cập nhật mới không còn là điều khiến ai ngạc nhiên nữa. Thậm chí, một bản vá không có bất kỳ lỗi nào xuất hiện mới là điều đáng kinh ngạc hơn. Mặc dù đã chứng kiến rất nhiều lỗi trong những năm qua, điều vẫn còn kỳ lạ là một bản cập nhật Windows 11 lại kích hoạt lỗi ảnh hưởng đến một tựa game 20 năm tuổi như Grand Theft Auto: San Andreas.
Máy bay Skimmer biến mất sau bản cập nhật Windows 11 24H2
Máy bay Skimmer không xuất hiện trong GTA San Andreas sau cập nhật Windows 11 24H2
Sau khi phiên bản Windows 11 24H2 (còn được gọi là Bản cập nhật 2024) được phát hành vào ngày 1 tháng 10 năm 2024 cho các máy tính chạy Windows 11, những người chơi trung thành với tựa game kinh điển Grand Theft Auto: San Andreas bắt đầu nhận thấy điều kỳ lạ.
Máy bay thủy phi cơ Skimmer, một loại máy bay cánh quạt, hoàn toàn biến mất khỏi trò chơi, ngay cả ở vị trí xuất hiện thông thường của nó. Game thủ cho biết khi họ cố gắng sử dụng bản mod sinh phương tiện, trò chơi sẽ bị treo hoàn toàn. Cuối cùng, nhà phát triển của SilentPatch đã nắm bắt được tình hình. SilentPatch về cơ bản là một bản sửa lỗi do cộng đồng tạo ra, vá các lỗi và cải thiện cách các trò chơi PC cũ hoạt động trên hệ thống hiện đại, được tạo ra bởi một nhà phát triển có tên Silent.
Silent đã chia sẻ trên blog của mình rằng anh đã nhận được báo cáo sau trên trình theo dõi vấn đề GitHub của SilentPatch:
“Khi tôi nâng cấp Windows lên phiên bản 24H2, máy bay Skimmer biến mất hoàn toàn khỏi trò chơi. Nó không thể được triệu hồi bằng trainer cũng như không thể tìm thấy ở bất kỳ điểm xuất hiện bình thường nào. Tôi đang sử dụng cả bản mod đã chỉnh sửa của mình (trước khi cập nhật hoàn toàn ổn) và bản gốc chỉ có SilentPatch (tôi đã thử các phiên bản 2018, 2020 và phiên bản SilentPatch mới nhất) và chiếc máy bay vẫn không tồn tại.”
Silent đề cập rằng đây không phải lần đầu anh nghe về vấn đề này và đã nhận được những phàn nàn tương tự trên GTAForums từ tháng 11 năm 2024. Trong khi một số game thủ đổ lỗi cho bản cập nhật SilentPatch, những người khác lại báo cáo vấn đề ngay cả trên các phiên bản game chưa mod. Một người dùng đã đề cập đến việc thiết lập một Máy ảo (VM) với Windows 11 23H2, nơi Skimmer xuất hiện hoàn toàn bình thường. Nhưng khi họ cập nhật VM lên Windows 11 24H2, chiếc máy bay lại biến mất.
Silent lưu ý rằng PC tại nhà của anh đang chạy Windows 10 22H2 và máy tính làm việc của anh đang chạy Windows 11 23H2. Sau khi cố gắng tái hiện lỗi, anh thấy rằng Skimmer vẫn xuất hiện bình thường trên cả hai. Tuy nhiên, khi anh hỏi những người dùng đã nâng cấp lên 24H2, tất cả đều có thể tái hiện vấn đề. Vì vậy, Silent đã thiết lập một máy ảo 24H2 và thấy điều tương tự – không có Skimmer ở vị trí thông thường của nó, mặc dù tất cả các máy bay và thuyền khác đều xuất hiện bình thường. Anh thậm chí còn cố gắng sinh ra chiếc máy bay bằng một đoạn script, nhưng kết quả là nhân vật bị phóng lên không trung 19,3 tỷ tỷ km.
Không phải lỗi của Windows 11: Sự thật bất ngờ từ Rockstar Games
Giao diện quản lý đĩa trên máy tính xách tay chạy Windows 11, không phải nguyên nhân gây lỗi GTA San Andreas
Silent nhận thấy rằng GTA San Andreas sẽ tạm dừng khi SilentPatch được cài đặt, và điều đó đã khởi đầu một phiên gỡ lỗi dài. Cuối cùng, anh đã xác định được lỗi nằm trong một hàm gọi là CPlane::PreRender, nơi trò chơi sẽ bị treo trong một vòng lặp khi cố gắng “chuẩn hóa góc cánh quạt về phạm vi 0–360 độ”. Anh sau đó nhận ra vấn đề nằm trong tệp cấu hình của GTA, vehicles.ide. Mục nhập của Skimmer trong tệp này lạ lùng là ngắn hơn các máy bay khác, và thiếu bốn tham số cuối cùng, hai trong số đó kiểm soát tỷ lệ bánh trước và bánh sau. Theo Silent, điều này là bình thường đối với thuyền, nhưng không phải đối với Skimmer.
Sau khi Silent thêm các tham số còn thiếu, vấn đề đã được khắc phục. Anh tin rằng Rockstar đã gây ra vấn đề này vì trong GTA Vice City, Skimmer được định nghĩa là một chiếc thuyền, nghĩa là các tham số đó không cần thiết. Nhưng trong San Andreas, phân loại của nó đã thay đổi thành máy bay, vì vậy các tham số là bắt buộc. Việc bổ sung chúng có lẽ đã bị Rockstar bỏ sót vào thời điểm đó.
Điều vẫn còn đáng ngạc nhiên là làm thế nào mà lỗi này mất 20 năm mới xuất hiện, và tại sao Windows 11 24H2 lại kích hoạt nó một cách cụ thể. Trong khi Silent đi sâu vào giải thích kỹ thuật trong blog của mình, tóm lại là hoàn toàn do may mắn và sự trùng hợp mà lỗi này đã bị ẩn giấu bấy lâu nay.
Những thay đổi nội bộ nhỏ trong Windows 11 24H2, liên quan đến cách bộ nhớ stack tạm thời hoạt động, đã vô tình kích hoạt lỗi này. Vì vậy, Windows 11 24H2 và Microsoft không phải là nguyên nhân gây ra vấn đề; lỗi thuộc về chính GTA San Andreas. Silent cũng xác nhận rằng anh sẽ đưa bản sửa lỗi này vào bản cập nhật SilentPatch tiếp theo.
Kết luận
Lỗi “biến mất” của máy bay Skimmer trong GTA San Andreas sau bản cập nhật Windows 11 24H2 thoạt nhìn có vẻ là một vấn đề phức tạp do hệ điều hành mới gây ra. Tuy nhiên, qua quá trình phân tích chuyên sâu của nhà phát triển Silent, chúng ta đã hiểu rõ rằng nguyên nhân gốc rễ lại nằm ở chính tệp cấu hình của trò chơi, đã tồn tại suốt 20 năm qua. Sự trùng hợp ngẫu nhiên của các thay đổi nhỏ trong cách Windows 11 24H2 quản lý bộ nhớ stack đã vô tình làm lộ ra lỗ hổng này. Điều này một lần nữa khẳng định tầm quan trọng của việc gỡ lỗi kỹ lưỡng và cho thấy những vấn đề nhỏ nhất trong mã nguồn cũng có thể gây ra hậu quả không ngờ. Người chơi GTA San Andreas có thể yên tâm rằng bản vá cho lỗi Skimmer sẽ sớm được tích hợp vào SilentPatch, giúp trải nghiệm game trở lại bình thường.