
Hogyan működik a Raspberry Pi emulátorkészlet?
A Raspberry Pi emulátorkészlet az egy-fedélzeti számítógépet több-konzolos játékrendszerré alakítja azáltal, hogy bizonyos hardverkomponenseket kombinál a klasszikus játékhardvert utánzó emulációs szoftverrel. A rendszer különálló rétegeken keresztül működik,{3}}a fizikai hardver egy Linux operációs rendszert futtat, amely emulációs szoftvert tartalmaz, amely lefordítja a régi játékkódot a Pi által végrehajtható utasításokká.
A készlet jellemzően magát a Raspberry Pi kártyát, egy emulációs szoftverrel (például RetroPie){0}}előre telepített microSD-kártyát, tápegységet, vezérlőket és gyakran hűtőelemekkel ellátott tokot tartalmaz. Amikor bekapcsolja a rendszert, elindul az EmulationStation, egy grafikus felület, amely lehetővé teszi a ROM-fájlokként tárolt játékok böngészését és elindítását.
A háromrétegű{0}} architektúra
A készletek működésének megértéséhez három egymáshoz kapcsolódó rétegre van szükség, amelyek mindegyike meghatározott funkciókat lát el.
Hardverréteg: Az alapítvány
Alul található a fizikai Raspberry Pi kártya-, leggyakrabban a Pi 4 Model B vagy az újabb Pi 5. A Pi 4 négymagos Broadcom BCM2711 négy-magos ARM Cortex-A72 processzorral rendelkezik, amely 1,8 GHz-en fut, és 2 GB–8 GB RAM-mal párosul. A Pi 5 2,4 GHz-es Cortex{14}}A76 magokkal és továbbfejlesztett grafikus feldolgozással javítja a teljesítményt.
Ez a hardver számít, mert az emuláció számítási szempontból drága. A Pi-nek teljesen különböző processzorarchitektúrákat kell szimulálnia valós időben-. Egy Super Nintendo például egy 16-bites Ricoh 5A22 processzort használt – a Pi-nek ki kell számolnia, hogy mit csinált volna a chip, majd a saját grafikus folyamatán keresztül rendereli az eredményeket.
A VideoCore GPU kezeli a grafikus megjelenítést. A Pi 4-en 500 MHz-en fut, míg a Pi 5 új VideoCore VII GPU-ja eléri a 800 MHz-et. Ez a GPU-gyorsítás kritikus fontosságú a gördülékeny játékmenethez. Enélkül az ARM CPU nehezen tudná fenntartani a konzisztens képkockasebességet, különösen a 3D{8}}kompatibilis rendszerekkel, mint például a Nintendo 64 vagy a PlayStation.
A tárhely microSD-kártyákon keresztül történik, általában 32 GB és 128 GB között. A játék ROM-ok (a kazettaadatok digitális másolatai) itt élnek az operációs rendszer mellett. A gyorsabb UHS-I vagy UHS-II besorolású kártyák javítják a betöltési időt és csökkentik a játék közbeni akadozást.
Szoftverréteg: Az emulációs verem
A hardver felett a Raspberry Pi OS módosított verziója fut (Debian Linux alapú). Ez a könnyű operációs rendszer biztosítja az emulációs szoftver alapját, miközben minimálisra csökkenti az erőforrás-ráfordítást.
A legtöbb készlet RetroPie szoftvert használ, amely mindent tartalmaz, ami a retro játékokhoz szükséges. Maga a RetroPie nem emulátor,{1}}hanem olyan eszközök gyűjteménye, amelyek együtt működnek. A középpontjában a RetroArch található, egy "frontend", amely egységes felületet biztosít több emulációs mag számára.
Ezek a magok a tényleges emulátorok. Mindegyik mag egy adott játékrendszert utánoz. Például az SNES9x mag a Super Nintendo hardvert emulálja, míg a PCSX ReARMed PlayStation játékokat kezel. A RetroArch a kiválasztott játék alapján betölti a megfelelő magot, majd átadja a vezérlő bemeneteit, és kezeli az audio/video kimenetet.
Az összetevők közötti kapcsolat így néz ki: EmulationStation (a megjelenő menü) → RetroArch (az emulációs keretrendszer) → Egyedi magok (rendszer--specifikus emulátorok) → Az Ön játékai (ROM-fájlok).
Amikor kiválaszt egy játékot, az EmulationStation közli a RetroArch-val, hogy melyik magot kell betölteni, és melyik ROM-fájlt kell futtatni. A RetroArch inicializálja ezt a magot, betölti a játékadatokat, és elindítja az emulációs folyamatot. A vezérlő bemeneteit a RetroArch beviteli rendszere fordítja le a mag által elvárt formátumba.
Interfészréteg: használhatóvá tétele
Az EmulationStation biztosítja a vizuális menürendszert. Átvizsgálja a ROM-könyvtárakat, megjeleníti a konzolok szerint rendezett játéklistákat, és megjeleníti a doboz grafikáját vagy képernyőképeit (ha letöltötte a metaadatokat a kaparási funkcióján keresztül). A navigációhoz játékvezérlő vagy billentyűzet szükséges,{2}}nincs szükség egérre.
A konfiguráció beágyazott menükön keresztül történik. Módosíthatja a videóbeállításokat, átszerkesztheti a vezérlőket-rendszerenként vagy-játékonként, engedélyezheti a csalásokat, vagy konfigurálhatja a hálózati funkciókat. A gyorsbillentyű-rendszer lehetővé teszi, hogy ezeket a lehetőségeket játék közben -egy gombkombináció megnyomásával érje el. Általában a Select+Start gombbal nyithatja meg a RetroArch menüt.
Ez a réteges kialakítás azt jelenti, hogy az egyes alkatrészeket anélkül cserélheti fel, hogy mindent újra kellene építeni. Más SNES emulátort szeretne? Telepítsen egy másik magot. Más frontendet szeretne? Cserélje ki az EmulationStation-t a RetroArch megtartása mellett. Több teljesítményre van szüksége? Frissítse Pi modelljét, és vigye át microSD-kártyáját.
Hogyan történik az emuláció valójában
Egy játék elindításakor ezredmásodpercek alatt több folyamat is lezajlik. Az emulátor mag betölti a ROM fájlt a memóriába, elemzi a szerkezetét, hogy megértse a játék kódját és eszközeit, majd megkezdi az utasítások végrehajtását.
A valós idejű-fordítás a fő kihívás. Az eredeti konzol CPU-ja más utasításkészletet beszélt, mint a Pi ARM processzora. Az emulátornak minden utasítást értelmeznie kell az eredeti hardverből, ki kell találnia, hogy mit kell tennie, majd egyenértékű műveleteket kell végrehajtania a Pi-n.
Ez az értelmezés többletköltséget termel. Egy SNES utasításhoz 10 vagy 20 ARM utasításra lehet szükség a pontos szimulációhoz. Szorozza meg ezt a játék közben másodpercenként feldolgozott utasítások millióival, és meglátja, hogy az emuláció miért igényel jelentős feldolgozási teljesítményt.
Néhány optimalizálás segít. A dinamikus újrafordítás (dynarec) az eredeti kód blokkjait menet közben ARM-kódra fordítja, gyorsítótárazva az eredményeket újrafelhasználás céljából. Ez sokkal gyorsabb, mintha minden utasítást külön-külön értelmeznénk. A jól-optimalizált magok, mint például a PCSX ReARMed, széles körben használják a dynarec-et, ezért a PlayStation emuláció zökkenőmentesen fut a Pi-n a konzol viszonylagos összetettsége ellenére.
A grafikus emuláció párhuzamos utat követ. Az eredeti konzolok dedikált grafikus chipekkel rendelkeztek, meghatározott képességekkel-sprite-kezeléssel, háttérrétegekkel és speciális effektusokkal. Az emulátornak újra létre kell hoznia ezeket a szoftverben, majd az eredményeket a Pi GPU-ján keresztül kell megjelenítenie az OpenGL ES használatával. Itt válik kritikussá a GPU-gyorsítás; A szoftveres renderelés önmagában nem képes fenntartani a 60 FPS-t igényesebb rendszerek esetén.
Az audio hasonló kihívásokat jelent. Az emulátor szimulálja a hangchip viselkedését, és olyan hullámformákat generál, amelyek megfelelnek az eredeti hardver kimenetének. Ez a hangfolyam azután a Pi audio alrendszerén keresztül jut el, legyen szó HDMI hangról, fejhallgató-csatlakozóról vagy Bluetooth-ról a vezeték nélküli hangszórókhoz.

