- Zaxxon nhandaro mux86-64 assembler, inomhanya yakananga kubva kuUEFI uye neGPLv3 yakavhurika sosi kodhi.
- Zvinetso zvakagadziriswa: kupinza-yemahara (mbeva/joystick), chaiyo nguva, uye PPU-mhando yemifananidzo injini ine 128 FPS uye isina ruzha.
- Kubatanidza neMASM x64 uye kubatanidza neMSVC; BOOTX64.EFI muEFI/BOOT/ yeGPT partition, ine Secure Boot yakaremara.

Pane mapurojekiti anoita kuti iwe usimudze ziso uye ufunge: wow, ichi chimwe chinhu chakasiyana. Inkbox Software yabhadhara chikoro chekare Kudzosa yakasarudzika isometric arcade mutambo uye kuita iyo boot yakananga kubva kuPC firmware, isina inoshanda sisitimu pakati. Dudziro yavo yeZaxxon (1982) inopfuura kungofarira kuziva: yakarongwa zvachose mumutauro wegungano we x86-64 uye yakaburitswa seyakavhurika sosi pasi perezinesi reGPLv3.
Chinhu chinonyanya kushamisa hachisi mhedzisiro chete, asi rwendo. Uzivi hwepurojekiti "kudzokera kusimbi": siya kumashure kweanoshanda sisitimu masisitimu, tora mukana weiyo Hardware Pasina vamiriri, vanoratidza kuti zvichiri kugona kuvaka yakakwenenzverwa mutambo wemitambo uko isu tinowanzo kuona maturusi ekuongorora. Uye hongu, kune vhidhiyo inotsanangura ine refu uye inovaraidza tekinoroji tarisiro inotsanangura kuti zvese zvakauya sei uye zvipingamupinyi zvakasangana munzira.
UEFI senzvimbo yekutanga: nei kuedza uku kuchikosha
Yakawanda inotamba miedzo paUEFI Ivo vanosara semademo, tekinoroji matoyi, kana mitoro inobhadharwa iyo inotakurwa "mukati" yeiyo firmware nharaunda. Pano, zvisinei, nzira yacho yakasiyana: mabhoti emuchina uye chinhu chekutanga chaunoona mutambo, pasina kuenda kuburikidza nehurongwa hwekushanda kana menyu yepakati. Iyo tsanangudzo inoita mutsauko wese maererano nekuoma uye ruzivo rwemushandisi.

