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
4
Ź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 system 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 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 zawieszanie 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 tytuł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 stosu – 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.

120 klatek i to w 4K bez użycia jakiegokolwiek upscalingu. Recenzja techniczna RoboCop: Rogue City - Unfinished Business

120 klatek i to w 4K bez użycia jakiegokolwiek upscalingu. Recenzja techniczna RoboCop: Rogue City - Unfinished Business

Apple wie, jak schować aparat w wyświetlaczu. Wpłynął nowy patent firmy

Apple wie, jak schować aparat w wyświetlaczu. Wpłynął nowy patent firmy

Człowiek pokonał sztuczną inteligencję w programowaniu. Wybitnym koderem jest Polak

Człowiek pokonał sztuczną inteligencję w programowaniu. Wybitnym koderem jest Polak

Jak wylogować się z konta Google? To łatwe

Jak wylogować się z konta Google? To łatwe

Stare mury, ale bije z nich nowy blask. Porównujemy Twierdza Krzyżowiec: Edycja Ostateczna z pierwowzorem

Stare mury, ale bije z nich nowy blask. Porównujemy Twierdza Krzyżowiec: Edycja Ostateczna z pierwowzorem