
Kuidas Raspberry Pi emulaatorikomplekt töötab?
Raspberry Pi emulaatorikomplekt muudab ühe-pardaarvuti mitme-konsooliga mängusüsteemiks, kombineerides konkreetsed riistvarakomponendid emulatsioonitarkvaraga, mis jäljendab klassikalist mänguriistvara. Süsteem töötab erinevate kihtide kaudu-füüsiline riistvara töötab Linuxi operatsioonisüsteemiga, mis hostib emulatsioonitarkvara, mis tõlgib vana mängukoodi juhisteks, mida Pi saab täita.
Tavaliselt sisaldab komplekt Raspberry Pi plaati ennast, microSD-kaarti, mis on eel{0}}laaditud emulatsioonitarkvaraga (nt RetroPie), toiteallikat, kontrollereid ja sageli jahutuskomponentidega korpust. Kui lülitate süsteemi sisse, käivitub see graafilisse liidesesse EmulationStation, mis võimaldab sirvida ja käivitada ROM-failidena salvestatud mänge.
Kolme{0}}kihi arhitektuur
Nende komplektide toimimise mõistmiseks tuleb vaadata kolme omavahel ühendatud kihti, millest igaüks täidab konkreetseid funktsioone.
Riistvarakiht: sihtasutus
Allosas asub füüsiline Raspberry Pi plaat,{0}}enamasti Pi 4 mudel B või uuem Pi 5. Pi 4-l on neljatuumaline Broadcom BCM2711 ARM Cortex-A72 protsessor, mis töötab sagedusel 1,8 GHz, mis on ühendatud 2 GB kuni 8 GB muutmäluga. Pi 5 täiustab Cortex{14}}A76 tuumadega sagedusel 2,4 GHz ja täiustatud graafikatöötlust.
See riistvara on oluline, kuna emuleerimine on arvutuslikult kallis. Pi peab simuleerima täiesti erinevaid protsessoriarhitektuure-reaalajas. Näiteks Super Nintendo kasutas 16-bitist Ricoh 5A22 protsessorit – Pi peab arvutama, mida see kiip oleks teinud, ja seejärel renderdama tulemused oma graafikakonveieri kaudu.
VideoCore GPU tegeleb graafika renderdamisega. Pi 4 puhul töötab see sagedusel 500 MHz, samas kui Pi 5 uus VideoCore VII GPU ulatub 800 MHz-ni. See GPU kiirendus on sujuva mängimise jaoks kriitiline. Ilma selleta oleks ARM-i protsessoril raske ühtlast kaadrisagedust säilitada, eriti 3D{8}}võimeliste süsteemide puhul, nagu Nintendo 64 või PlayStation.
Salvestusruum toimub microSD-kaartide kaudu, tavaliselt 32–128 GB. Mängu ROM-id (kassetiandmete digitaalsed koopiad) on siin koos operatsioonisüsteemiga. Kiiremad UHS-I või UHS-II reitinguga kaardid pikendavad laadimisaega ja vähendavad mängu ajal kogelemist.
Tarkvarakiht: emulatsioonipinn
Riistvara kohal töötab Raspberry Pi OS-i muudetud versioon (Debian Linuxi baasil). See kerge operatsioonisüsteem loob aluse emuleerimistarkvarale, vähendades samas ressursikulusid.
Enamik komplekte kasutab RetroPie-d, tarkvara jaotust, mis koondab kõik retromängude jaoks vajaliku. RetroPie ise ei ole emulaator,{1}}see on tööriistade kogum, mis töötavad koos. Selle tuumaks on RetroArch, "liides", mis pakub mitme emulatsioonituuma jaoks ühtset liidest.
Need tuumad on tegelikud emulaatorid. Iga tuum jäljendab konkreetset mängusüsteemi. Näiteks SNES9x tuum emuleerib Super Nintendo riistvara, PCSX ReARMed aga tegeleb PlayStationi mängudega. RetroArch laadib teie valitud mängu põhjal sobiva tuuma, edastab seejärel kontrolleri sisendid ja haldab heli-/videoväljundit.
Komponentide vaheline seos näeb välja selline: EmulationStation (nähatav menüü) → RetroArch (emulatsiooniraamistik) → Individuaalsed tuumad (süsteemi-spetsiifilised emulaatorid) → Teie mängud (ROM-failid).
Kui valite mängu, annab EmulationStation RetroArchile teada, milline tuum laadida ja millist ROM-faili käivitada. RetroArch lähtestab selle tuuma, laadib mänguandmed ja alustab emuleerimisprotsessi. Teie kontrolleri sisendid tõlgitakse RetroArchi sisendsüsteemi kaudu vormingusse, mida tuum eeldab.
Liidese kiht: muutke see kasutatavaks
EmulationStation pakub visuaalset menüüsüsteemi. See skannib teie ROM-i katalooge, kuvab konsooli järgi korraldatud mängude loendeid ja kuvab kasti kujundust või ekraanipilte (kui olete selle kraapimisfunktsiooni kaudu metaandmed alla laadinud). Navigeerimiseks kasutatakse mängupulti või klaviatuuri,{2}}hiirt pole vaja.
Seadistamine toimub pesastatud menüüde kaudu. Saate kohandada videoseadeid, ümber kaardistada juhtelemente -süsteemi või mängu- kaupa, lubada pettusi või konfigureerida võrgufunktsioone. Kiirklahvide süsteem võimaldab neile valikutele ligi pääseda -mängu keskel, vajutades nupukombinatsiooni, tavaliselt RetroArchi menüü avamiseks vali + Start.
See kihiline disain tähendab, et saate üksikuid komponente vahetada ilma kõike ümber ehitamata. Kas soovite teistsugust SNES-emulaatorit? Paigaldage teine tuum. Kas eelistate teist kasutajaliidest? Asendage EmulationStation, säilitades samal ajal RetroArchi. Kas vajate rohkem jõudu? Uuendage oma Pi mudelit ja teisaldage oma microSD-kaart.
Kuidas emuleerimine tegelikult toimub
Mängu käivitamisel toimub millisekundite jooksul mitu protsessi. Emulaatori tuum laadib ROM-faili mällu, analüüsib selle struktuuri, et mõista mängu koodi ja varasid, seejärel alustab juhiste täitmist.
Tõlge{0}}reaalajas on peamine väljakutse. Algse konsooli CPU rääkis teistsugust juhiste komplekti kui Pi ARM-protsessor. Emulaator peab tõlgendama iga algse riistvara käsku, välja selgitama, mida see peaks tegema, ja seejärel käivitama Pi-ga samaväärsed toimingud.
See tõlgendus tekitab lisakulusid. SNES-i juhis võib täpseks simuleerimiseks vajada 10 või 20 ARM-i käsku. Korrutage see miljonite juhistega, mida mängu ajal sekundis töödeldakse, ja näete, miks emuleerimine nõuab märkimisväärset töötlemisvõimsust.
Mõned optimeerimised aitavad. Dünaamiline ümberkompileerimine (dynarec) teisendab algse koodi plokid ARM-koodiks -lennult-, salvestades tulemused vahemällu taaskasutamiseks. See on palju kiirem kui iga juhise eraldi tõlgendamine. Hästi-optimeeritud tuumad, nagu PCSX ReARMed, kasutavad laialdaselt dynareci, mistõttu töötab PlayStationi emulatsioon Pi-l sujuvalt, hoolimata selle konsooli suhtelisest keerukusest.
Graafika emuleerimine järgib paralleelset rada. Algsetel konsoolidel olid spetsiaalsed graafikakiibid, millel olid kindlad võimalused-sprite'i käsitlemine, taustakihid ja eriefektid. Emulaator peab need tarkvaras uuesti looma, seejärel renderdama tulemused läbi Pi GPU, kasutades OpenGL ES-i. Siin muutub GPU kiirendus kriitiliseks; Tarkvara renderdamine üksi ei suuda säilitada 60 kaadrit sekundis nõudlikumate süsteemide jaoks.
Heli esitab sarnaseid väljakutseid. Emulaator simuleerib helikiibi käitumist, genereerides lainekujusid, mis vastavad algse riistvara väljundile. See helivoog edastatakse seejärel Pi heli alamsüsteemi kaudu, olgu see siis HDMI-heli, kõrvaklappide pesa või Bluetooth, juhtmeta kõlaritesse.

