
Jak działa zestaw emulatora Raspberry Pi?
Zestaw emulatora Raspberry Pi przekształca pojedynczy-komputer pokładowy w system do gier z wieloma-konsolami, łącząc określone komponenty sprzętowe z oprogramowaniem emulującym, które naśladuje klasyczny sprzęt do gier. System działa poprzez odrębne warstwy.-Sprzęt fizyczny obsługuje system operacyjny Linux, w którym znajduje się oprogramowanie emulujące, które tłumaczy stary kod gry na instrukcje, które może wykonać Pi.
Zestaw zazwyczaj zawiera samą płytkę Raspberry Pi, kartę microSD-z fabrycznie załadowanym oprogramowaniem do emulacji, takim jak RetroPie, zasilacz, kontrolery i często obudowę z elementami chłodzącymi. Po włączeniu system uruchamia się w EmulationStation, interfejsie graficznym, który umożliwia przeglądanie i uruchamianie gier zapisanych jako pliki ROM.
Architektura trójwarstwowa-
Zrozumienie działania tych zestawów wymaga przyjrzenia się trzem połączonym ze sobą warstwom, z których każda obsługuje określone funkcje.
Warstwa sprzętowa: podstawa
Na dole znajduje się fizyczna płyta Raspberry Pi-najczęściej Pi 4 Model B lub nowszy Pi 5. Pi 4 jest wyposażony w czterordzeniowy-procesor ARM Cortex-A72 Broadcom BCM2711 taktowany zegarem 1,8 GHz, w połączeniu z 2 GB do 8 GB pamięci RAM LPDDR4. Pi 5 podnosi stawkę dzięki rdzeniom Cortex-A76 o częstotliwości 2,4 GHz i ulepszonemu przetwarzaniu grafiki.
Ten sprzęt ma znaczenie, ponieważ emulacja jest kosztowna obliczeniowo. Pi musi symulować zupełnie inne architektury procesorów w czasie rzeczywistym-. Na przykład Super Nintendo korzystało z 16-bitowego procesora Ricoh 5A22 – Pi musi obliczyć, co zrobiłby ten układ, a następnie wyrenderować wyniki za pomocą własnego potoku graficznego.
Procesor graficzny VideoCore obsługuje renderowanie grafiki. W Pi 4 działa z częstotliwością 500 MHz, podczas gdy nowy procesor graficzny VideoCore VII w Pi 5 osiąga 800 MHz. To przyspieszenie GPU ma kluczowe znaczenie dla płynnej rozgrywki. Bez niego procesor ARM miałby trudności z utrzymaniem stałej liczby klatek na sekundę, szczególnie w przypadku systemów obsługujących technologię 3D-, takich jak Nintendo 64 czy PlayStation.
Pamięć masowa odbywa się za pomocą kart microSD, zwykle od 32 GB do 128 GB. ROMy gier (cyfrowe kopie danych kartridża) znajdują się tutaj wraz z systemem operacyjnym. Szybsze karty w klasie UHS-I lub UHS-II skracają czas ładowania i redukują zacinanie się podczas rozgrywki.
Warstwa oprogramowania: stos emulacji
Nad sprzętem pracuje zmodyfikowana wersja systemu operacyjnego Raspberry Pi (opartego na systemie Debian Linux). Ten lekki system operacyjny stanowi podstawę oprogramowania emulującego, minimalizując jednocześnie obciążenie zasobów.
Większość zestawów wykorzystuje RetroPie, dystrybucję oprogramowania zawierającą wszystko, co potrzebne do gier retro. Samo RetroPie nie jest emulatorem,-to zbiór współpracujących ze sobą narzędzi. U jego podstaw leży RetroArch, „frontend” zapewniający ujednolicony interfejs dla wielu rdzeni emulacyjnych.
Te rdzenie są rzeczywistymi emulatorami. Każdy rdzeń naśladuje konkretny system gier. Na przykład rdzeń SNES9x emuluje sprzęt Super Nintendo, podczas gdy PCSX ReARMed obsługuje gry PlayStation. RetroArch ładuje odpowiedni rdzeń w zależności od wybranej gry, następnie przekazuje wejścia kontrolera i zarządza wyjściem audio/wideo.
Relacja między komponentami wygląda następująco: EmulationStation (menu, które widzisz) → RetroArch (framework emulacji) → Poszczególne rdzenie (emulatory-specyficzne dla systemu) → Twoje gry (pliki ROM).
Po wybraniu gry EmulationStation informuje RetroArch, który rdzeń należy załadować i który plik ROM uruchomić. RetroArch inicjuje ten rdzeń, ładuje dane gry i rozpoczyna proces emulacji. Dane wejściowe kontrolera są tłumaczone przez system wejściowy RetroArch na format oczekiwany przez rdzeń.
Warstwa interfejsu: czynienie jej użyteczną
EmulationStation zapewnia wizualny system menu. Skanuje katalogi ROM, wyświetla listy gier uporządkowane według konsoli i wyświetla grafiki pudełek lub zrzuty ekranu (jeśli pobrałeś metadane za pomocą funkcji skrobania). Nawigacja wykorzystuje gamepad lub klawiaturę,-nie jest wymagana mysz.
Konfiguracja odbywa się poprzez zagnieżdżone menu. Możesz dostosować ustawienia wideo, zmienić przypisanie elementów sterujących do-systemu lub-gry, włączyć kody lub skonfigurować funkcje sieciowe. System skrótów klawiszowych umożliwia dostęp do tych opcji w trakcie-gry poprzez naciśnięcie kombinacji przycisków, zazwyczaj Wybierz+Start, aby otworzyć menu RetroArch.
Ta warstwowa konstrukcja oznacza, że możesz wymieniać poszczególne komponenty bez konieczności przebudowywania wszystkiego. Chcesz inny emulator SNES? Zainstaluj inny rdzeń. Wolisz inny interfejs? Wymień EmulationStation, zachowując RetroArch. Potrzebujesz więcej mocy? Uaktualnij swój model Pi i przenieś kartę microSD.
Jak właściwie zachodzi emulacja
Po uruchomieniu gry w ciągu milisekund zachodzi kilka procesów. Rdzeń emulatora ładuje plik ROM do pamięci, analizuje jego strukturę, aby zrozumieć kod i zasoby gry, a następnie rozpoczyna wykonywanie instrukcji.
Najważniejszym wyzwaniem jest tłumaczenie-w czasie rzeczywistym. Procesor oryginalnej konsoli posługiwał się innym zestawem instrukcji niż procesor ARM Pi. Emulator musi zinterpretować każdą instrukcję z oryginalnego sprzętu, dowiedzieć się, co ma robić, a następnie wykonać równoważne operacje na Pi.
Ta interpretacja powoduje narzut. Instrukcja SNES może wymagać 10 lub 20 instrukcji ARM do dokładnej symulacji. Pomnóż to przez miliony instrukcji przetwarzanych na sekundę podczas rozgrywki, a zobaczysz, dlaczego emulacja wymaga znacznej mocy obliczeniowej.
Niektóre optymalizacje pomagają. Rekompilacja dynamiczna (dynarec) tłumaczy bloki oryginalnego kodu na kod ARM--w locie, zapisując wyniki w pamięci podręcznej do ponownego wykorzystania. Jest to znacznie szybsze niż interpretowanie każdej instrukcji indywidualnie. Dobrze-zoptymalizowane rdzenie, takie jak PCSX ReARMed, w dużym stopniu korzystają z technologii Dynarec, dlatego emulacja PlayStation działa płynnie na Pi pomimo względnej złożoności tej konsoli.
Emulacja grafiki przebiega równoległą ścieżką. Oryginalne konsole miały dedykowane układy graficzne z określonymi możliwościami-obsługi ikonek, warstw tła i efektów specjalnych. Emulator musi odtworzyć je w oprogramowaniu, a następnie wyrenderować wyniki za pomocą procesora graficznego Pi przy użyciu OpenGL ES. W tym miejscu przyspieszenie procesora graficznego staje się krytyczne; Samo renderowanie programowe nie jest w stanie utrzymać 60 FPS w przypadku bardziej wymagających systemów.
Audio stawia podobne wyzwania. Emulator symuluje zachowanie układu dźwiękowego, generując przebiegi odpowiadające wyjściu oryginalnego sprzętu. Ten strumień audio jest następnie przesyłany przez podsystem audio Pi, niezależnie od tego, czy jest to dźwięk HDMI, gniazdo słuchawkowe, czy Bluetooth do głośników bezprzewodowych.

