
Kaip veikia Raspberry Pi emuliatoriaus rinkinys?
Raspberry Pi emuliatoriaus rinkinys paverčia vieną{0}}bortinį kompiuterį į kelių-konsolių žaidimų sistemą, sujungdamas konkrečius aparatūros komponentus su emuliacijos programine įranga, kuri imituoja klasikinę žaidimų aparatinę įrangą. Sistema veikia per skirtingus sluoksnius,{3}}fizinė aparatinė įranga veikia „Linux“ operacinėje sistemoje, kurioje yra emuliavimo programinė įranga, kuri seną žaidimo kodą paverčia instrukcijomis, kurias gali vykdyti „Pi“.
Į komplektą paprastai įeina pati Raspberry Pi plokštė, „microSD“ kortelė{0}}, kurioje yra emuliavimo programinė įranga, pvz., „RetroPie“, maitinimo šaltinis, valdikliai ir dažnai dėklas su aušinimo komponentais. Kai įjungiate sistemą, ji paleidžiama į EmulationStation – grafinę sąsają, leidžiančią naršyti ir paleisti žaidimus, saugomus kaip ROM failai.
Trijų{0}}sluoksnių architektūra
Norint suprasti, kaip šie rinkiniai veikia, reikia pažvelgti į tris tarpusavyje susijusius sluoksnius, kurių kiekvienas atlieka konkrečias funkcijas.
Aparatūros sluoksnis: pagrindas
Apačioje yra fizinė Raspberry Pi plokštė{0}}dažniausiai Pi 4 Model B arba naujesnis Pi 5. Pi 4 yra keturių -branduolių ARM Cortex-A72 procesorius Broadcom BCM2711, veikiantis 1,8 GHz dažniu, suporuotas su 2GB–8 GB RAM. „Pi 5“ patobulina „Cortex{14}}A76 branduolius 2,4 GHz dažniu ir patobulintą grafikos apdorojimą.
Ši aparatinė įranga yra svarbi, nes emuliacija yra brangi skaičiavimo požiūriu. „Pi“ turi imituoti visiškai skirtingas procesoriaus architektūras realiuoju laiku-. Pavyzdžiui, „Super Nintendo“ naudojo 16 -bitų „Ricoh 5A22“ procesorių – „Pi“ turi apskaičiuoti, ką būtų padaręs tas lustas, tada pateikti rezultatus per savo grafikos vamzdyną.
VideoCore GPU tvarko grafikos atvaizdavimą. Pi 4 jis veikia 500 MHz dažniu, o naujasis Pi 5 VideoCore VII GPU pasiekia 800 MHz. Šis GPU pagreitis yra labai svarbus sklandžiam žaidimui. Be jo ARM procesorius sunkiai išlaikytų pastovų kadrų dažnį, ypač naudojant 3D{8}}sistemas, tokias kaip „Nintendo 64“ ar „PlayStation“.
Saugykla gaunama naudojant „microSD“ korteles, paprastai nuo 32 GB iki 128 GB. Žaidimų ROM (skaitmeninės kasečių duomenų kopijos) čia veikia kartu su operacine sistema. Greitesnės UHS-I arba UHS-II įvertintos kortelės pagerina įkėlimo laiką ir sumažina mikčiojimą žaidimo metu.
Programinės įrangos sluoksnis: emuliacijos krūva
Virš aparatinės įrangos veikia modifikuota Raspberry Pi OS versija (pagrįsta Debian Linux). Ši lengva operacinė sistema suteikia pagrindą emuliacijos programinei įrangai, tuo pačiu sumažindama papildomų išteklių sąnaudas.
Daugumoje rinkinių naudojamas RetroPie – programinės įrangos platinimas, kuriame yra viskas, ko reikia retro žaidimams. Pati „RetroPie“ nėra emuliatorius-, tai įrankių, veikiančių kartu, rinkinys. Jos esmė yra RetroArch, „priekinė dalis“, kuri suteikia vieningą sąsają keliems emuliacijos branduoliams.
Šie branduoliai yra tikrieji emuliatoriai. Kiekvienas branduolys imituoja tam tikrą žaidimų sistemą. Pavyzdžiui, SNES9x branduolys imituoja „Super Nintendo“ aparatinę įrangą, o „PCSX ReARMed“ tvarko „PlayStation“ žaidimus. „RetroArch“ įkelia atitinkamą branduolį pagal jūsų pasirinktą žaidimą, tada perduoda valdiklio įvestis ir valdo garso / vaizdo išvestį.
Ryšys tarp komponentų atrodo taip: EmulationStation (matomas meniu) → RetroArch (emuliacijos sistema) → Individualūs branduoliai (sistemos -specifiniai emuliatoriai) → Jūsų žaidimai (ROM failai).
Kai pasirenkate žaidimą, EmulationStation nurodo RetroArch, kurį branduolį įkelti ir kurį ROM failą paleisti. RetroArch inicijuoja tą branduolį, įkelia žaidimo duomenis ir pradeda emuliacijos procesą. Jūsų valdiklio įvestis per RetroArch įvesties sistemą išverčiama į pagrindinį formatą, kurio tikimasi.
Sąsajos sluoksnis: padaryti jį tinkamu
EmulationStation suteikia vaizdinę meniu sistemą. Jis nuskaito jūsų ROM katalogus, rodo žaidimų sąrašus, suskirstytus pagal konsolę, ir rodo dėžutės iliustraciją arba ekrano kopijas (jei atsisiuntėte metaduomenis naudodamiesi išgryninimo funkcija). Navigacijai naudojama žaidimų pultelis arba klaviatūra-nereikia pelės.
Konfigūracija vyksta per įdėtus meniu. Galite koreguoti vaizdo įrašo nustatymus, perdaryti valdiklius pagal -sistemą ar žaidimą, įgalinti apgaulę arba konfigūruoti tinklo funkcijas. Sparčiųjų klavišų sistema leidžia pasiekti šias parinktis žaidimo viduryje -paspaudus mygtukų derinį, paprastai pasirinkus + Pradėti, kad atidarytumėte „RetroArch“ meniu.
Šis daugiasluoksnis dizainas reiškia, kad galite pakeisti atskirus komponentus neperstatydami visko. Norite kitokio SNES emuliatoriaus? Įdiekite kitą šerdį. Norite kitokios sąsajos? Pakeiskite EmulationStation išlaikydami RetroArch. Reikia daugiau galios? Atnaujinkite savo Pi modelį ir perkelkite „microSD“ kortelę.
Kaip iš tikrųjų vyksta emuliacija
Kai paleidžiate žaidimą, keli procesai vyksta per milisekundes. Emuliatoriaus šerdis įkelia ROM failą į atmintį, analizuoja jo struktūrą, kad suprastų žaidimo kodą ir išteklius, tada pradeda vykdyti instrukcijas.
Vertimas realiuoju laiku-yra pagrindinis iššūkis. Pradinės konsolės CPU kalbėjo kitokiu instrukcijų rinkiniu nei Pi ARM procesorius. Emuliatorius turi interpretuoti kiekvieną nurodymą iš pradinės aparatinės įrangos, išsiaiškinti, ką jis turi daryti, tada atlikti lygiavertes operacijas su Pi.
Šis aiškinimas sukuria pridėtines išlaidas. Norint tiksliai imituoti SNES instrukcijas, gali prireikti 10 arba 20 ARM instrukcijų. Padauginkite tai iš milijonų instrukcijų, apdorojamų per sekundę žaidimo metu, ir pamatysite, kodėl emuliacijai reikia didelės apdorojimo galios.
Kai kurie optimizavimai padeda. Dinaminis perkompiliavimas (dynarec) pirminio kodo blokus paverčia ARM kodu-skraidydamas-, išsaugodamas rezultatus pakartotiniam naudojimui. Tai daug greičiau, nei interpretuoti kiekvieną instrukciją atskirai. Gerai-optimizuoti branduoliai, tokie kaip PCSX ReARMed, plačiai naudoja „dynarec“, todėl „PlayStation“ emuliacija veikia sklandžiai „Pi“, nepaisant santykinio šios konsolės sudėtingumo.
Grafikos emuliacija vyksta lygiagrečiu keliu. Originalios konsolės turėjo tam skirtus grafikos lustus su konkrečiomis{1}}sprite apdorojimo galimybėmis, fono sluoksniais, specialiaisiais efektais. Emuliatorius turi juos atkurti programinėje įrangoje, tada pateikti rezultatus per Pi GPU naudojant OpenGL ES. Čia GPU pagreitis tampa labai svarbus; Vien programinės įrangos atvaizdavimas negali išlaikyti 60 FPS reiklesnėms sistemoms.
Garsas kelia panašių iššūkių. Emuliatorius imituoja garso lusto elgseną, generuodamas bangos formas, atitinkančias pradinę aparatūros išvestį. Tada šis garso srautas perduodamas per „Pi“ garso posistemį, nesvarbu, ar tai HDMI garsas, ar ausinių lizdas, ar „Bluetooth“, į belaidžius garsiakalbius.

