天脉资讯
财经视野 科技数码 探索发现 教育学习 娱乐红人 时尚秘籍 文化艺术 游戏天地 星座解读 宠物小乖 营养美食 大燕公益 商业快讯

Win11更新后,老版GTA《圣安地列斯》惊现水上飞机消失之谜

2025-04-29来源:天脉网编辑:瑞雪

游戏MOD大师Silent近日遭遇了一个颇为棘手的难题,这个难题源自他广受好评的《GTA:圣安地列斯》修复补丁。一名玩家反馈,在升级至Windows 11 24H2版本后,游戏中的水上飞机Skimmer竟然神秘消失了。

Silent最初以为这只是个别案例,但随后不断有玩家反映同样的问题,尤其是在Windows 11 24H2版本发布后。为了深入探究,Silent邀请了几位玩家进行测试,结果发现即便是在纯净版游戏中,也会出现水上飞机消失的情况。这引发了Silent的好奇心,他决定亲自上阵,搭建了一个Windows 11 24H2虚拟机进行测试。

测试的结果令人震惊。Silent发现,当他在虚拟机中生成水上飞机Skimmer时,游戏主角CJ竟然瞬间飞升到了不可思议的高度,游戏画面随即卡死。这一发现让Silent意识到,问题远比想象中复杂。

经过一番艰苦的排查,Silent终于找到了问题的根源。原来,水上飞机Skimmer模型的边界框Z轴坐标被设定为了一个极端异常的数值。这一错误源于游戏配置文件中缺少了定义轮子尺寸的参数,导致在初始化悬挂系统时,Z轴的上限被错误地更新。Silent推测,这可能是因为在《侠盗猎车手:罪恶都市》中并没有飞机这一类别,而Skimmer作为游戏中少数能被玩家操控的飞机之一,在设计时并未定义这些值。到了《圣安地列斯》中,Skimmer的载具类型被改为飞机,但开发人员却疏忽了添加这些必要的参数。

Silent进一步分析发现,在旧版操作系统中,内存堆栈的分配和管理方式与新版系统存在差异。游戏代码在处理完一辆载具的轮子尺寸后,存储这些尺寸的栈内存并没有被立即覆盖。因此,在缺少轮子尺寸信息的情况下,代码错误地沿用了上一辆载具的轮子尺寸,使得Skimmer得以勉强正常运行。然而,Windows 11 24H2版本更新改变了内存堆栈的使用方式,使用了更多的栈空间,从而覆盖了这些残留值,最终导致Skimmer的Z轴数值出错。

尽管问题看似与Windows 11的24H2版本更新有关,但Silent强调,真正的根源在于游戏代码本身的编写失误以及官方对游戏后续更新支持的不足。他进一步指出,早在Xbox版中,官方就已经修复了这个BUG,并且这一修复被沿用到了后来的多个版本。然而,在2005年发售的PC原版中,官方却始终没有推送修复补丁,导致这个BUG潜伏了近20年之久。

Silent的这一发现不仅解决了玩家们的困扰,也为那些喜欢钻研老游戏的玩家们提了个醒:在升级Windows系统时,还是需要谨慎行事,以免遇到类似的兼容性问题。同时,这也再次证明了MOD作者们对于优化游戏体验、排查潜在BUG所做出的巨大贡献。