Ambian – Amiga på Raspberry Pi

Fordelen ved at være blevet voksen er, at ens disponible indkomst som oftest er markant forøget i forhold til dengang, man var barn i 1990’erne. Dengang, hvor man kiggede længselsfuldt efter alle de nærmest uopnåelige acceleratorkort, harddiske, eller dyre Amiga-computere, som var i computerbladene. Nu kan man næsten – altså med de rette prioriteringer – købe det hardware, man altid har drømt om. Også selvom alt det gode Amiga-grej stadig er i høj kurs på brugtmarkedet.

Men man kan også gå emulerings-vejen. Så slipper man helt for at købe dyrt hardware og bekymre sig om, hvornår det går i stykker!

Der findes gode Amiga-emulatorer til stort set alle styresystemer, men for at gøre oplevelsen så autentisk som muligt, har jeg fundet min Raspberry Pi frem fra skabet og prøvekørt den skræddersyede Amiga emulator-pakke “Amibian“. Amibian er baseret på emulatorerne Uae4arm og Amiberry og selvfølgelig et Debian-baseret operativsystem (Raspian) til at starte det hele op. Fidusen med Amibian er, at man i det daglige slet ikke skal bekymre sig om teknikken bag – for når det hele installeret korrekt, starter Raspberry Pi-computeren op som var det en vaskeægte Amiga. Det er i hvert fald tanken bag, men lad os se på, hvordan det virker.

Til formålet har jeg følgende:

  • Raspberry Pi Model 3B og en god strømforsyning
  • Et Micro-SD kort på 8 gb (minimum 2 gb)
  • En USB-flashnøgle
  • En mus og et tastatur (begge USB)
  • En joypad
  • Kickstart ROM-filer
  • ADF-filer med Workbench 3.1-installationsdisketter

Næsten smertefri installation

Selve installationen foregår som med alle andre færdigstrikkede Raspberry Pi-pakker: Man henter en image-fil, som skrives til MicroSD-kortet, og herefter skal der pusles lidt om installationen, før man har en helt køreklar Amiga. Det vil sige opsætte emulatoren, så den fungerer som det hardware du ønsker, din virtuelle Amiga skal bestå af.

Nu er det ikke fordi, dette skal være en udtømmende instruktion i, hvordan du får Amibian op at køre, men nogenlunde løst beskrevet er proceduren for at komme i gang følgende:

  1. Start for en god ordens skyld med at formattere dit Micro SD-kort (herefter bare kaldet SD-kortet, okay?). Til det kan du bruge programmet SD Card Formatter.
  2. Hent Amibian-image filen til din computer og pak den ud til SD-kortet. Til det formål, kan du bruge programmet Win32 Disk Imager. Jeg brugte et 8 gb kort, men mindre kan gøre det (og mere kan også!).
  3. Sæt SD-kortet i din Raspberry Pi og start den op.
  4. Når Amibian startes første gang, skal du afslutte emulatoren og taste “raspiconf”. Du kommer nu til en menu, hvor du under et af punkterne kan vælge “Expand filesystem”. Ved at gøre dette, giver du Amibian mulighed for at bruge hele SD-kortet, og ikke kun de ca. 500 mb, som Image-filen fylder.
  5. Genstart nu Raspberry Pi’en (reboot) – Afslut igen emulatoren og tast 4 for at gå til den indbyggede filmanager kaldet “Midnight Commander”. Nu kan du kopiere Kickstart Rom-filer ind i mappen /amibian/amiga_files/kickstarts. Rettighederne til Kickstart-filerne varetages i dag af firmaet Cloanto, så med mindre du har mulighed for selv at “dumpe” dem fra en rigtig Amiga, skal du enten finde dem som piratkopier eller købe dem hos Cloanto. Her er den billigste løsning at købe dem via Googles Play Store, hvor du finder pakken “Amiga Forever Essentials“.

Har du prøvet at rode med WinUAE tidligere, er det ikke raketvidenskab at få Amibian til at makke ret. Undervejs ledsages man af gode hjælpetekster, og den medleverede Midnight Commander til filhåndtering gør det nemt at kopiere filer fra en USB-nøgle over på Amibian-installationen.

