Kovaa retrosähinää eBayssä ja muuallakin

Nyt on sunnuntai 06.05.2018 ja kello on 00:49. Minulla on mennyt viime aikoina aika kovaa retrokone- ja retropelirintamalla!

Pitfall II - The Lost Caverns

Sega SG-1000/SC-3000

Periaatteeni on ollut, että aion kerätä kaikki 8-bittiset Pitfall II - The Lost Caverns julkaisut, jotka on tehty vanhoille kotitietokoneille. Kasibittiset pelikonsolit kuten Atari 2600, Atari 5200, Sega SG-1000 ja ColecoVision, olen siis tuon määritelmän mukaan sulkenut pois keräilykohteeni joukosta.

Kun tutustuin Sega SC-3000 kotitietokoneeseen, törmäsin kuitenkin siihen tosiasiaan, että japanilaisilla myyjillä oli eBayssä myynnissä Pitfall II MySegaCard-korttimoduuleja. Kyseinen peli tosiaan sopii Sega SG-1000 pelikonsolille, mutta se on yhteensopiva myös Sega SC-3000 kotitietokoneen kanssa. Olin siis periaatteessa vähän ristiriitaisessa tilanteessa: Oliko tämä nyt pelikonsoliversio vai kotitietokoneversio? Molempiahan se oli samaan aikaan.

Tulin siihen lopputulokseen, että koska peli toimii kasibittisessä Sega SC-3000 kotitietokoneessa, niin kyseessä on silloin selvästi myös keräilykohde, joka minun alkuperäisen keräilymääritelmäni mukaan kuuluu hankkia kokoelmiini. Niinpä ostin ensin Sega Card Catcher adapterin, jolla korttimoduulit saa kiinni SC-3000:een ja sen jälkeen hankin itselleni Pitfall II korttimoduulin. Peli ei ole vielä saapunut Japanista, mutta oletan sen saapuvan mahdollisesti jo alkuviikosta.

ColecoVision ja Coleco Adam

Jostain syystä päätin kokeilla ColecoVisionin Pitfall II versiota MAME-emulaattorilla. Se ei toiminut, joten tein bugiraportin MAME:n kehittäjille ja he hoksasivat melkein heti, että Coleco-emulaatioon oli hiljattain tehty yksi yhden rivin hyvää tarkoittava muutos, joka olikin rikkonut Pitfall II pelin toimivuuden aivan täysin. Korjaus ei ole vielä ulkona, mutta se tulee toivottavasti seuraavaan versioon. Sain itse pelin toimimaan ihan vain poistamalla kyseisen rivin lähdekoodista ja kääntämällä oman MAME-binäärin.

Tuossa yhteydessä ajattelin, että ennen kuin teen bugiraportin MAME:n kehittäjille, katson eBaystä olisiko siellä tarjolla ColecoVisionin alkuperäistä Pitfall II moduulia boxeineen. Ja kuin ihmeen kaupalla Kanadasta olikin sellainen tarjolla kohtuuhintaan, mutta myyjä oli sanonut ilmoituksessaan, että hän postittaa vain Kanadaan. Kysyin onnistuisiko poikkeus ja kirjattu lähetys Suomeen. Myyjä suostui ja peli on nyt matkalla Suomeen kirjattuna lähetyksenä. Tässä yhteydessä huomasin, että pelin laatikossa luki "ColecoVision/Adam". "Adam" viittaa kasibittiseen Coleco Adam kotitietokoneeseen, joka julkaistiin vuonna 1983 ja joka oli tietääkseni pitkälti yhteensopiva ColecoVisionin pelien kanssa. Tässä oli siis täsmälleen vastaava tilanne kuin aiemmin mainitsemani Sega SG-1000 versus Sega SC-3000 tapaus. ColecoVision on pelikonsoli, joten en ollut sen takia ostanut sen Pitfall II moduulia, mutta en ollut huomioinut tai muistanut, että pelihän sopii myös Coleco Adamiin, siis kotitietokoneeseen. Tästä syystä tämäkin versio kuului ehdottomasti hankkia kokoelmiini.