Teljesítmény határai
Nem minden rendszer emulál egyformán jól. A Pi 4 kiválóan kezeli a 8-bites és a 16 bites konzolokat – a NES, a SNES, a Genesis, a Game Boy mind teljes sebességgel, pontosan fut. A PlayStation 1 játékok többnyire jól működnek, bár egyes címek lassulást mutatnak az összetett jelenetek során.
A Nintendo 64 emuláció eléri a teljesítmény falait. A rendszer architektúráját köztudottan nehéz volt pontosan emulálni még nagy teljesítményű PC-ken is. A Pi 4 képes néhány N64-es játékot lejátszható sebességgel, csökkentett pontosságú beállításokkal futtatni, de az olyan igényes játékok, mint a Rogue Squadron, továbbra is szaggatottak maradnak. A Pi 5 továbbfejlesztett specifikációi segítenek itt, a jobb N64-kompatibilitásról szóló jelentések, bár még mindig nem tökéletes.
A Dreamcast emuláció ígéretesnek tűnik a Pi 5-ön a Redream emulátor használatával. A PlayStation 2, a GameCube és a Wii nagyrészt elérhetetlenek maradnak,-ezek a rendszerek egyszerűen túl bonyolultak a Pi képességeihez képest. Több{5}processzoros architektúrájuk és kifinomult grafikájuk olyan jelentős lóerőt igényel, amelyet még a Pi 5 sem képes folyamatosan biztosítani.
A Tom's Hardware tesztjei szerint a képkockasebesség észrevehetően csökkenhet az igényes PlayStation játékokkal a Pi 4-en, a verekedős játékok pedig akadozást mutatnak a gombnyomások közben. A Pi 4 legutóbbi benchmarkjai zökkenőmentes teljesítményt mutatnak megfelelően optimalizált címekkel, különösen a 2D és a kevésbé igényes 3D játékokhoz.
A Pi 5 mérhető fejlesztéseket hoz. A független tesztelés azt mutatja, hogy a Pi 5 a Game Boy Advance, az N64, a Dreamcast és a PSP emulációt jobb konzisztenciával kezeli a korábbi modellekhez képest. Az olyan mérnöki optimalizálások, mint a NUMA emuláció, akár 18%-kal is növelhetik a többmagos teljesítményt a Pi 5-ön, bár az ilyen módosítások a szokásos felhasználói konfigurációkon túlmenően a kernel módosítását teszik szükségessé.
A vezérlő fordítórendszer
A vezérlők támogatása külön figyelmet érdemel, mert gyakran félreértik. Amikor először indítja el a RetroPie-t, megkéri, hogy konfiguráljon egy vezérlőt az egyes gombok -D-pad irányok, arcgombok, vállgombok, start/kiválasztás és a "gyorsbillentyű engedélyezése" gomb megnyomásával.
Ez a kezdeti konfiguráció leképezi a fizikai vezérlőt az EmulationStation menürendszerére, és létrehoz egy alapprofilt a RetroArch számára. A RetroArch ezután automatikusan létrehozza a vezérlőkonfigurációkat minden emulátormaghoz az adott profil alapján.
De ez itt válik érdekessé: a különböző konzolokon eltérő gombelrendezések voltak. Egy SNES vezérlőnek négy arcgombja és két vállgombja volt. Egy PlayStation kontroller további két vállgombot és analóg botokat adott hozzá. Egy Genesis kontrollernek kezdetben csak három arcgombja volt.
A RetroArch vezérlő absztrakciós rétege leképezi a modern vezérlő gombjait az eredeti rendszer elvárásainak megfelelően. Ha 16 gombos PlayStation DualShock 4-et használ egy olyan NES-játékhoz, amelyben csak 4 gomb volt, a RetroArch egyszerűen figyelmen kívül hagyja az extra bemeneteket, hacsak nem rendelte hozzá azokat az emulátor funkciókhoz, például a mentési állapotokhoz vagy a gyors-előretekeréshez.
Játékonkénti átrendezés lehetséges. Ha egy adott cím kínosnak tűnik az alapértelmezett hozzárendeléssel, akkor játék közben beléphet a RetroArch menübe, és újrakonfigurálhatja a vezérlőket csak az adott játékhoz. A változtatások automatikusan mentésre kerülnek.
Az USB-vezérlők a kezdeti konfigurálás után működnek a plug-and{0}}and-play{1}}ben. A Bluetooth-vezérlők párosítást igényelnek a RetroPie Bluetooth beállítási menüjében, amely végigvezeti a felfedezést és a csatlakozást. A párosítás után a Bluetooth-vezérlők rendszerindításkor automatikusan újracsatlakoznak.
Tárolás és fájlkezelés
A microSD-kártya felépítése egyszerű, de fontos megérteni. A /boot partíció tartalmazza a Linux kernelt és a rendszerindító konfigurációs fájlokat. A fő partíció tartalmazza az operációs rendszert, a RetroPie szoftvert és a ROM-okat.
A ROM-fájlok a /home/pi/RetroPie/roms/ könyvtárban találhatók, minden rendszerhez tartozó alkönyvtárral -nes/, snes/, psx/ stb. Az EmulationStation indításkor megvizsgálja ezeket a könyvtárakat, és bármit megjelenít, amit talál.
A ROM-ok töltése a Pi-re többféleképpen történik. Az USB módszer a legegyszerűbb: FAT32 formátumú flash meghajtón hozzon létre egy retropie nevű mappát, csatlakoztassa a Pi-hez, várjon egy percet, amíg létrehozza a mappastruktúrát, majd távolítsa el, és másolja a ROM-okat a számítógép megfelelő konzolmappáiba. Csatlakoztassa vissza a Pi-hez, várja meg az átvitelt, és indítsa újra.
A hálózati átvitel a Sambán keresztül működik (Windows fájlmegosztás). A hálózaton lévő másik számítógépről elérheti a \\\\retropie fájlt, és közvetlenül megtekintheti a ROM mappáit. Szükség szerint húzza át a fájlokat, majd indítsa újra az EmulationStation alkalmazást a játéklisták frissítéséhez.
Egyes rendszerek a pontos emulációhoz szükséges BIOS-fájlok{0}}bináris kódját az eredeti hardverből. A PlayStation emulációhoz például a PS1 BIOS-ra van szüksége. Ezek a fájlok a /home/pi/RetroPie/BIOS/ mappába kerülnek. Nélkülük sok játék nem töltődik be.
A mentési állapotok eltérnek a{0}}játékbeli mentésektől. A játékbeli mentések- pontosan úgy működnek, mint az eredeti hardveren, a ROM mentési adataiban tárolva. A mentési állapotok olyan emulátorfunkciók, amelyek bármikor pillanatképet készítenek a teljes rendszerállapotról. Ezeket azonnal mentheti és betöltheti, még olyan játékokban is, amelyekben soha nem volt mentési funkció. A RetroArch ezeket a /home/pi/RetroPie/retroarch/states/ mappában tárolja.
Teljesítmény- és hőkezelés
Az energiaellátás jobban befolyásolja a teljesítményt, mint azt sokan gondolják. A Pi 4-hez 5V/3A (15W) tápegység szükséges; a Pi 5-nek 5V/5A (25W) szükséges a stabil működéshez, különösen igényes emuláció esetén. Az alulteljesítmény lelassul{10}}a rendszer automatikusan lecsökkenti az órajelet, hogy megakadályozza az instabilitást, ami lassulást eredményez a játék során.
A Pi-nek nincs hagyományos értelemben vett bekapcsológombja. Az áramellátás bekapcsolása bekapcsol. A megfelelő leállításhoz az EmulationStation menüjében ki kell választani a „Shutdown System” elemet, amely tiszta leállítást hajt végre az áramellátás leállítása előtt. Ha egyszerűen kihúzza a működő Pi-t, azzal a kockázattal jár, hogy megsérül a microSD-kártya.
Hosszabb játékmenet során a hő tényezővé válik. A Pi 4 terhelés alatt jelentős hőt termel, a tesztek azt mutatják, hogy megfelelő hűtés nélkül is előfordulhat termikus fojtás. A beépített -ventilátorral vagy hűtőbordával rendelkező tokok ezt megakadályozzák. A Pi 5 a megnövekedett teljesítménye miatt még melegebben fut, így az aktív hűtés gyakorlatilag kötelező a következetes emulációhoz.
Az overclocking a jobb teljesítmény érdekében túllépi a Pi-t a normál sebességén. Ez növeli a teljesítményfelvételt és a hőteljesítményt is. A Pi 5 SDRAM időzítésének közelmúltbeli optimalizálása 10-20%-os sebességnövekedést ért el az alap órajeleknél, a gondos túlhajtás pedig akár 32%-os növekedést is elért 3,2 GHz-en. Az ilyen módosítások megfelelő hűtést igényelnek, és az instabilitás kockázatával járnak.