I Amiga-emulatoren kan man som nævnt angive præcis den Amiga, man ønsker at emulere. Mængden af RAM, Kickstart-versionen, processorens type og hastighed og ikke mindst, og om den virtuelle maskine skal forsynes med én eller flere harddiske.

Mit mål med eksperimentet var at få et resultat så tæt på min ægte Amiga 1200 som muligt, men når man kan opgradere Ram og processorhastighed med et museklik, er det fristende med nogle “opgraderinger”. Jeg endte med en virtuel Amiga med følgende specifikationer:

  • Kickstart 3,1, Amiga OS 3.1
  • 8 mb slow ram, 1,5 mb chip ram
  • 68020 processor med 25 MHz
  • Tre harddiske – til workbench, programmer og spil og data

Da Workbench-installationen var på plads, kunne jeg begynde at fylde indhold på den. Det foregik på gammeldags manér ved at installere programmer fra disketter (ADF-filer på en USB-nøgle) og udpakke LHA-arkiver med WHDLoad-installationer på harddisken fra Directory Opus.

En hurtig note omkring harddiske

Man kan oprette en virtuel harddisk på to måder: Enten ved at angive en mappe på SD-kortet som harddisk, eller man kan oprette en egentlig harddisk-fil (HDF-fil). Oftest vil den første løsning være at anbefale. Hvis du har tænkt dig at have flere harddiske, fx én til Workbench-installationen, én til programmer og spil og én til brugerdata, deles de tre diske nemlig om den samlede ledige kapacitet på SD-kortet. Hvis du derimod opretter en harddisk-fil til hver, skal du på forhånd angive, hvor stor hver disk skal være – og du kan således risikere at fylde den ene op, mens de to andre står mere eller mindre tomme. Eneste ulempe er, at nogle programmer ikke kan hitte ud af det, hvis den ledige harddiskkapacitet er for stor. Programmerne vil så fortolke det som om, at pladsen er brugt op, og du kan ikke få lov at installere. I de tilfælde kan en mindre harddisk-fil være en løsning.

Virker det?

Ja, det må man sige. Formålet med projektet var at skabe en oplevelse af Raspberry Pi’en som en “ægte” Amiga, og hvis man indstiller emulatoren til at starte med indstillingsmenuen skjult, booter man direkte op i Workbench på få sekunder. (For at gøre dette skal du under fanen “Miscellaneous” fjerne fluebenet fra “Show GUI on startup”). Men selv indstillingsmenuen har et Amiga-look over sig med den klassiske Topaz-font og Workbench 3.x farvetema. Dejligt gennemført.

Der skulle dog lidt yderligere fintuning til, før det hele i bogstaveligste forstand kom til at køre flydende. En udfordring med Amiga-emulatorer på PC er, at de er afhængige af monitorens refresh rate, der oftest er låst til 60 Hz. Det betyder, at scrolling bliver “hakkende”, når emulatoren skal afvikle et spil, der er designet til de 50 Hz, der var standarden på Amiga-skærme (og fjernsyn). Angiveligt skulle det problem være fikset med Amibian, da Raspberry Pi kan outputte HDMI i 50 Hz – men alligevel måtte jeg rode en del med emulatorens config-fil, før jeg fik et perfekt resultat. Og lige præcis her er Amibian ikke videre hjælpsom. En forkert indstilling kan bringe emulatoren ud i en situation, hvor skærmbilledet tvinges uden for TV’ets tolerancer. Det resulterer i sort skærm, og så er der kun én vej for at få billedet tilbage – nemlig at smide SD-kortet tilbage i PC’en og rette indstillingen tilbage igen. Herunder er et skærmbillede af de indstillinger, som virker på min skærm (et Full HD TV):

Når skærmindstillingerne er på plads, er der ikke meget at beklage sig over. Med de rigtige opløsnings- og filter-indstillinger, er skærmbilledet nogenlunde lige så skarpt / uskarpt, som det, der kommer ud af min Amiga 1200 – jeg vil gå så vidt som at sige, at jeg ikke kan se forskel. Spil kører helt flydende, og hvis ikke man presser CPU-hastigheden op over de 25 MHz, har jeg hverken oplevet slowdowns eller hakker i lyd eller billede.

