lauantai, 5. lokakuuta 2013

Heippa vaan lapsukaiset! Tänään pelaamme NES-emulaattorilla. NES, eli Nintendo Entertainment System ei varmasti esittelyjä kaipaa. Kyseessä on siis Nintendon 8-bittinen pelikonsoli, joka suvereenisti hallitsi konsolimaailmaa 1980-luvun puolivälistä aina 90-luvun alkupuolelle asti. "Nintsukan" laajasta pelikirjastosta löytyy teoksia jotka ovat muovanneet 80-luvun pentujen maailmankuvaa. Pelisarjat, kuten Super Mario, Zelda, Castlevania ja Megaman tai vaikkapa Contrat ja Metroidit ovat jättäneet sukupolveemme lähtemättömän jäljen!

PiMame emulaattoripakettiin sisältyy (versiosta 0.7.8 lähtien) NES-emulaattori AdvMess. Tämä kirjainyhdistelmä tulee sanoista AdvMenu ja MESS (Multi Emulator Super System). Sanahirviöden takana piilee MAME emulaattorisoftan sisarprojekti, jonka tarkoitus on arcade-pelien ohella simuloida myös kotikonsolijärjestelmiä. AdvMenu puolestaan on MESS/MAME -emulaattoreiden "Front end", tarkoittaen käytännössä valikkoa emulaattorin ROM-tiedostojen valintaan. Jos äskeinen meni ihan ohi ei se mitään, MAME:en palaamme vielä jatkossa.

Tässä blogauksessa oletetaan että PiMAMEn asennus -ohje on käyty läpi. Pelikokemus paranee huomattavasti mikäli sinulla on asiaan kuuluva usb-liittimeen kytkettävä nintendo-ohjain ja että olet suorittanut asennusohjeessa läpi käydyn joystickin asennuksen ja kalibroinnin.

Aloitetaan! Ensiksi kannattaa säätää config-filut kohdilleen. Config-tiedosto ohjaa emulaattorin toimintaa. Jokaiselle emulaattorille on oma config-tiedostonsa, joka on tekstitiedosto ja sitä voi muokata vaikkapa notepadilla. Voit siirtää config-tiedoston tietokoneellesi FTP-yhteydellä ja muokata tiedostoa koneellasi ja sen jälkeen siirtää config-tiedoston takaisin Raspberryyn FTP:llä. Voit toki myös muokata configgia suoraan raspberryssä käyttämällä esimerkiksi sudo nano -komentoa.

Voit skipata tämän ja seuraavan kappaleen mikäli et käytä joystickiä. Avataa tiedosto /home/pi/.advance/advmenu-mess.rc. Muokkaa rivi device_joystick none -> device_joystick raw tai device_joystick auto. Tämän asetuksen pitäisi tehdä pelivalikon joystickillä ohjattavaksi. asetus raw tai auto riippuen ohjaimesi yhteensopivuudesta. Kokeile. Tallenna tiedosto Raspberry PI:hisi ja korvaa sillä edellinen advmenu-mess.rc tiedosto.

Avaa tiedosto /home/pi/.advance/advmess.rc. Tämä tiedosto pitää sisällään asetukset siitä, miten NES-emulaattorimme toimii. Lähinnä tässä vaiheessa meitä kiinnostaa joystickin konfiguraatio, mikä löytyy aivan advmess.rc-tiedoston loppupäästä. Input_map -riveillä määritellään mikä kontrolli vastaa mitäkin nappulaa ohjaimessasi. Saadaksesi selvillä ohjaimesi näppäinkoodit, on sinun komentorivillä ajettava komento jstest /dev/input/js0 (lisätietoja asennusohjeessa). Kirjota ylös mikä koodi vastaa mitäkin näppäintä ohjaimessasi. Itselläni toimii hyvin seuraava konfiguraatio:
input_map[p1_button1] joystick_button[0,3]
input_map[p1_button2] joystick_button[0,2]
input_map[p1_start] joystick_button[0,9]
input_map[p1_select] joystick_button[0,8]
input_map[p1_button3] joystick_button[0,1]
input_map[p1_button4] joystick_button[0,0]


