- Odtworzenie Zaxxona w assemblerze x86-64, uruchamiane bezpośrednio z UEFI i z otwartym kodem źródłowym GPLv3.
- Rozwiązane problemy: sterowanie bez opóźnień (myszka/joystick), precyzyjne wyczucie czasu oraz silnik graficzny typu PPU ze 128 FPS i brakiem dźwięku.
- Kompilacja przy użyciu MASM x64 i połączenie z MSVC; BOOTX64.EFI w EFI/BOOT/ partycji GPT, z wyłączonym bezpiecznym rozruchem.

Są projekty, które sprawiają, że podnosisz brwi i myślisz: wow, to coś innego. Firma Inkbox Software oddała hołd starej szkole Przywraca klasyczną izometryczną grę zręcznościową i sprawia, że uruchamia się ona bezpośrednio z oprogramowania układowego komputera, bez pośrednictwa systemu operacyjnego. Ich reinterpretacja gry Zaxxon (1982) to coś więcej niż tylko ciekawostka: jest ona w całości napisana w języku asemblera x86-64 i udostępniona jako open source na licencji GPLv3.
Najbardziej uderzający jest nie tylko wynik, ale i podróż. Filozofia projektu to „powrót do metalu”:pozostaw warstwy systemu operacyjnego i skorzystaj z sprzęt komputerowy Bez pośredników pokazują, że nadal można stworzyć dopracowane doświadczenie w grach, w których zazwyczaj widzimy tylko narzędzia diagnostyczne. I tak, jest film instruktażowy z długim i ciekawym opisem technicznym, który szczegółowo opisuje, jak to wszystko się zaczęło i jakie przeszkody napotkano po drodze.
UEFI jako punkt wyjścia: dlaczego ten eksperyment jest ważny
Najbardziej zabawne eksperymenty na UEFI Pozostają one wersjami demonstracyjnymi, zabawkami technicznymi lub ładunkami, które są ładowane „w” środowisku oprogramowania układowego. Tutaj jednak podejście jest inne: komputer uruchamia się i pierwszą rzeczą, jaką widzisz, jest gra, bez przechodzenia przez system operacyjny ani menu pośrednie. Ten szczegół robi ogromną różnicę pod względem złożoności i doświadczenia użytkownika.