I en hurtig test af performance med SysInfo’s speed-test opnår min emulerede maskine 4.648 Dhrystones, hvilket svarer til 3,81 gange hastigheden på en standard Amiga 1200, eller præcis det samme som en 25 MHz Amiga 3000 med sin 68030-processor. Skruer jeg emulatoren op til “turbo”, hvor der ikke er nogen max-grænse på 68020-processorens hastighed, og sætter hak i JIT-emulering, får jeg vanvittige 110.966 Dhrystones eller 91,17 gange hastigheden på en standard Amiga 1200. Phew! (Hvis du overvejer at investere i en Vampire til din “rigtige” Amiga, så overvej lige, om ikke en Rasperry Pi kan dække dit behov)

Ved de ekstreme CPU-indstillinger har jeg dog oplevet problemer i visse spil og programmer – men det skyldes nok i virkeligheden, at programmerne ikke er designet til den slags hastigheder, og ikke emulatoren. I øjeblikket er der ingen hastighedsforbedringer at hente ved at vælge en 68030 og 68040-processor – men manden bag Amibian lover, at disse processorer bliver bedre implementeret i en kommende opdatering.

Og nu vi taler om opdateringer. Jeg havde en lidt uheldig oplevelse med Amibians automatiske opdateringsfunktion. I udgangspunktet er det genialt, at Amibian selv kan hente og compile nye sourcefiler, men da jeg testede funktionen, endte jeg med en emulator med underlige periodiske grafikfejl. Heldigvis oprettes automatisk en backup, så da først det gik op for mig, at problemerne nok skyldtes opdateringen, var det nemt at rette tilbage.

Hov, hvor er tænd-knappen?

Manden bag Amibian anbefaler, at man ikke bare trækker stikket til Pi’en for at slukke den, men sørger for at lukke computeren ned på forsvarlig vis. Dette er for at undgå, at der kommer fejl på SD-kortet, så ens installation går i smadder. Det er heldigvis ret nemt at lukke Pi’en korrekt, for fra emulatorens indstillingsmenu kan man klikke “Shutdown”, hvorefter computeren efter nogle sekunder går i dvaletilstand.

Menæh… en Raspberry Pi er dog ikke forsynet med en tænd-knap, så for at få liv i computeren igen, skal man fra- og tilkoble strømmen. Man kan også bygge sin egen kontakt, der kan skabe forbindelse mellem GPIO-connectorens ben 5 og 6 (GPIO3 og GND). Jeg gjorde sidstnævnte med forhåndenværende midler – to jumper-kabler og en mini-mikroswitch, noget loddetin, en limpistol og noget krympeflex til at holde det hele sammen. Ikke videre elegant, men det virker.

Nu vi er i gang med at tilføje funktionalitet, så kan knappen med lidt tastaturarbejde også gøres til en “luk ned”-knap ved at følge guiden her.

Et par andre erfaringer, som jeg har gjort mig i de foreløbig tre dage, jeg har rodet med Amibian er, at Raspberry Pi-computeren er temmelig strømkrævende, når alle fire USB-porte er i brug. Min ellers trofaste Samsung-strømforsyning, der er specificeret til at levere 2.0 A ved 5 V, måtte på tredjedagen give fortabt, da computeren begyndte at melde, at den fik for lidt strøm – illustreret med et blinkende gult lyn i øverste højre hjørne af skærmen. Et skifte til en Apple iPad-lader løste problemet, men en USB-hub med egen strømforsyning er nok vejen frem på den lange bane.

Et godt råd er i øvrigt at tage backup af dit SD-kort, når du har en installation, du er tilfreds med. Til det formål bruger du Win32 Disk Imager, hvor du vælger den første partition på SD-kortet, angiver et filnavn og klikker på “read”. Så simpelt, og så utroligt behændigt den dag, dit SD-kort går i smadder, eller du bare gerne vil tilbage til din oprindelige Workbench-installation.

Konklusion

