Posts filed under 'retro'
Again in English to serve international people, too. It seems Ubuntu doesn’t let us emulate Amstrad CPC (ok, MESS might do it, but I’ve pretty much given up all hope with it). Skimming through a heap of abandoned emulators I finally came across the latest Linux sources of Arnold. Seems to compile fine out-of-the-box on x86 Linux, but a lot less so on PPC. The endian clean code seems to be there, but the compilation doesn’t go through without a few tweaks. So, here’s the fixed source and a PPC binary (tested only on Ubuntu 10.04 PPC):
http://www.kameli.net/~marq/arnold-ppc-2010-03-05.tar.gz
Note that this version will not work on a little endian system. Press F1 to reset, F2 for fullscreen, F3 for mouse grab. The GUI part requires GTK2, but that you should have anyway. If the sound is choppy, try a different sound system. At least ALSA, OSS, SDL and Pulse support are compiled in.
March 5th, 2011
Kyllästyin huonoihin joypadeihini ja tilasin samaan syssyyn sekä muutaman SNES-ohjaimen että usb-adapterin niille. Adapteri oli nimeltään “SNES Controller Adapter” ja samaa pulikkaa myy esim. DealExtreme. Hiukan ohjaimia siivottuani (nappien kosketuspinnat lasittuvat ajan myötä ja lakkaavat vastaamaasta) kokeilin ohjaimia sekä Mednafenilla että SNES9x:llä. Hyvät uutiset ovat siinä, että sekä ohjaimet että adapteri toimivat, eikä ohjauksessa tule kummallisuuksia tai huomattavaa lägiä. Miinuspuolelle laitettakoon se, että joku valopää keksi laittaa molemmat ohjaimet saman loogisen usb-joystickin eri napeiksi. Kokeilemani emulaattorit antavat viritellä napit ihan miten hyvänsä, joten ongelmaa ei ole, mutta vähemmän joustava ohjelma voi hyvin olettaa saavansa kaksi erillistä laitetta. Kakkosohjaimen start ja select eivät myöskään heräilleet. Suosittelen siis ainoastaan tietyllä varauksella, vaikka tuntumaltaan aidot Nintendon ohjaimet varmasti pieksävätkin halvat usb-kloonit.
edit: Toisen ohjaimen start ja select taitavat olla risat, joten vika ei ole adapterissa.
edit2: Putsaamalla lähtivät toimimaan nekin. Ei kannata kaataa limpparia ohjaimeen.
March 2nd, 2011
This time exceptionally in English – I thought this might benefit some fellow PPC users abroad, too. It seems by all accounts that Megadrive/Genesis emulation under PPC Linux is a hopeless attempt: Dgen just crashes, Xmess doesn’t do any better, and up-to-date emulators, such as Gens/GS, don’t support the PPC platform (a generic Z80 core is apparently under construction). I was looking into compiling the excellent PicoDrive, but its sources seem to be here and there and no generic Linux version exists. So, no Megadrive for us, right?
Luckily I came across Generator, which has been ported to Linux/SDL a few years ago. After the usual configure/make fiddling the emulator actually ran games, but with distorted sound. A quick peek at the sources revealed a tiny endian problem, which was quickly fixed. While I was at it, I added an example config file, a PPC Linux binary, options to force the video overlay off (in case it doesn’t work for you), set the fullscreen resolution and to turn CPU saving off. I didn’t like the fact that the emulator wouldn’t start the games right away, so I turned autostart on, too. There are still some grave issues with sound: for example the music in Sonic 2 doesn’t play correctly, but that’s something out of my scope right now. At some point something has been broken – probably with GCC – since when I tried to compile the emulator on x86 Linux it simply crashed after a while. Not much of an issue, though, since there are other alternatives out there.
Download here (source and binary included): generator-0.35-cbiere-marq-r1.tar.gz
If you wish to compile it yourself, just run ./configure –with-sdl –with-cmz80 ; make in the src directory. For running games: ./generator-sdl-ppc romname (and optionally -c generator.config.example). Tested under Ubuntu 10.04 only, so let me know if it works for you. Alternative solutions to Megadrive emulation are most welcome as well.
edit: Apparently the good folks behind Mednafen are working on Sega support too. Here’s hoping 🙂
February 26th, 2011
Viikon-parin emulaattorikikkailu PPC-Linuxissa on tuonut aiheeseen mukavasti lisää näkemystä. Useimmat alustat alkavat olla jo varsin käyttökelpoisia nopeudeltaan ja pyörivät jopa koko ruudulla postimerkin kokoisen ikkunan sijaan. Aloitetaan kuitenkin huonoilla uutisilla:
- Mac-on-Linux on rikki. Jossain vaiheessa Linuxiin on tullut sellaisia muutoksia, että vanhat koodit eivät enää toimi. SheepShaver on sekin hajonnut samalla tavoin eikä korjausta ole näköpiirissä. Mac OS 9:n emuloinnin voi siis unohtaa, mikä ei kylläkään ole iso menetys.
- E-UAE riittää A500:n emulointiin aika mukavasti ja jaksaa useimmiten jopa piirtää joka framen. Fullscreen vaatii kikkailua, ks. ruutumoodien teko alla. Tärkeitä .uaerc:n asetuksia lowres-peleille ja -demoille (koneesta riippuvia):
- gfx_width=360
- gfx_height=286
- gfx_width_fullscreen=424
- gfx_height_fullscreen=286
- gfx_lores=true
- gfx_linemode=none
- gfx_correct_aspect=false
- MAME futaa sekin hyvin. Laitoin itse frontendiksi kxmamen, joka säästi jonkun verran hermoja. Fullscreen-kikkailun vaatii tämäkin ja perfektionisti säätäisi vielä pelikohtaisesti moodin tai pari lisää.
- SNES9x on lämmennyt käytössä ja suostuu nyt jo vaikka mihin. Fullscreen tulee sen kummemmin säätämättä, jos vain skaalausvaihtoehdoksi laittaa Xvideon. Jos video-overlay ei koneessa toimi, niin allaoleva fullscreen-jekku kohentaa kokemusta joka tapauksessa. Hitaalla koneella on tärkeää ottaa äänen synkronointi pois asetuksista.
- VICE hyötyy sekin ruutumoodien tekemisestä. Nopeinta fullscreeniä varten pikselien ohjelmallinen tuplaus pois päältä. Näyttömoodin vaihtamiseen kannattanee valita menusta Xrandr.
- OpenMSX:n koko ruutu oli tällä koneella jo muutenkin riittävän nopea, joten varsinaista hyötyä matalammasta tarkkuudesta ei ollut. Hitaammalla laitteella hyödyttää set scale_factor 1 (komentoja pääsee antamaan painamalla F10), jonka päälle vielä save_settings.
- Hatari nauttii sekin matalammasta tarkkuudesta, kun pikselien tuplausta ei tarvitse tehdä ohjelmallisesti. Aidomman tuntuman sai vielä, kun viritteli hieman pystyvenähtäneen moodin (ST:ssä ei ole neliöpikselit). Nopeutusta saa hitaalla koneella poistamalla borderit käytöstä.
Ja sitten se matalan tarkkuuden tilojen tekeminen helposti: tämän ohjeen perusteella ei pitäisi olla liian haastavaa. Komento gtf tuottaa kauniita modelinejä, joita voi kokeilla xrandr:llä ennen kuin niitä laittaa xorg.confiin. Olin totaalisen hämmästynyt, kun PowerBookin sisäinen näyttö tuntui kelpuuttavan melkein minkä hyvänsä satunnaisen 60 Hz tilan. Nyt on pelikäyttöön 424×286, eli suunnilleen kolminkertaiseksi venytetyt pikselit (näytön oma tarkkuus on 1280×854). Pehmeää vieritystä yritin saada aikaan 50 Hz tiloilla, mutta ne eivät tuntuneet asiaan vaikuttavan.
Viritellessä kannattaa muistaa se, että jos emulaattori tukee Xvideota, niin pienemmän reson käyttämisestä ei ole kuin haittaa, sillä video-overlayn tekemä skaalaus osuu huonommin pikseleihin. On myös hyvä sovitella matalia tarkkuuksia maksimitarkkuuden puolikkaiksi tai kolmanneksiksi, etteivät pikselit venähtele epätasaisesti. Kaikkein rumimman lopputuloksen saa silloin, kun näyttö skaalaa grafiikan huonosti, jonka päälle emulaattori tekee vielä oman skaalauksensa.
February 24th, 2011
Tulipa kokeiltua emulaattoreitakin kaiken muun ohella. Laatu vaihtelee hyvästä huonoon ja fullscreen on monestikin ongelma, joko kuvasuhteen tai -koon osalta. Jos emulaattoreissa on JIT-kääntäjiä, niin ne ovat useimmiten vain Intelille, joten kurjuus kumuloituu. OpenGL-ruutumoodit ovat käyttökelvottoman hitaita keskimäärin, joten skaalattuja fullscreen-tiloja ei saa sitäkään kautta ilmaiseksi.
- MS-DOS. DOSBox jytää hyvin ja osaa jopa oikean kuvasuhteen fullscreenissä. Emulointi vastaa ehkä nopeaa 386-konetta. VESA-moodien värit menevät väärin.
- PC. Windows XP asentui yön yli Qemuun ja on lähinnä kuriositeetti, Windows 98 tms. voisi jo toimiakin.
- Mac. Mac-on-Linux asentui suoraan paketinhallinnasta, mutta framebuffer-kikkailujeni takia ruutumoodien asennuskikkare sekoittaa näytön. Jos pitää valita MOL:n ja kiihdytetyn X:n välillä, niin ei tarvi pitkään miettiä. Saattaa olla ihan jostain pikku säädöstäkin kiinni.
- MSX. Riittävän nopea OpenMSX:llä. Laitoin emulaatiotarkkuudeksi rivin, mikä ehkä jotain nopeutti. Kuvasuhde venähtää fullscreenissä, mutta sen jälkeen se onkin hyvin linjassa MSX:n läsähtäneen kuvan kanssa 🙂
- Commodore 64. VICE toimii, tosin hienouksia ei voi laittaa päälle. Ääniajuriksi piti valita uss, muuten pätki alituiseen.
- Megadrive. Dgen ei toimi ja Xmess on nimensä mukainen. Ehkä rikki, ehkä vaan vaikea konffattava. PicoDriven sorsat ovat levällään pitkin maailmaa, joten sitä ei voi oikein edes kääntää itse. Seuraavan Gens/GS:n pitäisi olla multiplattis, eli jotain toivoa ainakin on.
- SNES. SNES9x ajelee ainakin Bombermaneja hyvin ikkunassa. Tuplapikseleillä menee tökkiväksi, mutta kun laittaa fullscreeniksi 640×480, niin zoomaamatonkin akkuna on edelleen kohtuullisen kokoinen. Ainakin tällä koneella ALSA toimi paremmin ääniajurina kuin Pulseaudio. edit: Kun ottaa äänasetuksista pois synkronoinnin, niin vauhti kasvaa huomattavasti.
- Amiga. E-UAE jaksaa emuloida A500-tason rautaa kohtuullisesti, riippuen hyvin pitkälti ohjelmasta. Demoja sain ajettua pienennetyssä ikkunassa jopa ihan täydellä frameratella, mutta esim. BC Kid toimi vain frameskipin kanssa. Äänet pitää laittaa 8-bittisiksi tai tulee vain suhinaa. Näytiksi .uaerc:ni. Fullscreen on muuten (fn-)F12-s.
- Atari ST. Tässä listassa Hatari on selvästi paremmasta päästä. Nitkuttamista keksin oikeastaan vain äänien satunnaisesta kakomisesta ja siitä, että graffat eivät ole aivan oikeassa skaalassa.
- ScummVM. Parin pelin perusteella futaa hienosti, tosin kerran tilttasi fullscreenistä palatessa.
Raadin kiitokset menevät siis DOSBoxille, OpenMSX:lle, Hatarille ja ScummVM:lle, sekä varauksin VICElle, E-UAE:lle ynnä SNES9x:lle. USB-joypadit näyttävät muuten toimivan ihan heittämällä ainakin VICEn ja SNES9x:n kanssa.
February 15th, 2011
Viimeiset kaksi viikkoa ovat kuluneet lähes pakkomielteenomaisessa produktion tekemisessä MSX:lle. Ensinnä meni viikko koodatessa ja sitten toinen kuvia konvertoidessa. Lopputuloksena syntyi kuvakokoelma Adnukes, joka julkaistiin viikonlopun MSX Info Updatessa. Tuntui hieman siltä, ettei juuri kukaan ymmärtänyt, että tässä tehdään nyt MSX1:llä mahdottomia, vaan porukka näki vain “jotain kuvia”. Ehkä tällaiset teknologiademot vaativat niin syvällistä ymmärrystä aiheesta, että niitä voi arvostaa vain MSX-koodari — olisin kyllä odottanut edes tuollaisessa harrastajatapahtumassa sitä ymmärrystä löytyvän 🙂
LT2-kuvien näyttäminen tekeminen ja ruudulla näyttäminen vaatii melkoista käsityötä: ensin valitaan sopiva kuva ja rajataan se alustavasti. Olen todennut, että kun 640×384-kuvan skaalaa 256×192 pikseliin, saa aika lailla aika lailla aidon kuvasuhteen. Värikylläisyyttä ja kontrastia on ennen konvertointia hyvä hieman lisätä. Värikäs täyden reson kuva ei ole mahdollinen, joten yleensä on tarpeen joko laittaa kuvaan yksivärisiä reunuksia tai piilottaa kuvan sisään yksivärisiä alueita. Tämän jälkeen kuva syötetään Yzin konvertteriin, joka ditheroi kuvan MSX:n välkytyspaletille, minimoi värivuodot ja limittää tasaiset värialueet. Tässä vaiheessa alkuperäistä kuvaa siirrellään, rajataan ja värikorjataan vuorovaikutteisesti, jotta lopputulos toimisi mahdollisimman hyvin. Seuraavaksi sitten vielä testausta oikean koneen väreillä ja välkkymisillä ja tarvittaessa yksittäisten 8×1-blokkien käsin korjailua.
Musiikkipuolella jyräsi tänä vuonna Arkos Tracker, jolla oli ilmeisesti tehty kaikki kompoissa kuultu musiikki. Arkos tuntuu olevan huomattavasti asiallisempi raituri kuin vaikkapa taannoin suosittu, mutta sekava Vortex Tracker II. Harmi kyllä molemmat vaativat Windowsin. Aidolla MSX:llä toimiva PSG Tracker on auttamattomasti vanhentunut, eikä sille ilmeisesti ole kunnon soittosorsaakaan. Yzin biisit vuosilta 1997-2008 on kaikki kirjoitettu käsin assemblerin datalauseisiin, mikä on kuitenkin tuskallisen työlästä eikä muutenkaan sovi ihan kaikille muusikoille.
L!T perustettiin 1996 ja sen jälkeen työkalut ovat kehittyneet oleellisesti. Aivan aluksi kirjoittelin PC:llä TASM-ristiinkääntäjällä assembler-koodia ja heittelin korppua kahden koneen välillä — aidolla MSX:llä en jaksanut koodata edes silloin. Myöhemmin siirryin testaamaan binäärit kehitysvaiheessa fMSX:llä, mikä helpotti tekemistä sekin. 2008 tapahtuneen comebackin myötä löytyi SDCC, C-kääntäjä Z80:lle, käännös siirtyi Makefileihin ja emulaattori vaihtui edistyneempään openMSX:ään. C:n hitaus ei haittaa liikaa, koska aikakriittiset osat voi tehdä inline-assemblerilla muun koodin sekaan suhteellisen kätevästi. Nyt riittää editoida sorsaa ja kirjoittaa komentoriville “make run”, jonka jälkeen käännetty ohjelma käynnistyy suoraan emulaattorissa. Oikealla koneella testailu on edelleen työlästä, mutta tilauksessa on Nowind, jolla senkin pitäisi helpottua.
August 23rd, 2010
Melkein kahden vuoden jahkailun jälkeen saivat lopultakin julkaistua History of Nordic Computing 2:n (HiNC2) artikkelit. Antin kanssa kirjoitimme demoaiheisen Demoscene Platforms: A Case Study on the Adoption of Home Computers ja Mikon kanssa kulttuuriperintöaiheisen Preserving Our Digital Heritage: Experiences from the Pelikonepeijoonit Project. Artikkelit saa SpringerLinkin kautta, mutta kornia kyllä edes itselläni ei ole noita lopullisia julkaistuja versioita sähköisessä muodossa — eikä todellakaan huvittaisi maksaa 25 taalaa omasta työstään. Abstraktit ja ensimmäisen sivun pääsee katsomaan ilmaiseksikin.
update: Demoartikkeli ladattavissa nyt täällä
October 4th, 2009
Vuosia tuskailin Infinitivin hirvittävän muovisen Amiga-tornikotelon kanssa. Vaihtoehdotkin olivat kalliita ja usein vielä melkoisen rumia. Kaksi emolevyä kymmenisen vuotta sitten teurastettuani vannoin, etten enää itse lähde torniprojektia virittelemään vaan täytyy olla valmiiksi sopiva. Lopulta tuli vastaan EZ Z4, joka vieläpä toimii Mediator-PCI-laajennuksen kanssa eikä ole tolkuttoman hintainen (83€) eikä ruma — lähinnä normaalin PC-kotelon näköinen. Sellainen tilaukseen ja reilun viikon päästä saapuikin jo. Vaihdossa sekosi muutama tunti, mutta nyt kaikki on melko lailla kondiksessa ja laitteisto tuntuu toimivan. Pienenä kauneusvirheenä Mediatoriin käy AT-virtalähde ja tornin mukana puolestaan tuli ATX. Onneksi vanhassa tornissa oli jo sopiva poweri, joka kohtuullisella modifioinnilla meni koteloon. ATX-virtaliittimelle saa adapterin, mutta en malttanut enää ruveta sellaista odottelemaan. Lopputuloksena sain Infinitiviin verrattuna jämäkän kotelon, jossa on lisäksi paremmin tilaa turbokortille ja lisälaitteille sekä parempi paneeli levyasemalle, jos ei nyt ihan täydellinen ole tuokaan.
August 26th, 2009
Eilen tuli postissa MSX:lle SD-kortinlukija. Hupaisana yksityiskohtana piirilevy oli koteloitu Casion Golf-pelin kuoriin. Lievästi eksoottinen laite ja toimintakin tuntuu olevan varsin omalaatuista paikka paikoin. Tärkein onnistuu kuitenkin eli se tiedostojen siirtely kortinlukijalla MSX:lle. Joitakin havaintoja tässä:
- Siirtonopeus on melkoinen oikeaan levariin verrattuna: isotkin ohjelmat latautuvat suunnilleen sekunnissa
- Kovin suurta muistikorttia ei kannata hankkia, sillä tilaa ei mitenkään voi tällä hetkellä käyttää 256 megan yli
- SD-kortille ei tule osiointia vaan “levyt” ovat heti kortin juuressa (Linuxissani /dev/sde). Aktiivisen levyn voi valita DISKMAN-ohjelmalla tai sitten buutissa painamalla STOP ja numpadilta halutun levyn numeroa. Numpadia vaan ei ole monessakaan MSX:ssä… Kortilta on siis kerralla näkyvissä MSX:lle vain yksi levyistä.
- Vakiona sekä Linux että OS X näkevät vain ensimmäisen levyn. En tiedä, saako niitä näkemäänkään muita ilman isoa säätämistä ja ohjelmointiurakkaa.
- Taaempi SD on sekä A- että C-asema ja toinen kortti ilmaantuu D-asemaksi. B:llä majailee Flash-muisti. Näin siis, jos levyt ovat FAT12-tyyppiä eli oletusta.
- Koneessa kiinni olevat fyysiset levarit näkyvät asemina E ja F
- Korttia ei voi normaalisti nypätä pois lennossa, tosin mukana tulee siihen apuohjelma XCHGMMC
- Laitteessa on MSX-DOS 2:a tukeva diskrom ja buuttaavaksi asentuu alustuksessa DOS 2, mutta ykkösen buuttaaminen onnistuu suoraan vaihtamalla tilalle msxdos.sys ja command.com
- Normaali MSX1 ei toimi DOS 2:n kanssa, joten hakemistoja ei voi käyttää. Suurempana ongelmana on se, että uuden SD-kortin asennusta varten pitäisi päästä buuttaamaan DOS 2 moduulin sisäisestä muistista. En tiedä, mihin Windows-työkalu pystyy, mutta saattaa olla, että kortti pitää alustaa MSX2:ssa tai ainakin saada jostain se ensimmäinen levyimage, jonka kortille kirjoittaa esim. Linuxissa.
- Tässä oma hätäinen imageni, jolla saa edes 11-megaisen “kovalevyn” MSX-DOS 1:llä varustettuna. Linuxissa roottina: cat msxdos1.img >/dev/sde (olettaen että kortti on sde ja että osiot on ensin poistettu).
- Hankkeelle ei tullut pahastikaan hintaa: moduuli postikuluineen Hollannista 50 euroa.
Päivitän tätä postausta sitä mukaa kun lisää selviää.
August 15th, 2009
Vuosien kaavailun jälkeen tarjoutui lopultakin sopiva tilaisuus ja romuläjä kasvoi vielä yhdellä tietokoneella. Suomessa asuva enkkutyyppi halusi eroon Acorn Risc PC 700:sta ja kun sopiva koti löytyi, niin laite siirtyi minulle. Kone on ollut aikanaan melkoinen tykki: StrongARM 200 MHz, 48 megaa muistia, SCSI-ohjain, CD-asema ja 800-megainen kiintolevy. Tilasin vielä eBaystä verkkokortin, jotta tiedostojen siirtely käy vähän helpommin. Käyttöjärjestelmänä toimii omintakeinen RISC OS 3.7, joka ladataan rom-piireiltä eikä suinkaan kovalevyltä. Ehdin jo porttailla muutaman demon, kuten asiaan kuuluu ja seuraavana säätöprojektina voisi olla vaikka NetBSD:n kokeilu, Linux kun ei näillä ilmeisesti kovin kummoisesti toimi.
August 2nd, 2009
Next Posts
Previous Posts