Akcelerátorů pro Amigy je spousta a jejich cena se obvykle pohybuje poměrně vysoko. Zhruba před rokem se objevil zajímavý akcelerátor, který využíval Raspberry Pi Model 3A+ a sliboval nevídaný výkon za pár korun. Postupem času se akcelerátor vyvinul, doplnil funkcemi, vzniknul i alternativní software a kdyby do toho nehodila vidle čipová krize, byl by fakt za pár korun. Desky jsem si si objednal už někdy loni v létě, ale až teď jsem se tak nějak dokopal všechno otestovat a vyzkoušet. Na Amigu jsem lama, tak jsem trochu trpěl, ale naštěstí pomohli ochotní Amigisté z OldComp fóra.
Autor captain-amygdala projekt vymyslel opravdu perfektně. Vše zveřejnil na GitHub pod velmi volnou MIT Licencí a výrobní data připravil pro JLCPCB tak, že i neznalý člověk může relativně snadno nahrát výrobní soubory, BOM a CPL souborů a za krátkou dobu má doma 5 hotových PiStormů, které jen doplníte pinovými lištami a paticemi, které jsou snadno pájitelné THT, a pak se může podělit s kamarády. Software je k dispozici na Github, návod na GitHub Wiki, zní to skoro ideálně.
To skoro do toho hodila čipová krize. Za normálních okolností by vás jeden PiStorm vyšel na okolo 20 USD, autor píše 13 USD. Ovšem, když teď zkusíte postup z návodu, zjistíte, že vám JLCPCB hodlá naúčtovat za 5 ks PiStorm 347,18 USD + poštovné, tj. asi 75 USD za kus.
A to neobsahuje pinové lišty a patici. Snadno zjistíte, že na vině je CPLD za které chce JLCPCB brutálních 55 USD za kus. Kde je ta levná Čína 😉 Prd, spekulanti jsou to. CPLD můžete koupit na eBay okolo 10 USD ovšem s rizikem, že nepojede. Když jsem já objednával PiStorm loni v létě, nebyly v JLCPCB ani budiče 74LVC1637x, tak jsem vše koupil v Mouser a desky osadil ručně.
Můžete osadit CPLD buď řady MAX II a to buď EPM240 nebo EPM570 ve 100-pinovém TQFP puzdru. Zkoušel jsem oboje, zkoušel jsem i GT verzi, která potřebuje napápjení 1,8V, s čímž autor na desce počítá a všechno mi fungovalo v pohodě. Teda až na některé CPLD z eBay. Raději nakupuji na Mouser, ale ceny tam jsou taky dramatické, aktuální cena EPM240T100C5 je 276 Kč a EPM570T100C5 stojí 612 Kč. Problém je, že nejsou, ale čas od času Mouser 1 nebo 2 kousky naskladní. Dělá to tak u více čipů, mám za to, že čas od času pár kousků prostě jednotlivě pouští, aby bylo na výrobu a vývoj prototypů. Častěji se objevují GT verze, které potřebují zmiňovaných 1,8V, ale fungují také perfektně, jen bývají o něco dražší. Zkoušel jsem objednat i na eBay a jako obvykle od jednoho prodejce byly 2 kousky cajk, zatímco další 2 od jiného ani ťuk. Nezkoušel jsem zkoumat, co byly zač, prostě jsem je vyhodil. Tohle na těch Čínských fejcích nenávidím, stojí pár korun, ale člověka pak stojí spoustu času zjistit, jestli fungují a když jo, tak jestli spolehlivě. Pokud Číňan přeznačí jiné časování, může vám to pak v některých aplikacích dělat problémy. Já moc času nemám, tak si raději připlatím za originál, pokud to jen trochu jde. S experimentálním firmwarem se snad dají osadit i CPLD MAX V, ale to jsem nezkoušel.
Zkoušel jsem také různé budiče, konkrétně 74LVC16373, 74LC16373A i 74LC16374A a všechny fungovali v pohodě. Všechny teda byly z Mouser. Na Discordu i na webu jsem narazil na trochu rozporuplné informace o těch novější A verzích, ale můžu potvrdit, že fungují v pohodě.
PiStorm je koncipovaný, jako náhrada CPU 68000 v DIL puzdru. Má ze spodní strany piny (doporučuji osadit precizní) a z horní strany konektor pro Raspberry Pi. Celé by se to mělo s Raspberry Pi Model 3A+ vejít pod klávesnici Amigy 500. Nevejde. O fous, ale klávesnice je napružená, dobré je ji i zespodu odizolovat od Raspberry Pi, ale lepší asi je použít relokátor. Já jsem zkoušel asi 2 typy a osvědčil se ten, který procesorovu patici otočí a celý PiStorm posune poblíž Denise. I tak je nutné z horního plastu Amigy vyříznout jeden vnitrní zobáček, což dělám nerad, ale mám kastli stejně rozbitou od německého idiota z eBay, co neumí zabalit balík, takže mně to až tak netrápilo.
Pro druhou Amigu 500, kterou mám z Čech a prodejce balit umí jsem vymyslel konstrukci trochu jinak, dal jsem nižší verzi dutinkové lišty a osadil Raspberry Pi Zero 2 W ručně osázenými piny těsně na konektor, takže je celková konstrukce asi o 5 mm nižší a s rezervou se vejde pod klávesnici. Celé je to pěkně kompaktní, jen softwarová podpora pro Raspberry Pi Zero 2 W není tak dobrá jako pro Model 3A+.
Dalo by se to spáchat i pro Model 3A+, ale ty mají už připájené pinové lišty, tak leda odpájet a to je trochu pruda. Dalo by se pomoci alespoň o 2 mm zkrácením pinů, což by určitě pomohlo.
Když máme hardware osazený, přichází na řadu software. Standardní PiStorm běží pod Raspberry Pi OS Lite, který standardně nainstalujete, pak si stáhnete z GitHub projekt, přeložíte, naflashujete CPLD (přímo z Raspberry Pi, nepotřebujete JTAG programátor), otestujete přímo v Amize a spustíte emulaci. Vše je pěkně popsané v návodu a není to nic složitého.
V návodu najdete i jak PiStorm nastavit, aby se spouštěl automaticky a jak nainstalovat další featurky. PiStorm vám totiž kromě zrychlení procesoru přidá i 128 MB fast RAM, umožní použít libovolný Kickstart ze souboru, umí přemapovat rozšiřující RAM slot ze slow do chip RAM, umožní použít HDF soubory jako disky na Amize přes emulované piscsi rozhraní. No a to není všechno, PiStorm umí emulovat na Amize A314, RTG a síť. A314 je moje oblíbená featurka, umožní libovolný adresář na Raspberry Pi namapovat pro Amigu jako disk. Takto můžete přes WiFi síť snadno přenášet soubory na Raspberry Pi a ty se vám na Amize objeví v emulovaném disku. Jde to samozřejmě i opačným směrem. Pro instalaci RTG a sítě emuluje PiStorm disk s ovladači. Tyto funkce jsem zatím nezkoušel, protože chci spíše jen spouštět hry a dema a na to mi aktuální konfigurace perfektně stačí. Samozřejmě nesmíte zapomenout vyzkoušet nejčastěji používanou aplikaci každého PiStorm uživatele – SysInfo.
Jak jsem se již zmínil, pro PiStorm existuje i alternativní software, jmenuje se Emu68, autorem je Michal Schulz a vše najdete na GitHub, tentokrát pod Mozilla Public License 2.0. Emu68 neběží pod Raspberry Pi OS, ale přímo jako bare metal aplikace. Stačí tak stáhnou poslední Release a soubory nahrát na SD kartu s FAT partition. Kromě FAT partition je potřeba na SD kartě udělat ještě partition s ID 76, kterou bude vidět jako Amiga disk. Emu68 nepoužívá filesystem, takže není kam nahrát HDF soubor. Toto je méně pohodlné, než u standardního PiStorm software. Tady jsem měl trochu problém, protože mi Amiga disk neviděla. Přišlo mi, že jdu podle postupu, ale nic. Až jsem SD kartu naformátoval znovu pod Linuxem, vše se rozjelo, jako kouzelným proutkem. Na partition s ID 76 jsem rozbalil to samé HDF jako u PiStorm a Amiga OS 3.1 v pohodě naběhl.
Můžete si všimnout, že chybí PiStorm disk a rychlost je zatraceně větší. Až se tomu nechce věřit. Je to rozdíl mezi interpretováním instrukcí v Musashi emulátoru použitém ve standardním PiStorm software běžícím pod Raspberry Pi OS a JIT překladačem v Emu68 běžícím přímo na Raspberry Pi hardwaru.
Emu68 nemá všechny funkce, jako standandardní PiStorm software. Nenajdete tady emulaci A314 ani podporu HDF nebo sítě, protože není Raspberry Pi OS, který by to podporoval. RTG emulace je přítomna. Oproti 128 MB fast RAM umí Emu68 emulovat další fast ram, takž celkem je k dispozici 356 MB fast RAM a umí přidat i 1.5 MB slow RAM. Bohužel tuto slow RAM neumí použít jako chip RAM. Na Amigu 500 je to i tak celkem dost 😉
Emu68 má kromě vysoké rychlosti emulace i Amiga utilitu spustitelnou pod GUI nebo v příkazové řádce, která umožňuje nastavit parametry JIT překladače a tak třeba snížit rychlost emulace, pokud je to na nějakou hru nebo demo moc.
Pro provoz Emu68 budete potřebovat i standardní PiStorm firmware, minimálně pro naprogramování CPLD, protože CPLD firmware je stejný. PiStorm software má poslední verzi z listopadu loňského roku, ale Emu68 se mění každý den. Michal Schulz skoro každý den vydává nový Release a Emu68 je stále stabilnější a použitelnější.
Moušky mají oba emulátory, semtam mi nejde nějaká hra nebo demo spustit na jednom nebo druhém, ale může to být i vhodným nastavením. Jak jsem se zmínil, jsem Amiga lama, takže si s některými věcmi asi neporadím, navíc nemám trpělivost zkoumat detaily, když většina věcí funguje. Osobně se nehoním za nějakou vysokou rychlostí, hlavní výhodu vidím v pohodlném přidání disku do Amigy 500 a líbí se mi emulace A314, člověk nemusí vydělávat SD kartu, pohodlně do Amigy hodím co potřebuji bezdrátově. Praktické je u obou, že umí paměťové rozšíření z trapdoor přesunout ze slow do chip RAM, protože hodně dem na Amiga 500 potřebuje 1MB chip RAM. Výhodou Emu68 je výrazně rychlejší start Amigy. Vlastní systém bootuje u obou asi 2 vteřiny, ale Emu68 se zinicializuje během pár vteřin, zatímco Raspberry Pi OS u standardního sw bootuje asi 12 sekund. Standardní soft mi přijde i o trochu stabilnější, resp. běží pod ním víc věcí, ale to se u Emu68 poměrně rychle mění a zlepšuje. Rovněž bych řekl, že je kompatibilita o něco horší při použití Raspberry Pi Zero 2 W, ale to si nejsem jistý, jak moc je oficiálně podporováno, takže se třeba také zlepší, až bude. Rychlost by mi v pohodě stačila a velikostně sedí perfektně.
Hardwarove lze prehodit slow-fast RAM v trapdooru na chip pomoci pajeciho jumperu JP2 (nekde kolem ROM). Prehodi se tim drat adresovky A23 a A19, coz zpusobi zmenu adresy puvodni slow-fast z C00000 na chip 080000. Asi to neni treba, softwarove to delaji i jine turbiny, funguje to, ale nemam zdani jak.
Pingback: HDMI výstup a FlashFloppy OSD pro Amigu | Martinův 8-bitový blog
Pingback: Amiga 1200 akcelerátor PiStorm32-Lite | Martinův 8-bitový blog