Przez 25 lat nikt tego nie zauważył. Dopiero aktualizacja Windowsa 11 ujawniła błąd w tej kultowej grze

Najnowsze aktualizacje systemów operacyjnych potrafią niekiedy ujawnić ukryte od dawna wady w starszym oprogramowaniu. Przekonali się o tym fani kultowej strategii Sid Meier's Alpha Centauri, której dodatek zaczął ulegać awarii po instalacji nowej wersji Windows 11.

gaming
Krystian Łukasik4 czerwca 2025
1
Źrodło fot. WifieandHubster | YouTube / Sid Meier's Alpha Centauri
i

Czasem bywa, że gry sprzed dekad wciąż gromadzą wokół siebie wierne grono fanów. Czasami jednak przejście ze starego oprogramowania na najnowszy systemem operacyjny prowadzi do nieoczekiwanych problemów. Tak właśnie stało się w przypadku tytułu Sid Meier's Alpha Centauri, a konkretnie jego dodatku Alien Crossfire, gdzie aktualizacja Windows 11 24H2 ujawniła błąd, który pozostawał ukryty przez ćwierć wieku.

Tajemnicze awarie w klasyku sci-fi

Sid Meier's Alpha Centauri to strategiczna gra turowa z końca lat 90., która do dziś cieszy się statusem kultowej. Dostępna na platformach takich jak GOG, objęta jest programem gwarantującym jej działanie na współczesnych komputerach. Jednak pod koniec 2024 roku gracze, którzy zaktualizowali system do Windows 11 24H2, zaczęli masowo zgłaszać problemy.

Awarie dotyczyły wyłącznie dodatku Alien Crossfire i objawiały się na różne sposoby – od komunikatów o błędach, przez natychmiastowe podniesienie się poziomu mórz w grze, aż po całkowite zawieszaenie się programu tuż po rozpoczęciu rozgrywki. Sprawą zainteresował się youtuber Nathan Baggs, który postanowił zbadać źródło problemu.

Dochodzenie w skompilowanym kodzie

Analiza okazała się niezwykle skomplikowana, ponieważ wymagała pracy na skompilowanym kodzie, bez dostępu do jego źródła. Nathan Baggs, porównując działanie tgrytułu na Windows 10 i 11, odkrył, że kluczowe różnice pojawiają się w momencie automatycznego zapisu stanu gry. Na nowszym systemie plik zapisu był nienaturalnie duży i wypełniony losowymi danymi, co prowadziło do awarii.

Śledztwo doprowadziło go do fragmentu kodu odpowiedzialnego za operacje na plikach. Okazało się, że gra w pewnym momencie podejmuje decyzję na podstawie wartości znajdującej się w pamięci podręcznej – tyle że ta wartość nigdy nie została celowo zainicjalizowana przez programistów.

Przez 25 lat gra po prostu „miała szczęście”. Pamięć w tym konkretnym miejscu – będąca pozostałością po wcześniejszych operacjach – przypadkowo miała wartość, która sprawiała, że wadliwy fragment kodu nigdy nie był uruchamiany. Zmieniła to jednak aktualizacja Windows 11 24H2, modyfikując wewnętrzne działanie funkcji systemowej LeaveCriticalSection. Ta, kończąc swoje działanie, zaczęła nadpisywać wspomniany fragment pamięci inną wartością. W efekcie gra zaczęła uruchamiać ścieżkę kodu, która nigdy nie miała prawa działać poprawnie – a to nieuchronnie prowadziło do awarii.

Jak podkreśla autor wideo, wina leży po stronie gry, a nie systemu operacyjnego.

Żeby było jasne, to jest błąd w grze, a nie w Windowsie. Microsoft ma swobodę zmiany wewnętrznej implementacji dowolnej ze swoich funkcji, kiedy tylko zechce, a aplikacje nie powinny polegać na wartości niezainicjowanej pamięci.

Stworzenie łatki i szerszy kontekst problemu

Po zidentyfikowaniu przyczyny Nathan stworzył łatkę, która naprawiała błąd. Co ciekawe, jego pierwsza próba okazała się zbyt powierzchowna i gra zawieszała się na dalszym etapie. Dopiero druga, bardziej radykalna poprawka, polegająca na całkowitym wyłączeniu wadliwego fragmentu kodu, przyniosła pożądany efekt. Swoją pracę udostępnił w formie prostego narzędzia na GitHubie.

Warto zaznaczyć, że społeczność graczy już wcześniej opracowała własną modyfikację, która również rozwiązuje ten problem. Jednak praca wykonana przez Nathan'a jest cenną alternatywą dla osób pragnących grać w „czystą”, niezmienioną wersję gry.

Co również ciekawe, Alpha Centauri nie jest jedyną ofiarą tej konkretnej aktualizacji Windows 11. Identyczna przyczyna – poleganie na niezainicjowanej pamięci, której stan został zmieniony przez funkcję LeaveCriticalSection – spowodowała błędy także w innej kultowej produkcji, Grand Theft Auto: San Andreas.

Krystian Łukasik

Krystian Łukasik

Zawodowo skupia się na pisaniu wiadomości ze świata elektroniki oraz tłumaczeń opisów i instrukcji produktów specjalistycznych. Pasja do nowoczesnych technologii komputerowych oraz gamingu pozwala mu być ciągle na bieżąco z ewoluującymi trendami w tych dziedzinach. Jego zamiłowanie do języka angielskiego stało się fundamentem decyzji o podjęciu i ukończeniu studiów z filologii angielskiej.

Premiera AMD Radeon RX 9060 XT w polskich sklepach. Co z dostępnością?

Premiera AMD Radeon RX 9060 XT w polskich sklepach. Co z dostępnością?

Brak OLED-a boli, ale ekran Switcha 2 pozytywnie zaskakuje. Porównanie wyświetlaczy konsol Nintendo

Brak OLED-a boli, ale ekran Switcha 2 pozytywnie zaskakuje. Porównanie wyświetlaczy konsol Nintendo

To już nie jest zabawka; Switch 2 zaskoczył mnie jakością. Unboxing, pierwsze uruchomienie i nasze wrażenia

To już nie jest zabawka; Switch 2 zaskoczył mnie jakością. Unboxing, pierwsze uruchomienie i nasze wrażenia

Sprawdziliśmy, co potrafi Switch 2 w boju. Cyberpunk 2077 i The Legend of Zelda: Tears of the Kingdom na nowej konsoli Nintendo

Sprawdziliśmy, co potrafi Switch 2 w boju. Cyberpunk 2077 i The Legend of Zelda: Tears of the Kingdom na nowej konsoli Nintendo

Najnowsza aktualizacja oprogramowania PS5 najwyraźniej rozwiązała problem z VRR, tylko dlaczego po cichu?

Najnowsza aktualizacja oprogramowania PS5 najwyraźniej rozwiązała problem z VRR, tylko dlaczego po cichu?