Alternatív emulációs platformok
Míg a RetroPie dominál, léteznek alternatívák különböző filozófiákkal. A Recalbox előnyben részesíti a könnyű használatot, több automatizálással, de kevesebb testreszabással. A Lakka könnyű, konzolszerű{2}}élményt kínál a LibreELEC használatával. A Batocera széleskörű platformtámogatást és beépített{4}}játék-streamelési lehetőségeket biztosít.
A Pi 5 legújabb platform-összehasonlításai azt mutatják, hogy a Batocera szilárd több-konzoltámogatást kínál 8-lejátszós vezérlőkonfigurációval, míg a Lakka az egyszerű emulációban jeleskedik PlayStation-ihlette felülettel. Minden platform más-más kompromisszumot köt az egyszerűség és a rugalmasság között.
Az alapvető architektúra hasonló marad minden platformon{0}}Linux alap, RetroArch keretrendszer és több emulátormag. A különbségek az interfész kialakításában, a benne foglalt szolgáltatásokban és a konfigurációs megközelítésekben rejlenek. Azok a felhasználók, akik nagyobb irányításra vágynak, inkább a RetroPie-t választják, míg azok, akik egyszerű csatlakoztatást és lejátszást szeretnének, a Recalboxot részesíthetik előnyben.
Amikor a dolgok nem működnek
A teljesítményproblémák általában néhány gyakori forrásból erednek. Az alultáplált tápok véletlenszerű összeomlásokat vagy lassulást okoznak. A lassú microSD-kártyák akadozást okoznak a vízszintes terhelés során. A túlmelegedés fojtást vált ki, ami a keret hirtelen leesésében nyilvánul meg.
Ha egy adott játék nem töltődik be, akkor általában a rossz ROM formátumok a felelősek. A különböző emulátormagok különböző fájlformátumokat támogatnak. A PlayStation játékok .bin/.cue, .chd vagy .pbp formátumúak lehetnek,{6}}nem minden mag olvas minden formátumot. A mag dokumentációjának ellenőrzése megmutatja, hogy mely formátumokra számít.
Egyes játékokhoz speciális emulátormagok szükségesek. A Neo Geo játékok működéséhez szükséges a játék ROM és a Neo Geo BIOS fájl is. Az arcade ROM-oknak meg kell egyeznie az emulátor által elvárt MAME verzióval,-a MAME 0.78-hoz tervezett ROM-készlet MAME 2003 Plus-szal nem fog működni.
A vezérlővel kapcsolatos problémák gyakran a gyorsbillentyű-konfigurációra vezethetők vissza. Ha úgy tűnik, hogy a gombok nem reagálnak a játékokban, az gyakran azért van, mert a gyorsbillentyű engedélyezése gombját egyszerre nyomják meg, így a RetroArch olyan módba kerül, ahol emulátorparancsokra vár, ahelyett, hogy bemeneteket adna át a játéknak.
Gyakran Ismételt Kérdések
Használhatok bármilyen Raspberry Pi modellt emulációhoz?
Bár műszakilag bármelyik Pi működik, a legalább 2 GB RAM-mal rendelkező Pi 4 a gyakorlati minimum a jó teljesítményhez a legtöbb rendszerrel. A korábbi modellek a 8 bites konzolokon kívül bármivel küzdenek. A Pi Zero túl alacsony teljesítményű a NES/Game Boy korszakon túli rendszerek kényelmes emulálásához.
Szükségem van eredeti játékkazettákra az emulátorkészletek legális használatához?
A ROM-okra vonatkozó szerzői jogi törvények joghatóságonként eltérőek. A legbiztonságosabb megközelítés az, ha csak azokat a játékokat használod, amelyeknek fizikai másolatai vannak, bár a végrehajtás és a jogi egyértelműség régiónként jelentősen eltér. A RetroPie nem tartalmaz szerzői joggal védett tartalmat, -meg kell adnia saját játékfájljait.
Hozzáadhatok játékokat a kezdeti beállítás után?
Igen, a ROM-ok hozzáadása egyszerű USB-átvitellel vagy hálózati fájlmegosztással. Helyezze el a ROM fájlokat a /home/pi/RetroPie/roms/ megfelelő konzolmappájába, majd indítsa újra az EmulationStation alkalmazást a játéklista frissítéséhez.
Mennyi tárhelyre van szükségem?
A 32 GB-os microSD-kártyán több száz 8{5}}bites és 16 bites játék tárolható. A PlayStation és az N64 játékok több helyet foglalnak el – körülbelül 500 MB PS1 játékonként, 10–50 MB N64 játékok esetén. A 64 GB-os kártya kényelmes helyet biztosít egy változatos könyvtár számára több rendszeren keresztül.
A teljes rendszert nézve
A Raspberry Pi emulátorkészletek eleganciája abban rejlik, hogy a viszonylag egyszerű alkatrészek hogyan egyesülnek egy alkalmas retro játékmegoldássá. A Pi ARM processzorát nem emulációra tervezték, de az okos szoftverfejlesztés és a hardveroptimalizálás révén teljesen más architektúrát használó rendszerek játékélményét hozza létre.
A moduláris jelleg azt jelenti, hogy a rendszer fokozatosan javul. A jobb emulátormagok rendszeresen megjelennek, növelve a pontosságot vagy a teljesítményt. A firmware-frissítések javítják a Pi képességeit. Az egyes összetevőket -gyorsabb microSD-kártyára, erősebb Pi-modellre, különböző vezérlőkre-újrakezdés nélkül frissítheti.
Ha valaki megérteni szeretné, nem pedig csak használni szeretné ezeket a készleteket, a kulcsfontosságú betekintés az, hogy az emuláció több absztrakciós réteget foglal magában, amelyek mindegyike ugyanannak a dolognak különböző ábrázolásai között történik. A játék azt hiszi, hogy az eredeti hardverén fut, de valójában olyan szoftveren fut, amely ezt a hardvert szimulálja, amely maga teljesen más fizikai hardveren fut. A Raspberry Pi elegendő feldolgozási teljesítménye, valamint az évtizedek óta finomított nyílt-forráskódú emulációs szoftver elég gyorssá teszi ezt a fordítást a valós idejű-játékokhoz.
A megfizethető hardver és a kiforrott szoftver kombinációja megmagyarázza, hogy a „csak szerezz be egy Pi-t” miért vált általános tanácstá a retró játékrajongóknak. Bár nem tökéletes,-egyes rendszerek túllépik a képességeit-, a Pi figyelemre méltó egyensúlyt teremt a költségek, a teljesítmény és a hozzáférhetőség között a klasszikus játékok megőrzése és élvezete érdekében.