Ja, Amibian er emulering, og det bliver aldrig den ægte vare. Det betyder, at foruden nogle få kompatiblitetsproblemer (de er der; jeg har bare ikke oplevet dem endnu), må jeg undvære at bakse med støvede diskettedrev (her har vi vel efterhånden alle Gotek-drev alligevel) og bekymringer om lækkende elektrolytter og batterier. Jeg må også “nøjes” med en god optisk mus frem for en kuglemus, men skulle jeg savne mit yndlingsjoystick, er der faktisk råd for det. Der findes nemlig adaptere, som gør det muligt at tilslutte sit yndlings Amiga-joystick til en USB-port.

Med det in mente er det lige før, at jeg i et svagt øjeblik kan lokkes til at erklære Amibian for min kommende “daily driver”, når det handler om et hurtigt Amiga-fix. Mit skrivebord har kun plads til et vis antal retro-computerere, og på det punkt er den lille mini-“Amiga” jo uhyre praktisk. Læg dertil at man med et snuptag kan overføre spil og programmer fra sin PC – så bliver det ikke meget nemmere.

Dette indlæg har 5 kommentarer

  1. Michael

    Bruger du det stadig og er du stadig lige så begejstret for Amibian?
    Jeg vil vil rigtigt gerne lave ca. samme setup som dig så håbede at kunne trække lidt på dine erfaringer 🙂 hvad gør man når start af spillet f.eks kræver et tryk på space

    Omkring indkøb af ting til RPI hvilken strømforsyning kan du anbefale, går ud fra det er helt umuligt bare at kunne nøjes med strøm fra USB via TVet?
    Har du selv taget nogle adapterer i brug (og hvilke kan du evt anbefale) så man kan bruge sine originale joystick (9-pin) på den?
    Sidst men nok vigtigst findes der et komplet image der indeholder alle spil og hvor kan man evt. hente dette? det gør ikke noget hvis det er uden kickstart ROM, det er vel nemt at tilføje disse?

    1. peterfj

      Hej Michael.

      Jep, jeg bruger stadig Amibian (om end jeg også bruger mine “rigtige maskiner” ind imellem). Men emulatorvejen er bare nemmere, især når det kører fuldstændigt som den ægte vare.

      Jeg har et usb-tastatur koblet til sammen med en trådløs mus, og et joystick – så alle tastaturkommandoer er præcis som havde du siddet med en rigtig Amiga. Jeg har for nyligt testet et “KeyRah”-interface fra Individual Computers. Med det kunne jeg bruge det ekstra Amiga 1200 kabinet + tastatur, jeg havde liggende, og så er forskellen jo endnu mindre 🙂

      Jeg bruger den “officielle” strømforsyning, som forhandles de samme steder som Raspberry Pi. Den er relativt kraftig, hvilket især er relevant, hvis du kobler flere controllere og evt. en usb harddisk til maskinen. Jeg har endnu ikke prøvet med en 9-pin adaptor, men det burde virke.

      For en pakke med software, så prøv at kigge i Facebook-gruppen “Commodore Amiga”, hvor en fyr regelmæssigt opdaterer en zip-fil med et hav af præinstallerede WHDLoad-spil (altså spil, der kan afvikles fra Workbench). Fx dette opslag: https://www.facebook.com/groups/CommodoreAmiga/permalink/10157287933889157/

  2. Michael

    Tak for svar, jeg har nu fået lavet mig en opsætning og alt virker, jeg har så forsøgt at lave en backup af SD-kortet med Win32 Disk Imager.
    Jeg valgte bare hele drevet (D) da der er flere partioner kortet og ingen af dem genkendes af windows.

    Når jeg så skriver det image til et andet SD kort får jeg denne fejl med det samme, not syncing vfs unable to mount root fs on unknown-block er det noget du er stødt på eller ved hvordan man kan fixe?

    1. peterfj

      Hm, det siger mig desværre ikke noget. Når man Googler det, ser det ud til, at fejlmeddelelsen kan skyldes, at filsystemet på det nye SD kort er defekt. Har du prøvet med et andet SD-kort, om det også giver problemer?

      https://www.raspberrypi.org/forums/viewtopic.php?t=172259

  3. Jan Gade

    Hej Peter
    Super fin guide, tak for det!
    Hvilket joystik bruger du? USB?
    Mvh Jan

Skriv et svar