Veiklos ribos
Ne visos sistemos vienodai gerai imituoja. „Pi 4“ puikiai valdo 8-bitų ir 16 bitų konsoles – NES, SNES, „Genesis“, „Game Boy“ veikia visu greičiu ir tiksliai. PlayStation 1 žaidimai dažniausiai veikia gerai, nors kai kurie pavadinimai sulėtėja sudėtingų scenų metu.
„Nintendo 64“ emuliacija pasiekia našumo sienas. Šios sistemos architektūrą buvo sunku tiksliai imituoti net ir galinguose kompiuteriuose. „Pi 4“ gali paleisti kai kuriuos N64 žaidimus žaidimo greičiu su mažesnio tikslumo nustatymais, tačiau tokie reiklūs pavadinimai kaip „Rogue Squadron“ lieka nepatogūs. Čia padeda patobulintos „Pi 5“ specifikacijos, pranešama apie geresnį N64 suderinamumą, nors jis vis dar nėra tobulas.
„Dreamcast“ emuliacija rodo pažadą „Pi 5“, naudojant „Redream“ emuliatorių. „PlayStation 2“, „GameCube“ ir „Wii“ dažniausiai nepasiekiami-šios sistemos yra tiesiog per sudėtingos „Pi“ galimybėms. Jų kelių procesorių architektūrai ir sudėtingai grafikai reikia didelių arklio galių, kurių net „Pi 5“ negali užtikrinti nuolat.
Remiantis „Tom's Hardware“ bandymais, kadrų dažnis gali pastebimai sumažėti naudojant sudėtingus „PlayStation“ žaidimus „Pi 4“, o koviniuose žaidimuose paspaudus mygtukus gali būti rodomas mikčiojimas. Naujausi Pi 4 etalonai rodo sklandų veikimą su tinkamai optimizuotais pavadinimais, ypač 2D ir mažiau reikalaujantiems 3D žaidimams.
„Pi 5“ suteikia išmatuojamų patobulinimų. Nepriklausomi bandymai rodo, kad Pi 5 valdo Game Boy Advance, N64, Dreamcast ir PSP emuliaciją, kurios nuoseklumas yra geresnis, palyginti su ankstesniais modeliais. Inžineriniai optimizavimai, pvz., NUMA emuliacija, gali padidinti kelių branduolių našumą iki 18 % Pi 5, nors tokie pataisymai reikalauja branduolio modifikacijų, ne tik įprastų naudotojų konfigūracijų.
Valdiklio vertimo sistema
Valdiklio palaikymas nusipelno ypatingo dėmesio, nes jis dažnai nesuprantamas. Kai pirmą kartą paleidžiate „RetroPie“, ji prašo sukonfigūruoti valdiklį paspaudus kiekvieną mygtuką-D-pagal nuorodas, veido mygtukus, pečių mygtukus, paleidimo / pasirinkimo ir „spartųjų klavišų įjungimo“ mygtuką.
Ši pradinė konfigūracija susieja jūsų fizinį valdiklį su EmulationStation meniu sistema ir sukuria pagrindinį RetroArch profilį. Tada „RetroArch“ pagal tą profilį automatiškai generuoja kiekvieno emuliatoriaus branduolio valdiklio konfigūracijas.
Bet štai kur tai darosi įdomu: skirtingose konsolėse mygtukai buvo išdėstyti skirtingai. SNES valdiklis turėjo keturis veido mygtukus ir du pečių mygtukus. „PlayStation“ valdiklis pridėjo dar du peties mygtukus ir analogines lazdas. Iš pradžių „Genesis“ valdiklis turėjo tik tris veido mygtukus.
„RetroArch“ valdiklio abstrakcijos sluoksnis susieja jūsų šiuolaikinio valdiklio mygtukus su tuo, kokios tikėjosi pradinė sistema. Jei naudojate „PlayStation DualShock 4“ su 16 mygtukų, kad galėtumėte žaisti NES žaidimą, kuriame buvo naudojami tik 4 mygtukai, „RetroArch“ tiesiog nepaiso papildomų įvesties elementų, nebent juos konkrečiai susiejote su emuliatoriaus funkcijomis, pvz., išsaugojimo būsenomis arba -persukimu pirmyn.
Galimas per-žaidimas. Jei konkretus pavadinimas atrodo nepatogus dėl numatytojo susiejimo, žaidimo metu galite įeiti į RetroArch meniu ir iš naujo sukonfigūruoti valdiklius tik tam žaidimui. Pakeitimai išsaugomi automatiškai.
Po pradinės konfigūracijos USB valdikliai veikia prijungus{0}}ir paleidus{1}}. „Bluetooth“ valdiklius reikia suporuoti per „RetroPie“ „Bluetooth“ sąrankos meniu, kuris aptinka ir prisijungia. Suporavus, „Bluetooth“ valdikliai vėl automatiškai prisijungia paleidžiant.
Saugykla ir failų valdymas
„microSD“ kortelės struktūra yra paprasta, tačiau ją svarbu suprasti. /boot skaidinyje yra Linux branduolys ir įkrovos konfigūracijos failai. Pagrindiniame skaidinyje yra operacinė sistema, programinė įranga „RetroPie“ ir jūsų ROM.
ROM failai yra /home/pi/RetroPie/roms/ su pakatalogiais kiekvienai sistemai -nes/, snes/, psx/ ir kt. EmulationStation nuskaito šiuos katalogus paleidžiant ir rodo viską, ką randa.
ROM įkėlimas į Pi vyksta keliais būdais. USB metodas yra paprasčiausias: FAT32 formato atmintinėje sukurkite aplanką pavadinimu retropie, prijunkite jį prie Pi, palaukite minutę, kol bus sukurta aplanko struktūra, tada pašalinkite jį ir nukopijuokite ROM į atitinkamus kompiuterio konsolės aplankus. Prijunkite jį prie Pi, palaukite perdavimo ir paleiskite iš naujo.
Tinklo perdavimas veikia per Samba („Windows“ failų bendrinimas). Iš kito tinklo kompiuterio galite pasiekti \\\\retropie ir tiesiogiai matyti ROM aplankus. Jei reikia, nuvilkite failus, tada iš naujo paleiskite „EmulationStation“, kad atnaujintumėte žaidimų sąrašus.
Kai kurioms sistemoms reikalingas BIOS failų{0}}dvejetainis kodas iš originalios aparatinės įrangos, reikalingos tiksliam emuliavimui. Pavyzdžiui, „PlayStation“ emuliacijai reikia PS1 BIOS. Šie failai patenka į /home/pi/RetroPie/BIOS/. Be jų daugelis žaidimų nebus įkeliami.
Išsaugojimo būsenos skiriasi nuo{0}}žaidimo išsaugojimo. Žaidime-išsaugojimas veikia lygiai taip pat, kaip ir naudojant originalią aparatinę įrangą, saugomą ROM įrašymo duomenyse. Išsaugomos būsenos yra emuliatoriaus funkcijos, kurios bet kuriuo metu nufotografuoja visą sistemos būseną. Galite išsaugoti ir įkelti juos akimirksniu, net ir žaidimuose, kuriuose niekada nebuvo išsaugotos funkcijos. „RetroArch“ saugo juos aplanke /home/pi/RetroPie/retroarch/states/.
Galios ir šilumos valdymas
Galios tiekimas veikia našumą labiau, nei daugelis supranta. Pi 4 reikalingas 5V/3A (15W) maitinimo šaltinis; Pi 5 reikia 5 V / 5 A (25 W), kad veiktų stabiliai, ypač naudojant sudėtingą emuliaciją. Dėl nepakankamos galios sistema sulėtėja{10}}, kad būtų išvengta nestabilumo, todėl sistema automatiškai sumažina laikrodžio greitį.
„Pi“ neturi maitinimo mygtuko tradicine prasme. Įjungus maitinimą, jis įjungiamas. Norint tinkamai išjungti, reikia naudoti EmulationStation meniu, kad pasirinktumėte "Išjungimo sistemą", kuri atlieka švarų išjungimą prieš išjungiant maitinimą. Tiesiog atjungę veikiantį Pi gali sugadinti „microSD“ kortelę.
Ilgų žaidimo seansų metu karštis tampa veiksniu. „Pi 4“ sukuria didelę šilumą veikiant apkrovai, o bandymai rodo, kad terminis droselis gali įvykti be tinkamo aušinimo. Dėklai su įmontuotais -ventiliatoriais arba radiatoriais to neleidžia. „Pi 5“ veikia dar karštiau dėl didesnio našumo, todėl aktyvus aušinimas yra praktiškai privalomas, kad būtų galima nuosekliai emuliuoti.
Įjungus greitį, Pi yra didesnis nei jo greitis, kad būtų geresnis veikimas. Tai padidina energijos suvartojimą ir šilumos išeigą. Neseniai optimizavus Pi 5 SDRAM laiką, greitis pagerėjo 10–20 %, o kruopštus įsijungimas pasiekė iki 32 % padidėjimą esant 3,2 GHz. Tokiems pakeitimams reikalingas tinkamas aušinimas ir kyla nestabilumo rizika.