UEFI ndiyo yazvino kutsiva yekare Bios Uye, kunyangwe iine masevhisi ekupinda / kubuda, nguva uye vhidhiyo, Haina kugadzirwa kuti ipe yakaomesesa yemitambo chiitikoIzvi zvinomanikidza vanyori vayo kutsiva zvikanganiso nehuinjiniya hwepasi: kubva pakuverenga zvidzoreso munguva chaiyo kusvika pakudhirowa nekumhanya kwakazara pasina kubvarura kana kushungurudza latency.
Kukosha kwechikumbiro kune kaviri. Kune rimwe divi, inoratidza kuti firmware inogona kupa zvinopfuura zvekushandisa chete configuration uye kuedza. Kune rimwe divi, inoshanda sechidzidzo chinoshanda pane yazvino PC dhizaini, nguva, uye dhizaini yeminimalist mifananidzo yeinjini isingaenderane ne "umbozha" maraibhurari.
Inkbox inoipfupisa nepfungwa ine simba: ivo vaive vaneta neiyo inoshanda sisitimu yekuisa nhanho uye miganhu. Mhinduro yavo yaive yekuronga mumutauro wegungano, pasina sisitimu yekushandisa, kuti uwane zvakanyanya kubva muhardware sezvazviri.Haisi inopokana-chero manifesto; chiziviso cherusununguko rwekugadzira, pamwe nekurudziro yakawedzerwa yekuti chero munhu anogona kuongorora iyo kodhi uye kuiforoma nekuda kwerezinesi rayo rakavhurika.
Chii chinonzi Space Game ye x64 uye chinovavarira kuzadzisa chii?
Chirongwa chine zita rakapfava uye rinotsanangura: Space Game ye x64 ndeye Zaxxon varaidzo yeiyo x86_64 chikuva chakarongedzwa semufananidzo weUEFI. Iko hakuna emulators inobatanidzwa, kana "chinyakare" chiteshi chinoenderana neSDL, DirectX, kana zvimwe zvakafanana: iri BOOTX64.EFI bhinari inoremedza sekunge ndiyo iyo bhutsu system.
Izvi zvinoreva kuti, kana iwe uchinge waigadzirira pane dhisiki ine EFI chikamu, Iyo PC bhutsu uye inonangana kuita chiitoIko hakuna desktop, hapana masevhisi ekumashure, hapana mamaneja emahwindo kana madhiraivha akaomarara: chete firmware, iyo bhinari uye hardware yako inopindura chaizvo kune iyo assembler inobvunza nezvayo.
Chokwadi kumweya wepakutanga, Iyo yekuvaraidza inochengetedza isometric aesthetic uye kuti sere-bit arcade kunzwa. Kuti uite izvi, ivo vakagadzira mhando yeinjini inotevedzera yekare PPU (Mufananidzo Kugadziridza Unit), iyo mhando yakashandura zvipimo kuita maitiro ekuona. Iyo tekinoroji nod iyo zvakare inofambisa inodzorwa kwazvo yekupa pombi.
Munzvimbo yayo yeruzhinji iwe unowana iyo kodhi kodhi uye mirairo yekunyora, yekubatanidza uye kumhanyisa mutambo pane chaiyo hardware. Iyo seti inoburitswa pasi peGPLv3kuitira kuti igone kudzidzwa, kugadziridzwa uye kugovaniswazve pasi pemitemo yerezinesi inozivikanwa munharaunda yemahara software.
Zvinetso zvetekinoroji: kuisa, nguva, uye vhidhiyo isina Indaneti
Chero ani zvake akazeya neUEFI anoziva kuti kiibhodhi, wachi, uye magiraidhi tsigiro ndeyekushandisa, kwete "gamer". Chipingamupinyi chikuru chekutanga chaiva mukovaIyo yakajairwa UEFI kiyibhodhi inosvitsa kunonoka kwemukati kunonzwa kutsemuka uye kusarongeka kwekutamba. Iyi lag inokanganisa kukurumidza kunodiwa neArcade, saka Inkbox yakatsvaga imwe nzira: mbeva/joystick yekuisa kune inoteerera uye yemvura ruzivo.
Dambudziko rechipiri rakanga riri renguva. Pasina sisitimu yekushandisa inopa yakakwirira-resolution programmersIine yakanyatso chewed monotonic timers uye pampered tambo kuronga, isu tinofanirwa kugadzira nzira dzakagadzikana dze. kuyera latency... kurongedza mafuremu uye kuchengetedza kuenderana kweinjini yemutambo. Vhidhiyo yepurojekiti inotarisa pane ino zvakadzama, nekuti kurovera nguva ndiyo hafu yehondo mumutambo wemutambo.
Pamberi pemifananidzo, mhinduro inosanganisira inopa iyo inodzokorora maitiro eiyo retro PPU. Iyo inotanga nebhesi yebhesi ine yakaderera resolution (256 × 256)Izvi zvakakwana kune chekare-chikoro console aesthetic, uye kubva ipapo mufananidzo wekupedzisira unoyerwa uye unoumbwa. Mhedzisiro yacho yakatsetseka uye yakafanana, ine aesthetic kuenderana munhu anotarisira kubva kune remake iyo inoremekedza yekutanga yekuona kuzivikanwa.
Takunda zvipingamupinyi izvozvo, Kuratidzira kwekupedzisira kunoratidzika kunge kwakatsetseka sesirika: 128 FPSFluid animations uye inopindura yekubata zvidhinha. Pane, zvisinei, kumwe kusiiwa nemaune: hapana ruzha runoitwa parizvino. Iyo yakasimba yekuona uye yemutambo chiitiko inofarira kuzviparadzira zvakanyanya kutetepa mune yekutanga iteration.
Maitiro ekuivaka: kuunganidza uye kubatanidza maturusi
Iyo kodhi yakanyorwa mu64-bit assembler uye inovimba neMicrosoft maturusi ekuunganidza nekubatanidza. Microsoft Macro Assembler (MASM) mu x64 modhi inoshandiswa pakuungana.Iyo yekubatanidza maitiro inobatwa neMicrosoft Visual C++ Linker (MSVC Linker). Iko hakuna mashiripiti anobatanidzwa: aya maturusi anozivikanwa mukati meiyo ecosystem. Windows iyo inogadzira iyo UEFI-inoenderana binary.
Mhedzisiro yekubatanidza ndeye yakajairwa UEFI inoitiswa: BOOTX64.EFIIyo faira ndiyo inofanirwa kuiswa munzira ye bhutsu inotarisirwa neiyo firmware: EFI/BOOT/, mukati meEFI system partition (ESP) yedhisiki ine GPT yekugovera tafura. Kana uchibva LinuxKunyangwe iwe uri kushandisa macOS kana yemazuva ano Windows system, chimiro ichi chinonzwika sechinozivikanwa.
Iyo setup yakatwasuka ine zvishoma chete zvezvinodikanwa. Enda muzvirongwa zve firmware uye dzora Chengetedza Boot Kuti udzivise zvivharo zvekusaina, sarudza dhisiki kwawakakopa BOOTX64.EFI semudziyo webhoti. Kana zvese zviri munzvimbo, muchina unobva watanga mutambo wacho pasina mamwe ekurodha skrini.
Kune avo vanoda kuyedza nemidziyo yakasiyana, pane mukana wakajeka: UEFI chiyero chinotsigirwa zvakanyanya pa x86_64 michinaChero bedzi hardware yako iri 64-bit uye firmware yako inoshandisa UEFI, unofanira kukwanisa kuedza remake pasina dambudziko rakawandisa. Zvinogara zvichibatsira kuona kuti firmware inokutendera kudzima Chengetedza Boot.
Hardware kuyera, debugging, uye dzimwe sarudzo
Kupfuura izvo zvekutanga, iyo purojekiti inowedzera inonakidza pfungwa maererano nekuita: a "hardware kuwedzera" mode Inokwirisa mamwe ma processors (iyo system cores) kukurumidza kushandura buffer yemutambo kune 1024x1024 chinangwa. Idiki kushanya kwesimba rekufananidza mukati meiyo UEFI nharaunda: mutambo unokwevera pa256x256, uye yekupedzisira kugadzirisa inowedzerwa pasina kuranga chiyero.
Kana iwe uchida kureruka kana mudziyo wako une mwero, unogona kudzima icho chikero. Muchiitiko ichocho, chirongwa chinorasa iyo 256x256 buffer pachiratidziri sezvazviri.Kuchengeta yakawedzera pixel-yakakwana kutarisa uku uchidzikisa computational mutoro. Zvichienderana nezvamunofarira, unogona kukoshesa kuchena kwekuona kana kuwedzera kupinza.
Kune avo vanoda kuona "the guts", kune ma toggle akagadzirirwa kusimudzira. Pane sarudzo yekuratidza hitboxes (mabhokisi ekudhumhana) ayo anongoita zvine musoro kana Hardware scaling ichishanda, sezvo kuvharika kuri kujeka uye kunogoneka pakugadziriswa kwepamusoro.
A diagnostic overlay inogonawo kushandiswa. Debug mode inorasa ruzivo mukoniIzvi zvinosanganisira ruzivo rwekupinza kwekudzora uye render yekoramu kuverenga. Kana iwe uchigadzirisa nguva, latencies, kana mudziyo kuverenga chaiko, iyi data yakakosha pakunzwisisa zviri kuitika mufuremu yega yega.
Kuita uye ruzivo rwekutamba
Chinonyatso tsanangura kuedza uku manzwiro aanoita. Yakapfava gameplay pa128 FPS Uye mhinduro isina musono inogadzira yakanyanya arcade-senge kunzwa: zvese zvinoitika panguva chaiyo, pasina iyo system yekufunga. Kukurumidzisa uku mhedzisiro yekutonga zvine hungwaru pamusoro pepombi: mashoma akaturikidzana, kushomeka kusava nechokwadi.
Kunyangwe pasina ruzha, mutambo unonakidza zvizere. Chikumikidzo chiri pamutambo wekutamba uye kujeka kwekuonaIine palette, sprites, uye kupuruzira izvo zvinomutsa nguva-masere pasina kushandisa mafirita emazuva ano kana kusafanirwa post-kugadzirisa. Kana iwe ukauyira nostalgia, iwe unozogara wekuita.
Nyaya yemusuwo inofanirwa kuombera maoko. Dzivisa iyo UEFI "standard" keyboard -Nekuda kwekunonoka kwayo kwakavakirwa- uye kusarudza mbeva / joystick haingodzivise dambudziko, asi inosimbisa iyo arcade kuzivikanwa kweiyo remake. Izvi zvinocherechedzwa mune chaiyo kana uchigadzirisa trajectories uye kuti mutambo unoshivirira zvakadii kugadzirisa nekukurumidza.
Pazvino multicore masisitimu, iyo yekuyera modhi inoita 1024x1024 kuratidza ipapo. Govera scaling basa pakati pemacores Iyo inokutendera iwe kuchengetedza 128 FPS furemu chiyero pasina kutyora ziya, nepo iri nyore modhi iyo "mbishi" 256 × 256 aesthetic inopa iyo isingachinjiki retro mameseji.
kugarisana uye kuwanikwa
Imwe yekusimba kwechikumbiro ichi chiyero chayo. Iyo bhinari yakagadzirirwa kumhanya pane chero x86_64 muchina une UEFI, iyo inovhara yakafara kwazvo spectrum yedesktop PC uye malaptop contemporary. Hapana chaiyo modhi kana mhando inodiwa; zvakakwana kuti zvisangane nechiyero uye kubvumira EFI kutanga pasina chipingamupinyi.
Kana iwe uchida kukwenya, gonhi rakavhurika. Iyo "Space Game ye x64" repository paGitHub inosanganisira kodhi, zvinyorwa, uye zviwanikwa saka iwe unogona kuunganidza uye kuvaka yako mufananidzo. Chero ani zvake anenge atogadzikana neMASM uye MSVC linker achanzwa ari pamba chaipo; uye avo vasina chikonzero chakakwana chekudzidza.
Kuipa rezenisi pasi peGPLv3 hachisi chinhu chidiki. Sarudzo iyoyo inovimbisa kuti ruzivo rwadzokera kunharaundaUye chero chinobvamo chinochengetedza kuvhurika kwakafanana. Kumapurojekiti ekudzidzisa kana kudzosera kumashure mainjiniya einjiniya, ipfuma: unogona kuverenga, kugadzirisa, kuenzanisa, uye kuyera pasina zvirambidzo zvevaridzi.
Nyaya iri shure kwayo: kukurudzira uye zvidzidzo zvakadzidzwa
Nei uchibatanidzwa munyonganyonga yakadaro? Kurudziro yemunyori ndeyehunyanzvi sehuzivi.: kubvisa zvipingamupinyi zvehurongwa hwekushandisa, kuwanazve iyo programming Pamwoyo wenyaya, uye nekutorazve arcade essence ye "zvaunoona ndizvo zvaunowana." Uyu mweya unoshandura kuita sarudzo dzisina kunyorwa uye dzinoshanda.
Vhidhiyo inoperekedza chirongwa ibhonasi. Haisi turera, ndeye masterclass Iri nezve maitiro ekuita nekupidigura chaiko kweiyo firmware uye maitiro ekuvashandura kuita inomanikidza yemitambo chiitiko. Chero ani akambonetsekana nenguva, latency, uye kuvhota kwemudziyo anozokoshesa nhanho yeruzivo.
Kune kudzidza kwese kwese: kubva kusarudzo yemidziyo yekuisa kune pombi yekudhirowa uye kuyera. Dzokorora maitiro eiyo retro PPU Haisi kungofungidzira chete; isarudzo yepragmatic inodzikamisa dambudziko, inodzivirira kutsamira kwekunze, uye inopa kubatana kune yekupedzisira aesthetic.
Iyi nzira, nenzira, inoguma nekodhi inogona kuverengwa uye kudzidza. Kuronga mu x86-64 assembler hakuna kujairika nhasiUye zvakatonyanya zvakadaro neiyi nhanho yekutamba yekuda chinzvimbo. Chaizvoizvo nekuda kweichi chikonzero, kukosha kwekudzidzisa kweprojekiti kwakakura kune chero munhu anoda zvechokwadi kunzwisisa izvo hardware inoita murairo yega yega.
Ruzivo runoshanda rwekuiedza pakombuta yako
Kana iwe uchida kuziva, heino nzira yekutanga: Iwe unounganidza neMASM mu64 bits, unobatanidza neMSVC uye iwe unowana iyo BOOTX64.EFI binary. Iwe unokopa iyo faira kuEFI (ESP) chikamu chedhisiki ine GPT tafura, uchiremekedza nzira EFI/BOOT/, uye gadzirira firmware yako kubhutsu kubva kune icho chishandiso chine Secure Boot yakaremara.
Mamwe mafirmwares anowedzera yavo "hunhu", saka cherechedza. Ungangoda kumanikidza kurongeka kwebhoti Kana kuti sarudza dhisiki nemaoko kubva pakukurumidza bhutsu menyu. Kana iyo UEFI logo yemugadziri yaonekwa uye maitiro ebhutsu atanga, kana nzira yacho iri chaiyo, iwe unoenda zvakananga mumutambo.
Pakugadzirisa maitiro, hapana chakavanzika. Gonesa hardware kuyera kana iwe uchida 1024x1024 Nekujeka kwakanyanya uye akawanda macores, dzima kana iwe uchitsvaga yakachena 256x256 mufananidzo. Kana iwe uri kugadzirisa, ratidza hitboxes uye diagnostics pani: iwe uchaona iyo yakarekodwa yekuisa uye iyo column kuverenga injini iri kubata munguva chaiyo.
Sechinyorwa chekuchengetedza: Kudzima Yakachengeteka Boot chinhu chinodiwa kune iyi bhinari.Rangarira kudzoreredza shanduko iyi kana uchida, kana wapedza kutamba. Haisi nhanho isina kujairika mumapurojekiti eEFI epamba, asi zvakanaka kuti urambe uchifunga kana ukashanda pazvikwata zvekugadzira.
Kupfuura mutambo: kukanganisa uye zvinogoneka
Kutarisa chete pane retro nod kungave kusina kunaka. Iri basa rinovhura nhaurirano nezve zvinogona kuitwa muUEFI Nechirango cheinjiniya uye zvinangwa zvakajeka. Nhasi mutambo weArcade; mangwana inogona kunge iri advanced graphics utility, hardware yekuyedza nharaunda, kana zviitiko zvinodyidzana zvisingaenderane nekuisa chero chinhu padhisiki.
Nokuda kwechinoitika chedzidzo, kukwidzwa kunoitwa nokukurumidza. Iyo yakatsanangurwa zvakanaka assembler repositoryGwaro, iro rinovhara mapindiro, nguva, magiraidhi, uye kuenzanirana kwechiedza mukati meUEFI, chinhu chakasiyana chekudzidza. Zvakaoma kufungidzira imwe inovhenekera lab yekunzwisisa yemazuva ano PC yekuvaka pasina iyo inoshanda sisitimu masisitimu.
Mumugadziri uye retro nharaunda, ripple mhedzisiro zvakare yakajeka. Kuti uwanezve kutonga kwakazara kwepombi Zvinokwezva. Iyo inotorazve mweya weDIY we'80s uye unouunza munzvimbo yemazuva ano, yakamisikidzwa. Vazhinji vanozofemerwa kuti vaedze neyavo mini UEFI injini zvichienderana nemisimboti iyi.
Uye kune avo vanongoda kutamba kwekanguva, chikumbiro chinopfuura kununura. Inokurumidza, yakachena, uye inoshamisa. Simudza PC yako uye umhare yakananga mune yakagadziridzwa yekirasi isina kumboona desktop. Kana iwe uchitsvaga yekuvhiringidza-yemahara arcade chikamu, zvakaoma kubvunza zvimwe.
Imwe pfungwa inotekeshera muchirongwa chose ndeyekuzvimirira. Kana iwe uchidzora kuraira kwese, iwe unodzora chiitiko.Iwe hauna kutsamira pakuvandudzwa kweOS, vanoronga basa, kana vatyairi. Kune mari - hapana ruzha parizvino, hapana nyaradzo maseru - asi mukudzoka iwe unowana inonakidza tekinoroji toyi uye manifesto yekuzvimiririra yekugadzira.
Pakati pematombo madiki ehunyanzvi, imwe nzira yekuisa manejimendi kune clunky UEFI keyboard uye mashandisirwo ekushandisa ma processor ekuyera anomira pachena. Iyo tsanangudzo ye "chiedza" kufanana mukati meiyo firmware Chiyeuchidzo chekuti chiyero chinopa rusununguko rwakawanda kupfuura rwatinowanzo shandisa zuva nezuva.
Kana iwe uchinakidzwa nekuongorora mune sosi kodhi uye kuzvipira, iwe uchave nenguva yakanaka yekuongorora sangano repurojekiti, kujeka kwemaitiro, uye magadzirirwo emakesi emupendero. Sarudzo yekugovera pasi peGPLv3 Anovimbisa kuti hapana munhu anochengeta ace yavo kumusoro: izvo zvinodzidzwa pano zvinotenderera uye zvinokura nemipiro yevamwe.
Pakupedzisira, zvinopfuura kungori nyore chiteshi, Icho chirevo chechinangwa chakaputirwa mumapikiseli.Inomutsidzira nzira yekuronga uye kutamba-pasina anesthesia kana harnesses-iyo ichine charm muna 2025. Uye inoita saizvozvo nekuremekedza kwepakutanga uye kushandiswa kwehunyanzvi kuenderana, kutanga uko pasina munhu anotarisira kuona mutambo: iyo firmware pachayo.
Anofarira munyori nezve nyika yemabytes uye tekinoroji zvakazara. Ini ndinoda kugovera ruzivo rwangu kuburikidza nekunyora, uye ndizvo zvandichaita mune ino blog, kukuratidza zvinhu zvese zvinonyanya kufadza nezve gadget, software, hardware, tekinoroji maitiro, nezvimwe. Chinangwa changu ndechekukubatsira kufamba munyika yedhijitari nenzira iri nyore uye inonakidza.