Windows 11のバージョン24H2で、『Grand Theft Auto: San Andreas』に登場するスキマー水上機が描画不能となる現象が報告された。

原因は、ゲーム内設定ファイル「vehicles.ide」におけるパラメータの欠落であり、スキマーが飛行機として再定義された際に必要な車輪スケール情報が省略されていたことに起因する。この不備は2004年の発売当初から存在していたものの、Windowsの旧メモリ処理仕様により20年間発覚しなかった。

今回の不具合は、Windows 11の最新バージョンにおけるスタックポインタ処理の変更によって顕在化した。具体的には、前の車両の情報が流用されずスタックが4バイトずれた結果、異常なスケールが適用され、スキマーの描画が不能となった。開発者による修正方法やSilentPatchのパッチ公開によって、プレイヤーは再び水上機による飛行を楽しめる可能性がある。

Windows 11 24H2で明るみに出た設定ファイルの構造的不備

『GTA: San Andreas』におけるスキマー水上機が描画不能となった事象は、vehicles.ideファイルにおけるパラメータ欠落によるものである。

スキマーは同作で飛行機として再定義されたが、開発段階でその役割の変更に即した記述が不完全だった。従来必要とされる4つの数値、特に車輪スケールに該当する末尾のパラメータが省かれていたことが判明した。これにより、Windows 11 24H2で処理方法が変化した際、本来参照すべき値が見つからず、異常なスケールが適用された。

この問題は、過去のWindowsバージョンでは特定の前提のもと正常動作していたが、最新バージョンではメモリ処理の厳密化が影響し、不整合が顕在化した形である。

GitHub上の報告を受けてAdrian氏が迅速に修正を行い、SilentPatchとして公開された点は、モッド開発者の技術的洞察がこの分野において依然重要な役割を果たしていることを示す。また、同様の構造的不備が他タイトルにも潜在している可能性を示唆するものである。

スタックポインタの処理変更が引き起こした異常描画現象

Windows 11のバージョン24H2では、vehicles.ideファイルの読み込みに伴うスタックポインタの挙動が変更された。従来の環境では、ファイル内で欠落したパラメータを前行から補完する処理が行われていたが、24H2ではこの挙動が廃止され、正確な構造情報が求められる設計となった。その結果、スキマー水上機に対して過大なスケール値が割り当てられ、ゲーム内で描画できないほどの異常な大きさとなった。

ユーザーが意図的にコックピットに乗り込もうとした場合、キャラクターの位置情報は数京光年先を指す状態となり、空間的にも論理的にも破綻した状態が生成される。

このような極端な座標数値は、バッファオーバーフローやパラメータ解釈エラーによる符号拡張の可能性もあるが、現時点では仮説の域を出ない。Microsoftが行った仕様変更の意図は不明だが、互換性よりも厳密な構文処理を優先する方針である可能性は否定できない。

不具合の構造的背景が示唆するゲーム設計の長期的課題

今回明らかになったバグは、単なるパラメータ欠落による表示不具合ではなく、ゲーム開発における役割変更や設計意図の伝承ミスが複合的に作用した結果である。

GTA IIIやVice Cityにおいてスキマーがボートとして定義されていた設計思想が、San Andreasで飛行機に変更されたにもかかわらず、必要な定義が記述されないままリリースされた。このような移行ミスは、設計段階でのドキュメンテーション不足やレビュー不全を示唆する。

20年間にわたり問題が顕在化しなかった背景には、過去のWindows環境の寛容な挙動があるが、それは裏を返せば既存バグが検知されずに温存される構造的リスクでもあった。

高度なメモリ保護や明示的定義を求める近年のOS設計に対して、過去のゲーム設計が追いついていない現実がある。これはクラシックゲームの再評価や移植において、単なる互換性テスト以上の技術的再構築が必要であることを明示する事例である。

Source:Tom’s Hardware