Tulemuslikkuse piirid
Kõik süsteemid ei emuleeri võrdselt hästi. Pi 4 saab suurepäraselt hakkama 8-- ja 16-bitiste konsoolidega – NES, SNES, Genesis ja Game Boy töötavad kõik täpselt täiskiirusel. PlayStation 1 mängud töötavad enamasti hästi, kuigi mõned pealkirjad näitavad keeruliste stseenide ajal aeglustumist.
Nintendo 64 emulatsioon tabab jõudlusseinu. Selle süsteemi arhitektuuri oli kurikuulsalt raske täpselt jäljendada isegi võimsates arvutites. Pi 4 suudab mängida mõningaid N64 mänge mängitava kiirusega ja vähendatud täpsusseadetega, kuid nõudlikud pealkirjad, nagu Rogue Squadron, jäävad tüütuks. Pi 5 täiustatud spetsifikatsioonid on siin abiks, teatades paremast N64 ühilduvusest, kuigi see pole ikka veel täiuslik.
Dreamcasti emulatsioon näitab lubadusi Pi 5-s, kasutades Redreami emulaatorit. PlayStation 2, GameCube ja Wii jäävad suures osas kättesaamatuks-need süsteemid on Pi võimaluste jaoks lihtsalt liiga keerulised. Nende mitme protsessoriga{5}}arhitektuur ja keerukas graafika nõuavad märkimisväärseid hobujõude, mida isegi Pi 5 ei suuda pidevalt pakkuda.
Tom's Hardware testimise kohaselt võivad kaadrisagedused Pi 4 nõudlike PlayStationi pealkirjade puhul märgatavalt langeda, kusjuures võitlusmängud näitavad nupuvajutuste ajal kokutamist. Hiljutised Pi 4 etalonid näitavad sujuvat jõudlust korralikult optimeeritud pealkirjadega, eriti 2D ja vähem nõudlike 3D-mängude jaoks.
Pi 5 toob kaasa mõõdetavaid täiustusi. Sõltumatud testid näitavad, et Pi 5 käepidemed on Game Boy Advance'i, N64, Dreamcasti ja PSP emulatsiooniga võrreldes varasemate mudelitega parema järjepidevusega. Tehnilised optimeerimised, nagu NUMA-emulatsioon, võivad suurendada Pi 5 mitmetuumalist jõudlust kuni 18%, kuigi sellised näpunäited nõuavad kerneli muudatusi peale tavaliste kasutajakonfiguratsioonide.
Kontrolleri tõlkesüsteem
Kontrolleri tugi väärib erilist tähelepanu, kuna seda mõistetakse sageli valesti. RetroPie esmakordsel käivitamisel palub see teil seadistada kontrolleri, vajutades iga nuppu -D-padi juhised, näonuppe, õlanuppe, käivitus-/valimisnuppu ja kiirklahvi lubamise nuppu.
See esialgne konfiguratsioon kaardistab teie füüsilise kontrolleri EmulationStationi menüüsüsteemiga ja loob RetroArchi baasprofiili. Seejärel loob RetroArch selle profiili põhjal automaatselt kontrolleri konfiguratsioonid iga emulaatori tuuma jaoks.
Kuid siin läheb see huvitavaks: erinevatel konsoolidel oli erinev nuppude paigutus. SNES-i kontrolleril oli neli näonuppu ja kaks õla nuppu. PlayStationi kontroller lisas veel kaks õlanuppu ja analoogpulgad. Genesise kontrolleril oli algselt ainult kolm näonuppu.
RetroArchi kontrolleri abstraktsioonikiht kaardistab teie kaasaegse kontrolleri nupud vastavalt sellele, mida algne süsteem eeldas. Kui kasutate 16 nupuga PlayStation DualShock 4, et mängida NES-mängu, mis kasutas ainult 4 nuppu, ignoreerib RetroArch lisasisendeid, välja arvatud juhul, kui olete need spetsiaalselt vastendanud emulaatori funktsioonidega, nagu olekute salvestamine või edasi{4}}kerimine.
Mängu kaupa on võimalik ümber kaardistada. Kui konkreetne pealkiri tundub vaikimisi kaardistamisega ebamugav, saate mängu ajal siseneda RetroArchi menüüsse ja seadistada ümber ainult selle mängu juhtnupud. Muudatused salvestatakse automaatselt.
USB-kontrollerid töötavad pärast esialgset seadistamist ühendage{0}}ja mängige{1}}. Bluetoothi kontrollerid nõuavad sidumist RetroPie Bluetoothi seadistusmenüü kaudu, mis läbib avastamise ja ühenduse loomise. Pärast sidumist loovad Bluetoothi kontrollerid alglaadimisel automaatselt uuesti ühenduse.
Salvestus- ja failihaldus
MicroSD-kaardi struktuur on lihtne, kuid oluline mõista. /boot partitsioon sisaldab Linuxi tuuma ja alglaadimise konfiguratsioonifaile. Põhipartitsioon sisaldab operatsioonisüsteemi, RetroPie tarkvara ja teie ROM-e.
ROM-failid asuvad kaustas /home/pi/RetroPie/roms/ koos alamkataloogidega iga süsteemi jaoks-nes/, snes/, psx/ jne. EmulationStation kontrollib neid katalooge käivitamisel ja kuvab kõik, mida leiab.
ROM-ide saamine Pi-sse toimub mitmel viisil. USB-meetod on kõige lihtsam: looge FAT32-vormingus mälupulgal retropie-nimeline kaust, ühendage see Pi-ga, oodake minut, kuni see loob kaustastruktuuri, seejärel eemaldage see ja kopeerige ROM-id oma arvuti vastavatesse konsoolikaustadesse. Ühendage see tagasi Pi-ga, oodake ülekannet ja taaskäivitage.
Võrguedastus töötab Samba kaudu (Windowsi failijagamine). Teisest võrgus olevast arvutist pääsete juurde \\\\retropie'le ja näete otse ROM-i kaustu. Pukseerige faile vastavalt vajadusele, seejärel taaskäivitage EmulationStation, et mänguloendeid värskendada.
Mõned süsteemid nõuavad täpseks emuleerimiseks vajalikke BIOS-failide{0}}binaarkoodi algsest riistvarast. Näiteks PlayStationi emulatsioon vajab PS1 BIOS-i. Need failid lähevad kausta /home/pi/RetroPie/BIOS/. Ilma nendeta ei laadita paljusid mänge.
Salvestusolekud erinevad-mängu salvestamisest. Mängu salvestamine- toimib täpselt samamoodi nagu algse riistvara puhul, mis on salvestatud ROM-i salvestusandmetesse. Salvestusolekud on emulaatori funktsioonid, mis teevad kogu süsteemi oleku igal hetkel hetkeseisu. Saate need kohe salvestada ja laadida, isegi mängudes, millel pole kunagi olnud salvestamisfunktsiooni. RetroArch salvestab need kaustas /home/pi/RetroPie/retroarch/states/.
Toite- ja soojusjuhtimine
Toiteedastus mõjutab jõudlust rohkem, kui paljud arvavad. Pi 4 vajab 5V/3A (15W) toiteallikat; Pi 5 vajab stabiilseks tööks 5V/5A (25W), eriti nõudliku emulatsiooni korral. Alavõimsus põhjustab pidurdamise,{10}}süsteem vähendab automaatselt kella kiirust, et vältida ebastabiilsust, mille tulemuseks on mängu aeglustumine.
Pi-l pole traditsioonilises mõttes toitenuppu. Toite ühendamine lülitab selle sisse. Nõuetekohaseks väljalülitamiseks tuleb kasutada EmulationStationi menüüd, et valida "Shutdown System", mis teostab enne voolu katkestamist puhta väljalülitamise. Lihtsalt töötava Pi lahti ühendamine võib teie microSD-kaardi rikkuda.
Kuumus muutub pikemate mänguseansside ajal oluliseks teguriks. Pi 4 tekitab koormuse all märkimisväärset soojust ja katsed näitavad, et termiline drossel võib toimuda ilma piisava jahutuseta. Sisseehitatud-ventilaatorite või jahutusradiaatoritega korpused takistavad seda. Pi 5 töötab veelgi kuumemalt tänu oma suuremale jõudlusele, muutes aktiivse jahutuse järjepidevaks emuleerimiseks praktiliselt kohustuslikuks.
Ülekiirendamine lükkab parema jõudluse saavutamiseks Pi kiirusest kaugemale. See suurendab nii energiatarbimist kui ka soojusvõimsust. Hiljutised SDRAM-i ajastuse optimeerimised Pi 5-l saavutasid 10–20% kiiruse paranemise aktsiakelladel, ettevaatlik ülekiirendamine saavutas 3,2 GHz juures kuni 32% kasvu. Sellised muudatused nõuavad piisavat jahutust ja põhjustavad ebastabiilsuse ohtu.

