Emulaattorien kanssa puuhailua Fedora Linuxissa

Lueskelin tänään VICE Commodore-emulaattorin lähdekoodia ja yritin selvittää itselleni sen keskeisiä toimintaperiaatteita. Opiskeltavaa on paljon vaikka keskitynkin ainakin nyt alkuun vain Commodore 64 emulaatioon. Kyseessä on kuitenkin hyvin kattava ohjelmistolla toteutettu emulaatio, joka käytännössä mallintaa koko Commodore 64 tietokoneen lisälaitteineen. Emulaattori myös pyrkii tarkkuuteen, joten siinä on valtava määrä yksityiskohtia. Kirjoitin tutkimuksistani lyhyen englanninkielisen artikkelin tietokoneosiooni ja se löytyy tästä linkistä.

Myöhemmin illalla toteutin haaveeni kokeilla ORIC-1 emulaatiota Linuxissa. Ilmeisesti MAME:kin emuloi ORIC:in 8-bittisiä koneita tai ainakin olin lukevinani niin jostain. Päätin kuitenkin etsiä ihan ORIC:ille omistettua emulaattoria ja löysinkin sellaisen. Sen nimi on Oricutron, mutta sen jakelu ei ole Linuxin puolella kovinkaan viimeisteltyä. Paketin joutuu hakemaan itse githubista eikä kääntämiseen ole edes mitään ohjeita. Lähdekoodi ei myöskään hyödynnä GNU Autotoolsia, joten siinä ei ole configure-skriptiä, joka generoisi käännöstä ohjaavat Makefile-tiedostot. Mukana tulee vain yksi käsin tehty Makefile, joka kyllä on yksinkertainen ja helppolukuinen, mutta sitä piti ihan vähän muokata, jotta paketointi onnistuisi järkevästi. Githubin kommenttien mukaan on suunnitteilla, että lähdekoodipaketti konvertoitaisiin käyttämään GNU Autotoolsia ja se olisikin hyvä asia.

Laitoin kuitenkin riippuvuudet RPM-pakettieni SPEC-tiedostoihin, joten configure-skriptin puuttuminen ei ole nyt Fedora Linuxin käyttäjille mikään katastrofi. Autotoolsin mallissahan configure-skripti mm. etsii onko tarvittavat ohjelmakirjastot asennettuina ennen käännöstä. Nyt RPM-paketeissa on mainittu kaikki kirjastoriippuvuudet, joten asentamalla lähdekoodi-RPM:n myös käännöksen pitäisi onnistua ilman virheitä, sillä RPM-pakettini määrittelee mitä muita RPM-paketteja se vaatii käännösaikana. Vastaavasti binäärinen, valmiin ajettavan koodin sisältävä RPM-pakettini kertoo mitä kirjastoja oricutron vaatii ajonaikana toimiakseen.

Tein ORIC:in systeemi-ROM-imageista oman erillisen noarch-RPM-pakettinsa. Eli kuten muidenkin emuloitujen koneiden suhteen, oricutron vaatii ROM-imaget toimiakseen. Noissa imageissa on ORIC-koneiden BASIC-tulkki ja käyttöjärjestelmä.

Paketoidun ORIC-emulaattorin oricutron Fedora Linux 27:lle löydät tästä linkistä.