Esimerkissä siis määritellään esimerkiksi että p1_button1 = joystickissa nappi nro. 3. P1 siis tarkoittaa pelaaja 1:ä. Mikäli käytössä on useampia ohjaimia, on näppäimet määriteltävä jokaiselle ohjaimelle erikseen. Kokeilemalla saavutat parhaan tuloksen, älä menetä hermojasi vielä. Lisäksi kannattaa lisätä vielä seuraava rivi:
input_map[ui_cancel] joystick_button[0,4] joystick_button[0,5]

Tämä asetus lisää cancel-näppäimen joystickiin. Tässä tapauksessa se tehdään painamalla ohjaimeni kulmanäppäimiä yhtäaikaa. Kyllä, yhdelle toiminnolle voidaan määrittää useamman näppäimen painallus yhtäaikaa. Cancel-toimintoa ei jostain syystä ole oletuksena määritetlty configissa. Tämä toiminto vastaa siis ESCin painallusta pelin aikana, eli toisin sanoen voit lopettaa pelin ja palata pelivalikkoon käyttämättä näppäimistöä.

Toimivan emulaattorin lisäksi tarvitsemme myös pelejä, eli ROM:eja, joita voimme pelata emulaattorilla. Se mistä ROM:ja saa, ei kuulu tämän manuaalin eikä sivuston aihepiiriin. Huomautettava on tässä välissä, että vaikka ROM:eja netistä löytääkin helpolla, on suurin osa niistä edelleen tekijänoikeuden alaista materiaalia, vaikka pelin tuottanut yritys olisikin aikaa sitten kuopattu. Ohjeen tässä vaiheessa oletetaan että olet ladannut koneellesi ROM:meja, joista omistat alkuperäiset kappaleet.

Siirretään siis seuraavaksi ROM:it Raspberry Pi:hin. Ota FTP-yhteys PI:hin, valitse kansio /home/pi/roms/nes, siirrä tähän kansioon haluamasi ROM:it. Huomioi, että NES ROM:it tulee olla purettu pois zip- tai rar-paketistaan ja ROM:in pääte tulee olla .nes.

Käynnistetään NES! Laita virta PiMameen ja odota että päävalikko käynnistyy. Valitse consoles -valikko ja sieltä NES (AdvanceMESS). Eteesi avautuu lista ROMmeista, jotka olet Raspberryysi siirtäny. Valitse peli näppiksellä tai ohjaimellasi (ohjaimen pitäisi tässä vaiheessa toimia, mikäli olet noudattanyt tätä ohjetta ja kaikki on sujunut hyvin) ja paina enter tai ohjaimen nappulaa (oletusnäppäin vaihtelee ohjaimen mukaan, huom. että yksi napeista on ESC ja palaa siis emulaattorivalikkoon, mikäli näppäilet väärin).

Kun peli käynnistyy on toiminta tästä edespäin kutakuinkin samanlaista kuin pelaisit aidolla Nintendolla. ESC-näppäimellä pääset valikkoon, jossa voit poistua pelistä. F1 nappulasta näet näppäinkartan, joka ilmaisee mitä nappuloita painat. Se on hyvä tietää, mikäli joudut enemmänkin säätämään nappuloita ohjaimesta tai näppäimistöstä. Emulaattorissa on muitakin toimintoja, kuten ruudunpäivityksen nopeudensäätö, sekä pelitilanteen tallentaminen (SHIFT+F7) ja lataaminen (F7). Itse en ainakaan onnistunut pelitilanteen tallentamisella ja lataamisella muuta kuin sekoittamaan koko pelin. Kokeile itse.

"Kuka kiroo" tapasi äitini sysyä keittiöstä kun pienenä poikana pelejä tahkosimme pää punaisena. Joten muista, älä menetä hermojasi... kauheasti ;)


Kirjoittanut: klo