Alternatiivsed emuleerimisplatvormid
Kuigi RetroPie domineerib, on alternatiive erineva filosoofiaga. Recalbox eelistab kasutusmugavust suurema automatiseerimisega, kuid vähem kohandamisega. Lakka pakub lihtsat,{2}}konsoolilaadset kogemust, kasutades LibreELECi baasina. Batocera pakub laialdast platvormi tuge ja sisseehitatud{4}}mängude voogesituse võimalusi.
Hiljutised Pi 5 platvormide võrdlused näitavad, et Batocera pakub kindlat mitme-konsooli tuge koos 8-mängijaga kontrolleri konfiguratsiooniga, samas kui Lakka paistab silma lihtsa emuleerimisega PlayStationist inspireeritud liidesega. Iga platvorm teeb erinevaid kompromisse lihtsuse ja paindlikkuse vahel.
Põhiarhitektuur jääb platvormide lõikes sarnaseks{0}}Linuxi baas, RetroArchi raamistik ja mitu emulaatorituuma. Erinevused seisnevad liidese disainis, kaasatud funktsioonides ja konfiguratsioonimeetodites. Kasutajad, kes soovivad suuremat kontrolli, kalduvad RetroPie poole, samas kui need, kes soovivad ühendada-ja-lihtsust, võivad eelistada Recalboxi.
Kui asjad ei tööta
Jõudlusprobleemid tulenevad tavaliselt mõnest levinud allikast. Alatoiteallikad põhjustavad juhuslikke kokkujooksmisi või aeglustumist. Aeglased microSD-kaardid tekitavad tasase laadimise ajal kogelemist. Ülekuumenemine käivitab drosseli, mis väljendub äkilise kaadri kukkumisena.
Kui konkreetne mäng ei laadita, on tavaliselt süüdi valed ROM-vormingud. Erinevad emulaatori tuumad toetavad erinevaid failivorminguid. PlayStationi mängud võivad olla .bin/.cue-, .chd- või .pbp-vormingus{6}}kõik tuumad ei loe kõiki vorminguid. Tuuma dokumentatsiooni kontrollimisel selgub, milliseid vorminguid see ootab.
Mõned mängud nõuavad spetsiaalseid emulaatori tuumasid. Neo Geo mängud vajavad toimimiseks nii mängu ROM-i kui ka Neo Geo BIOS-faili. Arkaad-ROM-id peavad vastama MAME versioonile, mida emulaator eeldab, -kasutades MAME 0.78 jaoks mõeldud ROM-i komplekti koos MAME 2003 Plusiga, ei tööta.
Kontrolleri probleemid tulenevad sageli kiirklahvi konfiguratsioonist. Kui tundub, et nupud mängudes ei reageeri, on põhjuseks sageli kiirklahvi lubamise nupu samaaegne vajutamine, mis paneb RetroArchi režiimi, kus see ootab mängule sisendite edastamise asemel emulaatori käske.
Korduma kippuvad küsimused
Kas ma saan emuleerimiseks kasutada mis tahes Raspberry Pi mudelit?
Kuigi iga Pi tehniliselt töötab, on Pi 4, millel on vähemalt 2 GB muutmälu, praktiline miinimum enamiku süsteemide hea jõudluse jaoks. Varasemad mudelid võitlevad kõigega, mis ei ole 8-bitised konsoolid. Pi Zero on NES-i/Game Boy ajastu kaugemale jäävate süsteemide mugavaks emuleerimiseks liiga vähese võimsusega.
Kas emulaatorikomplektide seaduslikuks kasutamiseks on vaja originaalseid mängukassette?
ROM-ide autoriõiguse seadused on jurisdiktsiooniti erinevad. Kõige turvalisem on kasutada ainult selliseid mänge, mille füüsilised koopiad on teile isiklikult kuuluvad, kuigi jõustamine ja õiguslik selgus erinevad piirkonniti oluliselt. RetroPie ei sisalda autoriõigustega kaitstud sisu-peate esitama oma mängufailid.
Kas ma saan mänge lisada pärast esialgset seadistamist?
Jah, ROM-ide lisamine on lihtne kas USB-edastuse või võrgufailide jagamise abil. Asetage ROM-failid /home/pi/RetroPie/roms/ vastavasse konsooli kausta, seejärel taaskäivitage EmulationStation, et mänguloendit värskendada.
Kui palju salvestusruumi ma vajan?
32 GB microSD-kaardile mahub sadu 8-bitiseid ja 16-bitisi mänge. PlayStationi ja N64 mängud võtavad rohkem ruumi – umbes 500 MB PS1 mängu kohta, 10–50 MB N64 mängude jaoks. 64 GB kaart pakub mugavat ruumi mitmekesise raamatukogu jaoks mitmes süsteemis.
Täielikku süsteemi vaadates
Raspberry Pi emulaatorikomplektide elegants seisneb selles, kuidas suhteliselt lihtsad komponendid kombineeritakse võimekaks retromängulahenduseks. Pi ARM-protsessor ei olnud loodud emuleerimiseks, kuid nutika tarkvaratehnika ja riistvara optimeerimise kaudu taastab see mängukogemused süsteemidest, mis kasutasid täiesti erinevat arhitektuuri.
Modulaarne olemus tähendab, et süsteem paraneb järk-järgult. Paremad emulaatori tuumad ilmuvad regulaarselt, lisades täpsust või jõudlust. Püsivaravärskendused täiustavad Pi võimalusi. Saate uuendada üksikuid komponente-kiiremale microSD-kaardile, võimsamale Pi-mudelile, erinevatele kontrolleridele-ilma otsast alustamata.
Kui keegi, kes soovib neid komplekte mõista, mitte lihtsalt kasutada, on peamine arusaam sellest, et emuleerimine hõlmab mitut abstraktsioonikihti, millest igaüks tõlgib sama asja erinevate esituste vahel. Mäng arvab, et see töötab oma algsel riistvaral, kuid tegelikult töötab see seda riistvara simuleeriva tarkvaraga, mis ise töötab täiesti erineval füüsilisel riistvaral. Raspberry Pi piisav töötlemisvõimsus koos aastakümnete jooksul viimistletud avatud- lähtekoodiga emulatsioonitarkvaraga muudab selle tõlke reaalajas mängimiseks- piisavalt kiireks.
See taskukohase riistvara ja küpse tarkvara kombinatsioon selgitab, miks "lihtsalt hankige Pi" on muutunud retromänguhuvilistele tavaliseks nõuandeks. Kuigi need pole täiuslikud,-mõned süsteemid ei ületa oma võimalusi-, saavutab Pi märkimisväärse tasakaalu kulude, jõudluse ja juurdepääsetavuse vahel, et säilitada ja nautida klassikalisi mänge.