Alternatyvios emuliacijos platformos
Nors RetroPie dominuoja, yra alternatyvų su skirtingomis filosofijomis. „Recalbox“ teikia pirmenybę naudojimo paprastumui ir daugiau automatizavimo, bet mažiau tinkinimo. „Lakka“ siūlo lengvą,{2}}panašų į konsolę patirtį, kaip pagrindą naudodama „LibreELEC“. „Batocera“ teikia platų platformos palaikymą ir{4}}įtaisytas žaidimų srautinio perdavimo galimybes.
Naujausi Pi 5 platformų palyginimai rodo, kad „Batocera“ siūlo tvirtą kelių-konsolių palaikymą su 8- grotuvų valdiklio konfigūracija, o „Lakka“ pasižymi nesudėtinga emuliacija su „PlayStation“ įkvėpta sąsaja. Kiekviena platforma daro skirtingus kompromisus tarp paprastumo ir lankstumo.
Pagrindinė architektūra išlieka panaši visose platformose{0}}Linux bazė, RetroArch sistema, keli emuliatoriaus branduoliai. Skirtumai yra sąsajos dizainas, įtrauktos funkcijos ir konfigūracijos metodai. Naudotojai, norintys daugiau valdyti, linkę naudoti „RetroPie“, o norintys prijungti ir žaisti paprastumo, gali teikti pirmenybę „Recalbox“.
Kai reikalai neveikia
Veikimo problemos paprastai kyla iš kelių bendrų šaltinių. Nepakankamas tiekimas sukelia atsitiktinius gedimus arba sulėtėjimą. Lėtos „microSD“ kortelės sukelia mikčiojimą lygių apkrovų metu. Perkaitimas sukelia droselį, kuris pasireiškia staigiu rėmo kritimu.
Jei konkretus žaidimas neįkeliamas, dažniausiai kaltas netinkamas ROM formatas. Skirtingi emuliatoriaus branduoliai palaiko skirtingus failų formatus. „PlayStation“ žaidimai gali būti .bin/.cue, .chd arba .pbp formatų-ne visi branduoliai nuskaito visus formatus. Patikrinus pagrindinę dokumentaciją paaiškėja, kokių formatų ji tikisi.
Kai kuriems žaidimams reikalingi specialūs emuliatoriaus branduoliai. Kad Neo Geo žaidimai veiktų, reikia ir žaidimo ROM, ir Neo Geo BIOS failo. Arkadiniai ROM turi atitikti MAME versiją, kurios emuliatorius tikisi, -naudojant ROM rinkinį, sukurtą MAME 0.78 su MAME 2003 Plus, neveiks.
Valdiklio problemos dažnai kyla dėl sparčiųjų klavišų konfigūracijos. Jei atrodo, kad žaidimuose mygtukai nereaguoja, dažnai taip yra dėl to, kad vienu metu paspaudžiamas sparčiojo klavišo įjungimo mygtukas, todėl RetroArch įjungiamas režimas, kuriame jis laukia emuliatoriaus komandų, o ne perduoda įvestis žaidimui.
Dažnai užduodami klausimai
Ar galiu emuliacijai naudoti bet kurį Raspberry Pi modelį?
Nors bet kuris „Pi“ techniškai veikia, „Pi 4“ su mažiausiai 2 GB RAM yra praktinis minimumas, norint užtikrinti gerą veikimą daugelyje sistemų. Ankstesni modeliai kovoja su bet kuo, išskyrus 8 bitų konsoles. „Pi Zero“ yra per mažai galios, kad būtų galima patogiai emuliuoti sistemas po NES / Game Boy eros.
Ar man reikia originalių žaidimų kasečių, kad galėčiau legaliai naudoti emuliatorių?
Autorių teisių įstatymai, susiję su ROM, skiriasi priklausomai nuo jurisdikcijos. Saugiausias būdas yra naudoti tik tuos žaidimus, kurių fizinės kopijos jums priklauso, tačiau įgyvendinimas ir teisinis aiškumas labai skiriasi priklausomai nuo regiono. „RetroPie“ nėra autorių teisių saugomo turinio,{2}}turite pateikti savo žaidimų failus.
Ar galiu pridėti žaidimų po pradinės sąrankos?
Taip, ROM pridėjimas yra paprastas naudojant USB perkėlimą arba tinklo failų bendrinimą. Įdėkite ROM failus į atitinkamą konsolės aplanką, esantį /home/pi/RetroPie/roms/, tada iš naujo paleiskite „EmulationStation“, kad atnaujintumėte žaidimų sąrašą.
Kiek saugyklos man reikia?
32 GB „microSD“ kortelėje telpa šimtai 8{5}}bitų ir 16 bitų žaidimų. PlayStation ir N64 žaidimai užima daugiau vietos – apie 500 MB vienam PS1 žaidimui, 10–50 MB N64 žaidimams. 64 GB kortelė suteikia patogią vietą įvairiai bibliotekai įvairiose sistemose.
Žvelgiant į visą sistemą
Raspberry Pi emuliatorių rinkinių elegancija slypi tame, kaip gana paprasti komponentai susijungia į galingą retro žaidimų sprendimą. „Pi“ ARM procesorius nebuvo sukurtas emuliacijai, tačiau dėl sumanios programinės įrangos inžinerijos ir aparatinės įrangos optimizavimo jis atkuria žaidimų patirtį iš sistemų, kurios naudojo visiškai skirtingas architektūras.
Modulinis pobūdis reiškia, kad sistema laipsniškai tobulėja. Reguliariai pasirodo geresni emuliatoriaus branduoliai, kurie padidina tikslumą ar našumą. Programinės aparatinės įrangos atnaujinimai pagerina Pi galimybes. Galite naujovinti atskirus komponentus-greitesnę „microSD“ kortelę, galingesnį „Pi“ modelį, skirtingus valdiklius-nepradėdami iš naujo.
Tiems, kurie nori suprasti, o ne tik naudoti šiuos rinkinius, pagrindinė įžvalga yra ta, kad emuliacija apima kelis abstrakcijos sluoksnius, kurių kiekvienas verčiamas tarp skirtingų to paties dalyko atvaizdų. Žaidimas mano, kad jis veikia originalioje aparatinėje įrangoje, tačiau iš tikrųjų jis veikia su programine įranga, kuri imituoja tą aparatinę įrangą, kuri pati veikia visiškai kitokioje fizinėje įrangoje. Dėl pakankamos „Raspberry Pi“ apdorojimo galios ir atvirojo{2}}šaltinio emuliacijos programinės įrangos, patobulintos dešimtmečius, šis vertimas yra pakankamai greitas, kad būtų galima žaisti realiuoju laiku.
Šis prieinamos aparatinės įrangos ir brandžios programinės įrangos derinys paaiškina, kodėl „tiesiog gauk Pi“ tapo įprastas patarimas retro žaidimų entuziastams. Nors ir nėra tobula,-kai kurios sistemos nepatenka į savo galimybes-Pi pasiekia puikią pusiausvyrą tarp kainos, našumo ir prieinamumo, kad būtų išsaugoti ir mėgaujantis klasikiniais žaidimais.