ORIC Atmos

Lemon64-foorumilta sain äsken tietää, että ORIC myikin vain muutamia tuhansia koneita kotimaassaan Englannissa. Siinä siis oli syy siihen, että kyseistä konetta varten ei ole olemassa juuri ollenkaan englanninkielistä kirjallisuutta. Olin juuri ostanut ORIC Atmos kotitietokoneen boxeineen Espanjasta, mutta siitä puuttui englanninkielinen manuaali. Lauantaina 05.05.2018 klo 21:29 löysin sen kuitenkin Englannista eBayn kautta, mutta sen saadakseen piti ostaa toinen ORIC Atmos boxeineen. Mutta en harmittele, sillä se oli suhteellisen edullinen ja näitä äärimmäisen harvinaisia koneita on hyvä olla kaapissani kaksikin.

MSX Bruce Lee

Tuon lisäksi tein jännän havainnon. En nyt jaksa alkaa selittämään mitä kautta tämä kaikki selvisi, mutta japanilaisten "eBay" on Yahoo Auctions Japan niminen sivusto ja se on kokonaan japaniksi sisällöltään. Se on siis japanilaisille kotoisa vaihtoehto, sillä vaikka meille länsimaalaisille heidän kirjoitusjärjestelmänsä harakanvarpaat ovat käsittämättömiä, niin vastaavasti varmaan japanilaisten on hankalaa oppia englantia ja länsimaisia aakkosia. Siksi eBayssä ei ole kovin paljon japanilaisia myyjiä.

Olen etsinyt pitkään Bruce Lee peliä MSX-moduulina ja nyt äsken lauantaina kun menin Yahoo Auctions Japan sivustolle, niin näin, että sinne oli ilmoitettu kyseinen peli boxeineen juuri samana päivänä! Hintaa oli 20 000 jeniä eli noin 160€, joka oli hyvin kohtuullinen hintapyyntö. Mutta olin epätoivoinen, sillä en pystynyt käyttämään sivustoa täysin vieraan kielen takia! Aikani tuskailtuani huomasin sivuston yläosassa mainosbannerin ja kerrankin mainoksesta oli jotain iloa: Se kertoi buyee.jp palvelusta, jonka kautta "overseas buyerit" voivat ostaa tavaraa Yahoo Auctions Japanista ja muilta japsien sivuilta! Se siis tulkitsee sivut englanninkielisiksi ja mahdollistaa ostosten tekemisen niille länsimaalaisille, jotka eivät selviä japanin symbolien viidakosta! Maksaminen onnistuu myös PayPalin kautta ihan kuten eBayssäkin!

Rekisteröidyin niin äkkiä kuin pystyin ja ostin sen MSX Bruce Lee moduulin itselleni! Olin etsinyt sitä jo aika pitkään ja reilu vuosi sitten hävisin huutokaupan eBayssä tekemällä 260€ tarjouksen. Nyt kaikkine kuluineen hintaa tuli noin 170€, joten sain moduulin kohtuulliseen hintaan. Toki siihen tulee vielä postitus päälle, verot ja tullit, mutta siitä huolimatta hinta oli ihan hyväksyttävissä.

Sega SG-1000/SC3000 Lode Runner

Niin, tutkin tässä muutama päivä sitten myös millainen olisi Sega SC-3000 Lode Runner. Kokeilusta tulikin pitkällinen rupeama, sillä peli ei käynnistynyt ollenkaan MAME-emulaattorissa. Työn, tuskan ja lähdekoodin tutkimisen kautta sain sen viimein latautumaan XML-tiedostojen avulla, joita Fedora Linuxissa olevassa MAME:ssa ei ollenkaan ollut mukana. MAME:ssa siis on kaksi eri tapaa käynnistää pelejä SC-3000 koneelle. Yhdessä kerrotaan -cart komentorivivalinnalla pelin hakemistopolku ja tiedostonimi. Tämä tapa ei lainkaan toiminut, vaan MAME kaatui heti alkuunsa mystiseltä vaikuttavaan virheilmoitukseen. Toinen tapa on XML-tiedostojen kautta, joissa on määritelty ROM-imageiden ominaisuudet. Vaikka XML-tapa toimikin, oli silti bugi MAME:ssa, että -cart valinnalla MAME kaatui Lode Runner peliä käynnistettäessä.

