MiSTer FPGA: desítky starých počítačů a konzolí v malé krabičce (recenze)
Lidi pohybující se v komunitě kolem starých počítačů lze rozdělit podle různých os a do různých kategorií.
Potkáte zde sběratele, kteří by si každý počítač nejradši dali samostatně do vitrínky, ideálně s cedulkou detailně popisující historii konkrétního kusu od chvíle, kdy se zrodil v hlavě konstruktéra po moment, kdy jej vyřazovali v místním JZD z evidence nadojeného mléka, protože buď JZD šlo do krachu, nebo naopak konečně zbyly peníze na nějaké PC. Je jim přitom úplně jedno, zda je konkrétní kus funkční, nebo ne, protože při sbírce čítající stovky kusů stejně není čas počítač zapnout. Důležitější je, zda má čitelné výrobní číslo, byla-li k němu originální krabice a nějaká dokumentace typu účtenka, záruční list atd.
Pak jsou tu hardwaristi. Někteří umí cokoliv opravit a funkční počítač je vlastně vůbec nezajímá. Dostanou torzo dřevotřískové bedny z níž koukají na všechny strany dráty, projdou schémata, vybalí osciloskop, kufr se součástkami, pájecí stanici, odsávačku, celý večer s tím kouzlí a výsledkem je funkční IQ-151. Jiná sorta hardwaristů, která navrhuje a realizuje nové periferie pro staré počítače. Díky nim umí osmibitové počítače číst data z a zapisovat na paměťové karty, či se připojují k Internetu.
Existují ale i softwaristi. Někteří hledají software starý, digitalizují ho z kazet, dělají obrazy disket a zpřístupňují jej online. Jiní tvoří software nový - nové systémy, opravy systémů starých, nový užitkový software, nové hry, novou tvorbu v rámci demoscény.
A na závěr tu samozřejmě jsou hráči, které na starých počítačích zajímají hlavně staré hry a víc už nic moc. Jsou schopni hodinu popisovat výhody tohohle joysticku proti támhletomu, vidí zpoždění převodníku SCART na HDMI, protože jejich oblíbená hra reaguje o pár obrazových řádků pozdě, staré hry recenzují, kreslí mapy a píší návody na nejsnazší průchod.
Existují jedinci patřící do více skupin či jedinci, kteří se vymykají jakémukoliv zařazení, nicméně ať už se člověk identifikuje, jak jen chce, nakonec narazí všichni na společný problém: ten hardware je čtyřicet let starý, plánovanou životnost má za sebou již několikanásobně a stále častěji a stále definitivněji odchází do křemíkových věčných lovišť.
ZX Spectrum a jeden z jeho moderních klonů. Zdroj: Wikipedia, DIIT
Kromě útěku k softwarové emulaci na moderních počítačích se tento problém řešil v průběhu věků hlavně tvorbou klonů počítačů a herních konzolí a jejich reimplementací novými způsoby. Někde bylo možné postavit stejný hardware s novější součástkovou základnou, někde se kvůli zákaznickým čipům, k nimž měl dokumentaci jen sám autor, museli smířit s kanibalizováním nefunkčních strojů a přendaváním těchto čipů do jinak nově navržených počítačů. Jak ale šel pokrok kupředu, objevila se dvě nová řešení:
- Emulace částí původního hardware rychlým jednočipem - například ARMSID - náhrada zvukového čipu SID v Commodore 64, která je pinově kompatibilní s originálem, ale jde přitom o čistě softwarovou implementaci běžící na ARM Cortex M4.
- Implementace v programovatelném hradlovém poli (FPGA) - tady jako příklad lze uvést třeba ZX Spectrum Next.
MiSTer FPGA je řešení z druhé skupiny, ale dotažené takřka do maxima možného.
MiSTer při pohledu shora, 200 kolumbijských pesos pro srovnání velikosti. Zdroj: DIIT
Jedná se o open-source projekt založený na vývojářské desce DE10-Nano od tajvanské společnosti Terasic. Její hlavní komponentou je Altera Cyclone V, SoC obsahující FPGA s 110 tisíci logických elementů a dvoujádrový ARM Cortex-A9 taktovaný na 800 MHz. K této desce lze přes GPIO připojit řadu dalších, již pro konkrétní účely MiSTeru vytvořených desek, které zajišťují připojení periferií, rozšíření paměti, RTC, zvuk, analogový obrazový výstup a další. Celek si může každý poskládat, jak uzná sám za vhodné, nebo lze koupit již různé hotové konfigurace, já zvolil vcelku osvědčený model Ultimate MiSTer sestavovaný portugalskou společností RETRoBYTe.
MiSTer menu. Obrázek na pozadí se při každém startu náhodně vybírá ze složky na kartě. Zdroj: DIIT
Po připojení periferií a napájení nastartuje MiSTer do menu a ta pravá legrace začíná. Pokud to z titulku článku a mého obsáhlého úvodu nebylo doposud jasné, řeknu to přímo: MiSTer se umí chovat jako více než šedesát počítačů, takřka čtyřicet herních konzolí a přes sto deset arkádových automatů. Stačí z menu vybrat konkrétní model s konkrétní konfigurací, ARMová jádra zapíší do FPGA konkrétní core modul a po restartu vám nastartuje vybraný počítač/konzole/arkáda. Žádná emulace, skutečně běžící hardware, který se během sekundy materializuje v malém kvádru na vašem stole.
Seznam jader pro FPGA lze najít na webu projektu, nemá smysl tady ty stovky položek vypisovat, ale alespoň některé zásadní počítače a konzole mi přesto zmínit dovolte:
Počítače
- Acorn Atom, Electron, Archimedes
- Amstrad CPC a PCW
- Apple I, II, Macintosh Plus
- Atari 800, 800XL, 65XE, 130XE, ST, STe
- Commodore C16, C64, C128, PET 2001, VIC-20, Amiga 500, 600, 1200, 4000, CD32
- Sinclair ZX-81, ZX Spectrum, ZX Spectrum Next, QL
- Tesla PMD85, Ondra SPO-186
- PC-XT, PC 486
Konzole
- Atari 2600, 5200, 7800, Lynx
- Nintendo NES, SNES, N64, GameBoy, GameBoy Advance
- Sega Master System, GameGear, MegaDrive, MegaCD, Saturn
- Sony PlayStation
Proti softwarové emulaci je zde významně větší věrnost chování vůči originálu. Hardwaristi zjistili, jak funguje původní hardware, popsali to v jazyce VHDL a zapsalo se to do FPGA. Nebylo nutné bojovat s operačním systémem hostujícího počítače, se specifiky konkrétního programovacího jazyka, s neustále se měnícími knihovnami.
MiSTer - porty, sloty, konektory. Zdroj: DIIT
Zůstává přitom stále možnost měnit konfiguraci - vybírat si specifika konkrétního počítače, nastavovat velikost operační paměti, připojovat virtuální kazeťáky, disketové mechaniky či pevné disky. Část těchto I/O operací obstarávají ARMová jádra, ale samotný počítač či konzole běží přímo ve FPGA. Některá jádra využívají již dříve existující FPGA implementace konkrétních čipů či celých počítačů, například jádro ZX Spectrum Next se proti tomu v samotném ZX Spectru Next liší minimálně.
MiSTer v noci. Zdroj: DIIT
Jelikož paralelně s FPGA běžícím počítačem zvolené konfigurace v MiSTeru stále běží i zmiňovaná ARMová jádra, lze je použít k věcem, které jsou na původním hardware minimálně problematické, například k pohodlnému přenosu dat po síti. MiSTer umí FTP i SFTP, k Linuxu na něm běžícímu se lze přihlásit přes SSH, dokonce na něm autoři nechali i tak užitečný program, jako je Midnight Commander, takže přenosy souborů z PC na MiSTer, z MiSTeru do PC i z karty na kartu v rámci MiSTeru jsou opravdu snadné. To není jako lepit nový přítlačný molitan do Sinclair Microdrive a pak jeho obsah rychlostí 9600 bps posílat sériákem do PC.
I kvůli tomu se základní 32GB microSD karta ukázala rychle jako nedostatečná - jen diskový obraz pro Atari ST, plný her, programů, dem a dalších produktů demoscény, má 7 GB a to je jen jeden z desítek strojů, které je nutné daty zásobit. Naštěstí výměna karty za větší je triviální záležitost - stačí si stáhnout z GitHubu migrační skript, nahrát ho do MiSTeru, do USB připojit čtečku s novou kartou, skript z menu spustit a pak už jen sledovat jeho činnost. Sám kartu přerozdělí, naformátuje, nahraje všechna data z původní včetně firmware samotného MiSTeru - do ničeho není nutné manuálně zasahovat.
Mám MiSTer dva týdny a pořídil jsem si ho zejména jako řešení nedostatku času a prostoru. Mé počítače jsou uskladněny na několika místech a když mám chuť a čas si některý zapnout a něco si na něm naprogramovat (hry příliš nehraju a k hardware mě raději ostatní s páječkou v ruce nepouští, není-li to absolutně nezbytné), tak než si vzpomenu, kde přesně je, dojdu/dojedu pro něj, vybalím ho, zapojím a uvedu do provozuschopného stavu, tak je po volném čase a dost často i té chuti něco dělat. Už jsem používal FPGA klon ZX Spectra nazvaný Speccy 2010, pak jsem narazil na podařený FPGA klon Sinclair QL jménem Q68, takže jsem si řekl, proč nepojmout i činnost na jiných počítačích tímto pohodlným způsobem?
Z počítačů jsem prozatím zprovoznil ZX Spectrum, Sinclair QL, Macintosh Plus, Acorn Archimedes, Atari STe a PC 486. Jsou to zhruba stroje u nichž jsem trávil nejvíce času i bez MiSTeru, vím jak se mají chovat a co od nich očekávat a musím říct, že kdybych neměl pod rukama moderní klávesnici, v ruce moderní myš a celé to nebylo připojeno k modernímu LCD, nevěděl bych, že nesedím u originálu stejné konfigurace.
Všechny zkoušené stroje umí přímo číst disky ze svých předobrazů, byť fyzicky lze použít jen microSD kartu z diskového rozhraní DivMMC u ZX Spectra, u ostatních počítačů je nutné z pevného disku, diskety či třeba CompactFlash karty nejdříve udělat obraz, byť by pravděpodobně přes příslušný USB adaptér šlo zvolené médium připojit i přímo.
Sinclair QL, Acorn Archimedes a Atari ST. Zdroj: DIIT
Sinclair QL, v němž jsem z posledních dvou týdnů strávil času nejvíce, je emulován včetně turbokarty GoldCard a rychlost procesoru 68000 na ní lze nastavovat až do frekvence 48 MHz, tedy vysoko nad hodnotu, kam se dostal originál. Jádro Atari ST(e) sice můj Falcon 030 nenahradí, protože umí jen základní modely Atari ST, Atari STe a Atari Mega, ale i s těmi je zábavy více než dost.
PC s procesorem 486DX, které implementuje MiSTerové jádro AO486, zvládá takt až 90 MHz a 256 MB RAM, což více než pohodlně stačí pro běh Windows 95, pro něž jsou k dispozici přímo na kartě ovladače k grafickému adaptéru odvozenému od Tseng ET4000+ a zvukovce tvářící se jako Sound Blaster 16. Jako bonus lze coby pevný disk namapovat adresář na kartě MiSTeru pro jednoduchou výměnu dat a použít síťové připojení MiSTeru jako modem. Screenshot jsem si odpustil, jak vypadají Windows 95 asi laskavý čtenář ví.
Abych ale jen nechválil, jsou tu dvě nevýhody. První z nich je cena - základní konfigurace Ultimate MiSTer vyšla v přepočtu na koruny i s dopravou z Portugalska na necelých dvanáct tisíc korun. Je to sice mnohem méně, než za co dneska pořídíte středně obsáhlou sbírku starých počítačů, ale na straně druhé je to zhruba o dvanáct tisíc víc, než vás bude stát softwarové emulování starých počítačů na běžném PC, pokud vám bude stačit.
A nevýhoda druhá je zjevná - funguje to jako originál, ale není to originál. Do vitrínky se to nehodí, cartridge a zařízení pro originál do toho nezapojíte (výjimkou jsou ovladače z některých modelů herních konzolí, pro ty existují adaptéry), vrtat se v tom s páječkou také nemá moc smysl. Pro všechny ostatní aktivity ale dneska není mnoho lepších možností, zvlášť pokud prostě originál nemáte, nebo už vám neopravitelně umřel.