Granice wydajności
Nie wszystkie systemy emulują równie dobrze. Pi 4 doskonale obsługuje konsole 8--bitowe i 16-bitowe – NES, SNES, Genesis, Game Boy – wszystkie działają z pełną prędkością i dokładnością. Gry na PlayStation 1 w większości działają dobrze, chociaż niektóre tytuły wykazują spowolnienie w skomplikowanych scenach.
Emulacja Nintendo 64 uderza w bariery wydajności. Architektura tego systemu była niezwykle trudna do dokładnego emulowania nawet na wydajnych komputerach PC. Pi 4 może uruchamiać niektóre gry N64 z grywalną prędkością i zmniejszonymi ustawieniami dokładności, ale wymagające tytuły, takie jak Rogue Squadron, pozostają niestabilne. Pomocne są tutaj ulepszone specyfikacje Pi 5, z raportami o lepszej kompatybilności z N64, choć nadal nie jest ona idealna.
Emulacja Dreamcast jest obiecująca na Pi 5 przy użyciu emulatora Redream. PlayStation 2, GameCube i Wii pozostają w dużej mierze poza zasięgiem-te systemy są po prostu zbyt skomplikowane w stosunku do możliwości Pi. Ich wieloprocesorowa-architektura i wyrafinowana grafika wymagają znacznej mocy, której nawet Pi 5 nie jest w stanie zapewnić w sposób ciągły.
Według testów przeprowadzonych przez Tom's Hardware liczba klatek na sekundę może zauważalnie spaść w przypadku wymagających tytułów PlayStation na Pi 4, a bijatyki wykazują zacinanie się podczas naciskania przycisków. Najnowsze testy porównawcze Pi 4 pokazują płynną wydajność przy odpowiednio zoptymalizowanych tytułach, szczególnie w przypadku gier 2D i mniej wymagających gier 3D.
Pi 5 przynosi wymierne ulepszenia. Niezależne testy wykazały, że Pi 5 obsługuje emulację Game Boy Advance, N64, Dreamcast i PSP z lepszą spójnością w porównaniu do wcześniejszych modeli. Optymalizacje inżynieryjne, takie jak emulacja NUMA, mogą zwiększyć wydajność wielu-rdzeniowych procesorów nawet o 18% w przypadku Pi 5, chociaż takie ulepszenia wymagają modyfikacji jądra wykraczających poza typową konfigurację użytkownika.
System tłumaczenia kontrolerów
Obsługa kontrolerów zasługuje na szczególną uwagę, ponieważ często jest źle rozumiana. Kiedy po raz pierwszy uruchamiasz RetroPie, pojawia się monit o skonfigurowanie kontrolera poprzez naciśnięcie każdego przycisku-D-kierunków pada, przycisków twarzowych, przycisków naramiennych, start/wybór i przycisku „włączenia skrótu klawiszowego”.
Ta początkowa konfiguracja mapuje kontroler fizyczny na system menu EmulationStation i tworzy podstawowy profil dla RetroArch. Następnie RetroArch automatycznie generuje konfiguracje kontrolera dla każdego rdzenia emulatora w oparciu o ten profil.
Ale tu zaczyna się robić interesująco: różne konsole miały różne układy przycisków. Kontroler SNES miał cztery przyciski twarzowe i dwa przyciski na ramionach. Kontroler PlayStation dodał dwa kolejne przyciski naramienne i drążki analogowe. Kontroler Genesis miał początkowo tylko trzy przyciski twarzowe.
Warstwa abstrakcji kontrolera RetroArch odwzorowuje przyciski nowoczesnego kontrolera zgodnie z oczekiwaniami oryginalnego systemu. Jeśli używasz konsoli PlayStation DualShock 4 z 16 przyciskami do grania w grę na NES, która używa tylko 4 przycisków, RetroArch po prostu ignoruje dodatkowe wejścia, chyba że specjalnie zmapowałeś je do funkcji emulatora, takich jak zapisywanie stanów lub przewijanie-do przodu.
Możliwe jest ponowne mapowanie-w każdej grze. Jeśli konkretny tytuł wydaje się niewygodny przy domyślnym mapowaniu, możesz wejść do menu RetroArch podczas rozgrywki i ponownie skonfigurować sterowanie tylko dla tej gry. Zmiany zapisują się automatycznie.
Kontrolery USB działają w trybie plug-i-odtwarzania po wstępnej konfiguracji. Kontrolery Bluetooth wymagają sparowania za pomocą menu konfiguracji Bluetooth RetroPie, które przeprowadza proces wykrywania i łączenia. Po sparowaniu kontrolery Bluetooth łączą się ponownie automatycznie podczas uruchamiania.
Zarządzanie pamięcią masową i plikami
Struktura karty microSD jest prosta, ale ważna do zrozumienia. Partycja /boot zawiera jądro Linuksa i pliki konfiguracyjne rozruchu. Na głównej partycji znajduje się system operacyjny, oprogramowanie RetroPie i dyski ROM.
Pliki ROM znajdują się w /home/pi/RetroPie/roms/, z podkatalogami dla każdego systemu-nes/, snes/, psx/ itp. EmulationStation skanuje te katalogi podczas uruchamiania i wyświetla wszystko, co znajdzie.
Umieszczanie ROM-ów na Pi odbywa się na kilka sposobów. Metoda USB jest najprostsza: utwórz folder o nazwie retropie na dysku flash sformatowanym w systemie FAT32, podłącz go do Pi, poczekaj minutę, aż utworzy strukturę folderów, następnie usuń go i skopiuj ROMy do odpowiednich folderów konsoli na swoim komputerze. Podłącz go ponownie do Pi, poczekaj na transfer i uruchom ponownie komputer.
Transfer sieciowy działa poprzez Sambę (udostępnianie plików Windows). Z innego komputera w sieci możesz uzyskać dostęp do \\\\retropie i bezpośrednio zobaczyć foldery ROM. W razie potrzeby przeciągnij i upuść pliki, a następnie uruchom ponownie EmulationStation, aby odświeżyć listy gier.
Niektóre systemy wymagają plików BIOS-kodu binarnego z oryginalnego sprzętu potrzebnego do dokładnej emulacji. Na przykład emulacja PlayStation wymaga BIOS-u PS1. Pliki te znajdują się w /home/pi/RetroPie/BIOS/. Bez nich wiele gier nie zostanie załadowanych.
Stany zapisu różnią się od-zapisów gry. W-zapisach gier działają dokładnie tak samo, jak na oryginalnym sprzęcie, przechowywanych w danych zapisanych w pamięci ROM. Zapisywanie stanów to funkcje emulatora, które w dowolnym momencie umożliwiają wykonanie migawki stanu całego systemu. Możesz je natychmiast zapisać i wczytać, nawet w grach, które nigdy nie miały funkcji zapisywania. RetroArch przechowuje je w /home/pi/RetroPie/retroarch/states/.
Zarządzanie energią i temperaturą
Dostarczanie mocy wpływa na wydajność w większym stopniu, niż wielu zdaje sobie sprawę. Pi 4 wymaga zasilacza 5 V/3 A (15 W); Pi 5 potrzebuje 5 V/5 A (25 W) do stabilnej pracy, szczególnie przy wymagającej emulacji. Zbyt mała moc powoduje „dławienie”-systemu automatycznie zmniejsza prędkość zegara, aby zapobiec niestabilności, powodującej spowolnienie rozgrywki.
Pi nie ma przycisku zasilania w tradycyjnym tego słowa znaczeniu. Podłączenie zasilania włącza go. Prawidłowe zamknięcie wymaga użycia menu EmulationStation i wybrania opcji „Zamknij system”, która wykonuje czyste zamknięcie przed odcięciem zasilania. Samo odłączenie działającego Pi grozi uszkodzeniem karty microSD.
Ciepło staje się czynnikiem podczas dłuższych sesji gry. Pi 4 generuje znaczną ilość ciepła pod obciążeniem, a testy wykazały, że dławienie termiczne może wystąpić bez odpowiedniego chłodzenia. Zapobiegają temu obudowy z wbudowanymi-wentylatorami lub radiatorami. Pi 5 działa jeszcze cieplej ze względu na zwiększoną wydajność, co sprawia, że aktywne chłodzenie jest praktycznie obowiązkowe dla spójnej emulacji.
Podkręcanie powoduje, że Pi przekracza prędkość standardową, co zapewnia lepszą wydajność. Zwiększa to zarówno pobór mocy, jak i wytwarzanie ciepła. Niedawne optymalizacje taktowania SDRAM-u w Pi 5 pozwoliły uzyskać 10-20% poprawę prędkości przy zegarach fabrycznych, przy ostrożnym podkręcaniu, osiągając wzrost do 32% przy 3,2 GHz. Takie modyfikacje wymagają odpowiedniego chłodzenia i niosą ze sobą ryzyko niestabilności.