UEFI to nowoczesna alternatywa dla starego BIOS I chociaż oferuje usługi związane z wejściem/wyjściem, pomiarem czasu i wideo, Nie jest on zaprojektowany z myślą o zapewnieniu wyrafinowanego doświadczenia w grachZmusza to autorów do kompensowania niedociągnięć w inżynierii niskiego poziomu: od sposobu odczytywania elementów sterujących w czasie rzeczywistym po sposób rysowania z pełną prędkością bez rozrywania obrazu lub irytujących opóźnień.
Wartość tej propozycji jest podwójna. Z jednej strony, pokazuje, że oprogramowanie układowe może oferować więcej niż tylko narzędzia Z drugiej strony, stanowi praktyczną lekcję na temat obecnej architektury komputerów PC, taktowania i projektowania minimalistycznych silników graficznych, które nie wymagają „luksusowych” bibliotek.
Inkbox podsumowuje to mocnym pomysłem: mieli już dość tego, że system operacyjny narzucał tempo i ograniczenia. Ich odpowiedzią było programowanie w języku asemblera, bez systemu operacyjnego, co pozwalało na maksymalne wykorzystanie istniejącego sprzętu.To nie jest manifest anty-czegokolwiek; to deklaracja wolności twórczej, z dodatkową zachętą, że każdy może przeanalizować kod i go rozwidlić dzięki otwartej licencji.
Czym jest Space Game na x64 i jakie są jej cele?
Projekt ma prostą i opisową nazwę: Gra kosmiczna dla x64 to Rekreacja Zaxxon dla platformy x86_64 w postaci obrazu UEFI. Nie ma tu żadnych emulatorów ani „tradycyjnego” portu zależnego od SDL, DirectX ani podobnych: jest to plik binarny BOOTX64.EFI, który ładuje się tak, jakby był systemem rozruchowym.
Oznacza to, że po przygotowaniu na dysku z partycją EFI, Komputer uruchamia się i od razu zaczyna działaćNie ma żadnego pulpitu, usług działających w tle, menedżerów okien ani skomplikowanych sterowników: tylko oprogramowanie sprzętowe, pliki binarne i sprzęt, które reagują dokładnie na polecenia asemblera.
Wierny duchowi oryginału, Rekreacja zachowuje estetykę izometryczną i ten ośmiobitowy klimat arcade. Aby to osiągnąć, stworzyli silnik, który naśladuje klasyczny PPU (Picture Processing Unit), taki, który zamieniał ograniczenia w styl wizualny. To techniczny ukłon, który jednocześnie ułatwia bardzo kontrolowany proces renderowania.
W publicznym repozytorium znajdziesz kod źródłowy i instrukcje dotyczące kompilacji, łączenia i uruchamiania gry na prawdziwym sprzęcie. Zestaw jest wydany na licencji GPLv3tak aby można było ją badać, modyfikować i rozpowszechniać na warunkach licencji powszechnie znanej w społeczności wolnego oprogramowania.
Wyzwania techniczne: dane wejściowe, czas i wideo offline
Każdy, kto miał styczność z UEFI, wie, że obsługa klawiatury, zegara i grafiki ma charakter użytkowy, a nie „dla graczy”. Pierwszą poważną przeszkodą było wejścieStandardowa klawiatura UEFI wprowadza wewnętrzne opóźnienie, które wydaje się toporne i nieprecyzyjne w grach. To opóźnienie zakłóca natychmiastowość, jakiej wymagają automaty do gier, dlatego Inkbox poszukał innego rozwiązania: sterowania myszką/joystickiem, aby zapewnić bardziej responsywne i płynne wrażenia.
Drugim wyzwaniem był czas. Bez systemu operacyjnego zapewniającego programistom wysoką rozdzielczośćMając dobrze przeżute monotoniczne timery i rozpieszczone planery wątków, musimy wynaleźć stabilne mechanizmy zmierzyć opóźnienie...aby wyrównać klatki i zachować spójność silnika gry. Film o projekcie skupia się na tym punkcie szczegółowo, ponieważ idealne dopasowanie czasowe to połowa sukcesu w rozgrywce.
Jeśli chodzi o grafikę, rozwiązaniem jest renderer, który naśladuje zachowanie retro PPU. Zaczyna się od bufora bazowego o niskiej rozdzielczości (256×256)To wystarcza dla estetyki starej konsoli, a następnie obraz końcowy jest skalowany i łączony. Rezultat jest ostry i jednolity, z estetyczną spójnością, jakiej można oczekiwać od remake'u, który szanuje oryginalną tożsamość wizualną.
Pokonawszy te przeszkody, Końcowa demonstracja wygląda gładko jak jedwab: 128 FPSPłynne animacje i responsywne sterowanie dotykowe. Jest jednak jeden celowy błąd: na razie nie zaimplementowano dźwięku. Solidna oprawa wizualna i rozgrywka są lepsze niż rozdrobnienie w pierwszej iteracji.
Jak to zbudować: narzędzia do kompilacji i łączenia
Kod napisano w 64-bitowym assemblerze i do kompilacji i łączenia wykorzystano narzędzia firmy Microsoft. Do asemblacji używany jest Microsoft Macro Assembler (MASM) w trybie x64.Proces łączenia obsługuje Microsoft Visual C++ Linker (MSVC Linker). Nie ma w tym żadnej magii: to dobrze znane narzędzia w ekosystemie. Windows które generują plik binarny zgodny z UEFI.
Wynikiem kompilacji jest standardowy plik wykonywalny UEFI: BOOTX64.EFITen plik powinien zostać umieszczony na ścieżce boot oczekiwane przez oprogramowanie układowe: EFI/BOOT/, w partycji systemowej EFI (ESP) dysku z tabelą partycji GPT. Jeśli korzystasz z LinuxNiezależnie od tego, czy używasz systemu macOS czy nowszego systemu Windows, ta struktura będzie brzmieć znajomo.
Konfiguracja jest prosta i wymaga spełnienia tylko kilku warunków. Przejdź do ustawień oprogramowania sprzętowego i wyłącz Bezpieczny rozruch Aby uniknąć blokad sygnatur, wybierz dysk, na który skopiowałeś plik BOOTX64.EFI, jako urządzenie rozruchowe. Jeśli wszystko jest na swoim miejscu, gra uruchomi się natychmiast, bez żadnych dodatkowych ekranów ładowania.
Dla tych, którzy lubią eksperymentować z różnymi urządzeniami, jest to wyraźna zaleta: UEFI to szeroko obsługiwany standard na maszynach x86_64Jeśli masz sprzęt 64-bitowy i oprogramowanie układowe obsługuje UEFI, powinieneś móc wypróbować remake bez większych problemów. Zawsze warto sprawdzić, czy oprogramowanie układowe pozwala na wyłączenie funkcji Secure Boot.
Skalowanie sprzętu, debugowanie i inne opcje
Oprócz podstawowych funkcji projekt wprowadza bardzo interesującą ideę pod kątem wydajności: tryb „skalowania sprzętowego” Wykorzystuje inne procesory aplikacji (rdzeni systemowych) do szybkiej konwersji bufora gry do docelowej rozdzielczości 1024x1024. To mały popis paralelizacji w środowisku UEFI: gra rysuje w rozdzielczości 256x256, a rozdzielczość końcowa jest mnożona bez negatywnego wpływu na liczbę klatek na sekundę.
Jeśli wolisz prostotę lub twój sprzęt jest skromny, możesz wyłączyć tę funkcję skalowania. W takim przypadku program zrzuca bufor 256x256 na ekran w obecnej postaci.Zachowując pikselowy wygląd przy jednoczesnym zmniejszeniu obciążenia obliczeniowego. W zależności od preferencji, możesz nadać priorytet czystości obrazu lub jego wyjątkowej ostrości.
Dla tych, którzy są ciekawi „wnętrzności”, dostępne są przełączniki przeznaczone do celów rozwojowych. Istnieje opcja wyświetlania pól trafień (pola kolizji), co ma sens tylko wtedy, gdy aktywne jest skalowanie sprzętowe, ponieważ nakładka jest wyraźniejsza i łatwiejsza w zarządzaniu przy wyższych rozdzielczościach.
Można również aktywować nakładkę diagnostyczną. Tryb debugowania zrzuca informacje do konsoliObejmuje to szczegóły dotyczące danych wejściowych sterowania i liczby kolumn silnika renderującego. Jeśli dostosowujesz czasy, opóźnienia lub dokładność odczytu urządzenia, te dane są nieocenione dla zrozumienia, co dzieje się w każdej klatce.
Wydajność i wrażenia z gry
Najlepiej charakteryzuje ten eksperyment to poczucie, że ma on kontrolę. Płynna rozgrywka przy 128 FPS A płynna reakcja tworzy wrażenie zręcznościówki: wszystko dzieje się dokładnie w tym samym momencie, bez zbędnego namysłu ze strony systemu. Ta natychmiastowość jest wynikiem skrupulatnej kontroli nad procesem: mniej warstw, mniej niepewności.
Nawet bez dźwięku gra jest bardzo przyjemna. Nacisk położony jest na rozgrywkę i przejrzystość wizualnąZ paletą barw, sprite'ami i przewijaniem, które przywodzą na myśl erę ośmiobitową, bez uciekania się do nowoczesnych filtrów i zbędnego postprodukcji. Jeśli szukasz nostalgii, zostaniesz dla wrażeń.
Sprawa wejścia zasługuje na osobne brawa. Unikaj standardowej klawiatury UEFI —ze względu na wbudowane opóźnienie — a wybór myszy/joysticka nie tylko eliminuje problem, ale także wzmacnia zręcznościowy charakter remake'u. Jest to widoczne w precyzji regulacji trajektorii i w tym, jak dobrze gra znosi szybkie korekty.
W obecnych systemach wielordzeniowych tryb skalowania umożliwia natychmiastowe wyświetlanie obrazu w rozdzielczości 1024x1024. Rozłóż prace skalowalne na rdzenie Pozwala na utrzymanie liczby klatek na sekundę na poziomie 128 FPS bez najmniejszego wysiłku, natomiast w trybie prostym „surowa” estetyka 256×256 zapewnia bezkompromisową fakturę retro.
Kompatybilność i dostępność
Jedną z zalet tej propozycji jest jej zakres. Plik binarny jest przeznaczony do uruchomienia na dowolnej maszynie x86_64 z UEFI, która obejmuje bardzo szerokie spektrum komputerów stacjonarnych i laptopy Współczesny. Nie potrzeba konkretnego modelu ani marki; wystarczy spełnić standard i umożliwić bezproblemowe uruchomienie EFI.
Jeśli chcesz majsterkować, drzwi są otwarte. Repozytorium „Space Game for x64” w serwisie GitHub zawiera kod, dokumentację i zasoby Możesz więc skompilować i zbudować własny obraz. Każdy, kto zna już MASM i linker MSVC, poczuje się jak w domu; a ci, którzy nie znają, mają idealną wymówkę, żeby się uczyć.
Objęcie go licencją GPLv3 nie jest kwestią drugorzędną. Wybór ten zapewnia, że wiedza powróci do społecznościI każda pochodna zachowa tę samą otwartość. W przypadku projektów edukacyjnych lub laboratoriów inżynierii wstecznej to prawdziwy skarb: można ją czytać, modyfikować, porównywać i mierzyć bez ograniczeń własnościowych.
Historia, która za tym stoi: motywacja i wyciągnięte wnioski
Po co angażować się w taki bałagan? Motywacja autora jest zarówno techniczna, jak i filozoficzna.:aby usunąć ograniczenia systemu operacyjnego i na nowo odkryć programowanie Sednem sprawy jest oddanie istoty gier zręcznościowych, czyli zasady „to, co widzisz, to to, co dostajesz”. Duch ten przekłada się na stonowane i skuteczne wybory projektowe.
Dodatkowym atutem projektu jest film towarzyszący. To nie zwiastun, to lekcja mistrzowska Chodzi o to, jak poradzić sobie z rzeczywistymi ograniczeniami oprogramowania sprzętowego i jak przekształcić je w wciągające wrażenia z gry. Każdy, kto zmagał się z timerami, opóźnieniami i odpytywaniem urządzeń, doceni poziom szczegółowości.
Proces uczenia się ma miejsce wszędzie: począwszy od wyboru urządzeń wejściowych, poprzez proces rysowania, aż po skalowanie. Powtórzenie zachowania retro PPU Nie chodzi tu tylko o nostalgię; to pragmatyczna decyzja, która ogranicza problem, unika zewnętrznych zależności i zapewnia spójność końcowej estetyce.
Nawiasem mówiąc, takie podejście skutkuje kodem, który można odczytać i przeanalizować. Programowanie w assemblerze x86-64 nie jest dziś powszechneTym bardziej, że ten poziom ambicji jest zabawny. Właśnie dlatego wartość edukacyjna projektu jest ogromna dla każdego, kto naprawdę chce zrozumieć, co robi sprzęt w każdej instrukcji.
Praktyczne informacje dotyczące wypróbowania go na komputerze
Jeśli jesteś ciekaw, oto podstawowa trasa: Kompilujesz za pomocą MASM w 64 bitach, łączysz z MSVC i otrzymujesz plik binarny BOOTX64.EFI. Kopiujesz ten plik na partycję EFI (ESP) dysku z tabelą GPT, zachowując ścieżkę EFI/BOOT/, i przygotowujesz oprogramowanie układowe do rozruchu z tego urządzenia z wyłączonym Bezpiecznym Rozruchem.
Niektóre oprogramowania sprzętowe dodają swoją własną „osobowość”, więc bądź tego świadomy. Może być konieczne wymuszenie kolejności rozruchu Możesz też wybrać dysk ręcznie z menu szybkiego rozruchu. Gdy pojawi się logo producenta UEFI i rozpocznie się proces rozruchu, a ścieżka jest prawidłowa, przejdziesz bezpośrednio do gry.
Jeśli chodzi o dostosowanie wydajności, nie ma tu żadnej tajemnicy. Włącz skalowanie sprzętowe, jeśli chcesz 1024x1024 Przy maksymalnej przejrzystości i dużej liczbie rdzeni, wyłącz tę opcję, jeśli szukasz czystego obrazu 256x256. Podczas debugowania wyświetl pola trafień i panel diagnostyczny: zobaczysz zarejestrowane dane wejściowe i liczbę kolumn przetwarzanych przez silnik w czasie rzeczywistym.
Ze względów bezpieczeństwa: Wyłączenie bezpiecznego rozruchu jest wymogiem dla tego pliku binarnego.Pamiętaj, aby cofnąć tę zmianę, jeśli wolisz, po zakończeniu gry. To normalny krok w domowych projektach UEFI, ale warto o nim pamiętać, jeśli pracujesz w zespołach produkcyjnych.
Poza grą: wpływ i możliwości
Skupianie się wyłącznie na retro-klimatyzacji byłoby niesprawiedliwe. Niniejsza praca otwiera dyskusję na temat tego, co można zrobić w UEFI Z inżynierską dyscypliną i jasno określonymi celami. Dziś to klasyczna gra zręcznościowa; jutro może to być zaawansowane narzędzie graficzne, środowisko do testowania sprzętu lub interaktywne doświadczenie, które nie wymaga instalacji czegokolwiek na dysku.
Jeśli chodzi o scenę edukacyjną, atrakcyjność jest natychmiastowa. Dobrze skomentowane repozytorium asembleraDokument, który obejmuje zagadnienia związane z wprowadzaniem danych, synchronizacją, grafiką i paralelizacją oświetlenia w UEFI, stanowi wyjątkowe źródło wiedzy. Trudno wyobrazić sobie bardziej pouczające laboratorium do zrozumienia nowoczesnej architektury komputerów PC bez warstw systemu operacyjnego.
W społeczności twórców i miłośników stylu retro efekt domina jest również wyraźny. Aby odzyskać pełną kontrolę nad rurociągiem To wciągające. Przywraca ducha DIY z lat 80. i przenosi go do nowoczesnego, ujednoliconego środowiska. Wielu zainspiruje się do eksperymentowania z własnym mini silnikiem UEFI opartym na tych zasadach.
A dla tych, którzy chcą po prostu chwilę pograć, propozycja ta jest w zupełności wystarczająca. Jest szybki, czysty i niesamowity. Uruchom komputer i od razu zanurz się w odświeżonej wersji klasycznej gry, nie widząc pulpitu. Jeśli szukasz rozgrywki arcade bez rozpraszania uwagi, trudno oczekiwać czegoś więcej.
Jedną z idei przenikających cały projekt jest idea autonomii. Kontrolując każdą instrukcję, kontrolujesz całe doświadczenie.Nie jesteś zależny od aktualizacji systemu operacyjnego, harmonogramów zadań ani sterowników. Wiąże się to z kosztami – na razie bez dźwięku, bez warstw komfortu – ale w zamian otrzymujesz zachwycającą techniczną zabawkę i manifest kreatywnej niezależności.
Spośród drobnych technicznych perełek na szczególną uwagę zasługuje alternatywne zarządzanie wprowadzaniem danych do niezgrabnej klawiatury UEFI oraz wykorzystanie procesorów aplikacyjnych do skalowania. Ten szczegół „lekkiej” paralelizacji w oprogramowaniu układowym Przypomina nam to, że standard ten oferuje nam większą swobodę działania, niż ta, z której zazwyczaj korzystamy na co dzień.
Jeśli lubisz zagłębiać się w kod źródłowy i commity, miło spędzisz czas, przyglądając się organizacji projektu, przejrzystości procedur i sposobowi rozwiązywania przypadków skrajnych. Decyzja o udostępnieniu na warunkach GPLv3 Zapewnia, że nikt nie trzyma asa w rękawie: zdobyta tutaj wiedza krąży i rozwija się wraz z wkładem innych.
Ostatecznie to coś więcej niż tylko prosty port, To oświadczenie intencji wyrażone w pikselach.Przywraca do życia sposób programowania i grania — bez znieczulenia czy uprzęży — który w roku 2025 wciąż ma swój urok. Robi to z szacunkiem dla oryginału i odpowiednim wykonaniem technicznym, zaczynając od tego, czego nikt nie spodziewa się zobaczyć w grze: od samego oprogramowania układowego.
Pisarz z pasją zajmujący się światem bajtów i technologii w ogóle. Uwielbiam dzielić się swoją wiedzą poprzez pisanie i właśnie to będę robić na tym blogu, pokazywać Ci wszystkie najciekawsze rzeczy o gadżetach, oprogramowaniu, sprzęcie, trendach technologicznych i nie tylko. Moim celem jest pomóc Ci poruszać się po cyfrowym świecie w prosty i zabawny sposób.