Pähkäilin ongelmaa hiki hatussa noin vuorokauden ajan viikonloppuna ja kuin ihmeen kaupalla sain lopulta selville mistä oli kyse. Tutkimuksieni lähtökohdaksi jouduin kääntämään MAME:sta version, jossa oli debug-symbolit mukana. Vaikka en ottanut binääriin kuin tuen SC-3000 koneelle, paisui binäärin koko 21MB tiedostosta muistaakseni 281 megatavuun! Debug-informaatiota siis binäärissä riitti. Käynnistin kyseisen binäärin gdb debuggerin alaisuuteen ja asetin breakpointin siihen funktioon, joka tulosti sen mystisen virheilmoituksen. Suunnitelma toimi ja sen avulla sain backtracen MAME:sta. Juuri ennen kaatumistaan MAME oli 17 tasoa syvässä funktiokutsupuussa. Minun piti yrittää selvittää mitä virheilmoitus edes tarkoitti ja mitä kautta MAME oli mennyt kohtaan, jossa se kaatui. Onneksi virhe oli täysin deterministinen ja tuli aikaisessa vaiheessa, joten ajattelin, että tämän bugin korjaus ei ehkä vaatisi ihan mahdottomia.

Monien vaiheiden ja epätoivoisen sähellyksen jälkeen kävi ilmi, että MAME:ssa on sisäänrakennettuna eräänlainen melko rumakin heuristiikka, joka lataushetkellä koettaa päätellä mitä tyyppiä SG-1000/SC-3000 moduulit ovat. Tulin siihen tulokseen, että heuristiikka kenties tunnistaa Lode Runner ROM-imagen vääräntyyppiseksi, välittää sen väärän tiedon eteenpäin ja siitä johtuu MAME:n mystinen virheilmoitus ja kaatuminen paljon, paljon myöhemmässä vaiheessa koodia. Teoriani osoittautui oikeaksi! Pystyin korjaamaan ongelman lisäämällä Segan moduulien tunnistukseen pari riviä lisää koodia, joilla Lode Runner tunnistettiin oikein. Tein Githubissa pull requestin MAME:n kehittäjille ja pyysin, että he tarkistaisivat onko korjausehdotukseni oikea ja kelpaisiko se MAME:n viralliseen master-kehityshaaraan.

Sain pian sähköpostiini vastauksen, että onhan se korjaus hieman "hack", mutta se ei ole sen huonompaa koodia kuin mitä tunnistusfunktiossa oli jo entuudestaankin, joten korjaus kelpuutettiin MAME:en mukaan. Se on luultavasti mukana seuraavassa julkaisussa.


LISÄYS YLLÄ OLEVAAN BLOGIKIRJOITUKSEEN 2018-05-08: Fedora Linux 27:aan tuli uusi MAME sunnuntaina, mutta se binääri oli käännetty jo Thu 26 Apr 2018 09:05:42 AM EEST. Korjaukseni ei siis ole vielä tuossa versiossa. Sekin kaatuu näin:

[kalevi@localhost ~]$ mame sc3000 -window -cart /usr/share/mame/roms/sc3000/mpr-5998.ic1
Ignoring MAME exception: Unknown slot option 'codemasters' in slot 'slot'
Unknown slot option 'codemasters' in slot 'slot'

Lode Runner ROM-imagen SHA1-tiiviste on:

[kalevi@localhost ~]$ sha1sum /usr/share/mame/roms/sc3000/mpr-5998.ic1
f14f216edfda7dfd113f5cb32375a27be8a6409d /usr/share/mame/roms/sc3000/mpr-5998.ic1