Alternatywne platformy emulacyjne
Chociaż dominuje RetroPie, istnieją alternatywy o różnych filozofiach. Recalbox stawia na łatwość obsługi przy większej automatyzacji, ale mniejszym dostosowywaniu. Lakka oferuje lekką,-konsolową obsługę, korzystając z LibreELEC jako podstawy. Batocera zapewnia szeroką obsługę platform i wbudowane-funkcje strumieniowania gier.
Niedawne porównania platform na Pi 5 pokazują, że Batocera oferuje solidną obsługę wielu-konsol z konfiguracją kontrolera dla 8-graczy, podczas gdy Lakka przoduje w prostej emulacji z interfejsem inspirowanym PlayStation. Każda platforma oferuje inne kompromisy pomiędzy prostotą i elastycznością.
Podstawowa architektura pozostaje podobna na różnych platformach.-Podstawa Linuksa, struktura RetroArch i wiele rdzeni emulatorów. Różnice polegają na projekcie interfejsu, zawartych funkcjach i podejściu do konfiguracji. Użytkownicy poszukujący większej kontroli wybierają RetroPie, natomiast ci, którzy oczekują prostoty-i{4}}odtwarzania, mogą preferować Recalbox.
Kiedy coś nie działa
Problemy z wydajnością zazwyczaj mają kilka typowych źródeł. Słabe źródła zasilania powodują przypadkowe awarie lub spowolnienia. Powolne karty microSD powodują zacinanie się podczas ładowania poziomów. Przegrzanie powoduje dławienie, które objawia się nagłym spadkiem liczby klatek na sekundę.
Jeśli konkretna gra nie zostanie załadowana, przyczyną są zwykle nieprawidłowe formaty pamięci ROM. Różne rdzenie emulatorów obsługują różne formaty plików. Gry PlayStation mogą być w formatach .bin/.cue, .chd lub .pbp-nie wszystkie rdzenie obsługują wszystkie formaty. Sprawdzenie dokumentacji rdzenia ujawnia, jakich formatów oczekuje.
Niektóre gry wymagają określonych rdzeni emulatorów. Gry Neo Geo wymagają do działania zarówno pamięci ROM gry, jak i pliku BIOS Neo Geo. ROMy Arcade muszą odpowiadać wersji MAME, której oczekuje emulator.-Użycie zestawu ROM zaprojektowanego dla MAME 0.78 z MAME 2003 Plus nie będzie działać.
Problemy z kontrolerem często wynikają z konfiguracji klawisza skrótu. Jeśli przyciski w grach wydają się nie reagować, dzieje się tak często dlatego, że przycisk włączania skrótu jest naciśnięty jednocześnie, co powoduje przejście RetroArch w tryb, w którym oczekuje na polecenia emulatora, zamiast przekazywać dane wejściowe do gry.
Często zadawane pytania
Czy do emulacji mogę użyć dowolnego modelu Raspberry Pi?
Chociaż technicznie każde Pi działa, Pi 4 z co najmniej 2 GB pamięci RAM jest praktycznym minimum zapewniającym dobrą wydajność w większości systemów. Wcześniejsze modele radziły sobie ze wszystkim, co wykraczało poza konsole 8-bitowe. Pi Zero jest zbyt słaby, aby zapewnić wygodną emulację systemów wykraczających poza erę NES/Game Boy.
Czy potrzebuję oryginalnych kartridży z grami, aby legalnie korzystać z zestawów emulatorów?
Prawa autorskie dotyczące ROM-ów różnią się w zależności od jurysdykcji. Najbezpieczniejszym podejściem jest korzystanie wyłącznie z gier, których osobiście posiadasz, fizyczne kopie, chociaż egzekwowanie prawa i przejrzystość prawa różnią się znacznie w zależności od regionu. RetroPie nie zawiera treści chronionych prawem autorskim.-Musisz dostarczyć własne pliki gry.
Czy mogę dodawać gry po wstępnej konfiguracji?
Tak, dodanie pamięci ROM jest proste przy użyciu transferu USB lub udostępniania plików w sieci. Umieść pliki ROM w odpowiednim folderze konsoli w katalogu /home/pi/RetroPie/roms/, a następnie uruchom ponownie EmulationStation, aby odświeżyć listę gier.
Ile miejsca potrzebuję?
Karta microSD o pojemności 32 GB mieści setki gier 8--bitowych i 16-bitowych. Gry na PlayStation i N64 zajmują więcej miejsca – około 500 MB na grę na PS1, 10–50 MB na tytuły na N64. Karta o pojemności 64 GB zapewnia wygodne miejsce na zróżnicowaną bibliotekę w wielu systemach.
Patrząc na cały system
Elegancja zestawów emulatorów Raspberry Pi polega na tym, jak stosunkowo proste komponenty łączą się w wydajne rozwiązanie do gier retro. Procesor ARM w Pi nie został zaprojektowany do emulacji, jednak dzięki sprytnej inżynierii oprogramowania i optymalizacji sprzętu odtwarza wrażenia z gier z systemów korzystających z zupełnie innych architektur.
Modułowy charakter oznacza, że system jest udoskonalany stopniowo. Regularnie pojawiają się lepsze rdzenie emulatorów, zwiększając dokładność lub wydajność. Aktualizacje oprogramowania sprzętowego zwiększają możliwości Pi. Możesz uaktualnić poszczególne komponenty-szybszą kartę microSD, mocniejszy model Pi, różne kontrolery-bez zaczynania od nowa.
Dla kogoś, kto chce zrozumieć, a nie tylko używać tych zestawów, kluczowym spostrzeżeniem jest to, że emulacja obejmuje wiele warstw abstrakcji, z których każda przekłada się na różne reprezentacje tej samej rzeczy. Gra myśli, że działa na oryginalnym sprzęcie, ale w rzeczywistości działa na oprogramowaniu symulującym ten sprzęt, który z kolei działa na zupełnie innym sprzęcie fizycznym. Wystarczająca moc obliczeniowa Raspberry Pi w połączeniu z oprogramowaniem do emulacji typu open-udoskonalanym przez dziesięciolecia sprawia, że to tłumaczenie jest wystarczająco szybkie, aby umożliwić grę-w czasie rzeczywistym.
To połączenie niedrogiego sprzętu i dojrzałego oprogramowania wyjaśnia, dlaczego „po prostu kup Pi” stało się powszechną radą dla entuzjastów gier retro. Chociaż nie są one doskonałe,-niektóre systemy przekraczają ich możliwości-, Pi zapewnia niezwykłą równowagę między kosztami, wydajnością i dostępnością, co pozwala zachować klasyczne gry i cieszyć się nimi.




