Etusivulle

NES:in Game Genie -laite

   
Vasemmalta oikealle: laite päältä, laite alta, koodinsyöttöruutu.

Yleistä

Game Genie on pelien toimintaa muuttava laite. Se kytketään NES:in ja pelimoduulin väliin. Kun keskusyksikkö käynnistetään, näytölle ilmestyy ensin Game Genien ruutu, johon voi syöttää 0 - 3 koodia. Sen jälkeen peli alkaa ja Game Genie vaikuttaa sen toimintaan koodien mukaisesti. Laitteen aiheuttamat muutokset katoavat, kun keskusyksikön virta katkaistaan.

Game Genie toimii kaikissa peleissä, ja koodit voivat muuttaa pelin olemusta lähes millä tavalla tahansa. Esimerkkejä vaikutuksista: loputtomat elämät, kuolemattomuus, korkeammat hypyt, aloitus pelin viimeisestä kentästä, sekoileva grafiikka, erilaisilta kuulostavat äänet. Jokaiselle pelille on täysin eri koodit. Niitä voi katsoa laitteen ohjekirjasta, hakea internetistä (esim. täältä tai täältä), muunnella olemassaolevista koodeista tai keksiä kokonaan itse.

Game Genie ei muuta RAM:in sisältöä, vaan näyttää pelin ohjelmakoodi-ROM:in keskusyksikölle erilaisena kuin normaalisti. Laitteen käyttäminen on oikeastaan ohjelmoimista. Koodien syöttäminen vastaa sitä, että PC:llä muuteltaisiin heksaeditorilla ohjelmatiedoston rakennetta, paitsi että muutokset eivät ole pysyviä.

Koodien ulkonäkö

Koodit ovat 6 tai 8 merkkiä pitkiä ja sisältävät pelkkiä kirjaimia 16 merkin valikoimasta: APZLGITY EOXUKSVN. Esimerkkejä koodeista: SXIOPO, YEUZUGAA. Jokaisen merkin voi valita vapaasti lukuunottamatta koodin kolmatta merkkiä, jonka pitää olla 6-kirjaimisissa koodeissa valikoimasta APZLGITY ja 8-kirjaimisissa koodeissa valikoimasta EOXUKSVN. Käytännössä ei tosin haittaa, vaikka tämän kolmannen merkin säännön unohtaisi - silloin kursori ei vain siirry automaattisesti seuraavalle riville (6-kirjaimisten koodien tapauksessa).

Koodien toiminta

Koodi kertoo, miten Game Genien pitää muutella peliä. Yksinkertaisempi 6-kirjaiminen koodi sisältää 15-bittisen muistiosoitteen ja sinne "kirjoitettavan" 8-bittisen arvon. Muistiosoitetta lukiessaan keskusyksikkö saa Game Genieltä koodin määräämän arvon eikä alkuperäistä. Arvo on usein konekielinen käsky. Muutoksen seurauksena peli esimerkiksi ei vähennä pelaajan elämien määrää kuoleman sattuessa, vaikka normaalisti niin kävisi. Jos korvattava luku ei ole konekielikäsky, se saattaa sisältää jotakin tietoa, kuten pelin aloituskentän numeron.

Koodin osoitteen alue on kuitenkin vain 32 kilotavua. Suurissa peleissä samat osoitenumerot toistuvat, joten 6-kirjaiminen koodi vaikuttaa monen muistitavun sisältöön. Satunnaisesti keksityissä koodeissa tämä on yleensä vain toivottavaa, koska käyttäjällä on parempi mahdollisuus saada aikaan näkyviä vaikutuksia peliin.

Suurissa peleissä voidaan käyttää myös 8-kirjaimisia koodeja. Ne sisältävät 6-kirjaimisen koodin osat, mutta niissä on "kirjoitettavan" arvon lisäksi lisäksi toinen, vertailtava, arvo. Game Genie korvaa muistiosoitteen sisällön kirjoitettavalla arvolla vain, jos osoitteessa on ennestään vertailtava arvo. Tämä rajaa koodin vaikutusaluetta. Satunnaisesti keksitty 8-kirjaiminen koodi ei todennäköisesti vaikuta peliin mitenkään.

Koodien tulkinta

Game Genie -koodi voidaan muuntaa lukumuotoisen muistiosoitteen ja arvon/arvojen yhdistelmäksi, ja toisinpäin. Lukujärjestelmänä käytetään yleensä 16-kantaista eli heksadesimaalista. Esim. 6-kirjaiminen koodi SXIOPO sisältää osoitteen 11D9 ja kirjoitettavan arvon AD. 8-kirjaimisessa koodissa YEUZUGAA taas on osoite 2CB3, vertailtava arvo 00 ja kirjoitettava arvo 07.

Joskus käytetään tällaista lyhyempää esitystapaa koodien merkityksen esittämiseen: SXIOPO = 11D9:AD, YEUZUGAA = 2CB3?00:07. Kaksoispiste edeltää kirjoitettavaa arvoa ja kysymysmerkki vertailtavaa arvoa. Lukujärjestelmä on edelleen 16-kantainen.

Game Genie -koodeja voi muuntaa esim. Game Genie Code Converter -ohjelmalla. Kirjoita NES-osiossa ylimmälle riville esim. äskeinen koodi SXIOPO ja katso, mitä tapahtuu.

Useampi Game Genie

Kokeilin laittaa kaksi Game Genietä keskusyksikön ja pelin väliin (kuva). Koodeja oli mahdollista syöttää 6 kpl, ja ne kaikki toimivat yhtä aikaa. Kun keskusyksikön käynnisti, ensimmäinen koodinsyöttöruutu tuli näkyviin. Kun siitä poistui start-näppäimellä, pääsi toiseen koodinsyöttöruutuun. Vasta siitä poistuttaessa itse peli käynnistyi.

Kuvakaappaus, jossa Super Mario Bros -peliä on muutettu kuudella koodilla. Kukin koodi vaihtaa yhden kirjaimen sanoista "MARIO" ja "TIME". On myös mahdollista muutella Game Genietä toisella Game Geniellä: ensimmäiseen koodinsyöttöruutuun annetuilla koodeilla voi vaikuttaa toisen ruudun ulkoasuun.

Varoitus: kun Game Genieitä kytketään peräkkäin, niiden pelimoduuliliittimien pinnit saattavat vaurioitua, koska liittimet ovat niin tiukkoja. (Minulle on käynyt niin.)

Täsmäkoodien luominen

Jos on luotava Game Genie -koodi, joka suorittaa määrätyn tehtävän, tarvitaan pelin lähdekoodi. Saat sen ROM-tiedostosta esim. Dasm-ohjelmalla. Etsi lähdekoodista sopiva kohta ja tee siihen vaikuttava koodi edellämainitulla Game Genie Code Converter -ohjelmalla.

FCEUX-emulaattorissa on hyödyllinen RAM-muistin tutkimistoiminto. Se on Debug-valikossa nimellä Hex Editor. Oikeaa RAM-muistia ovat vain 2048 ensimmäistä tavua eli 16-kantaiset osoitteet 0 - 7FF. Jos huomaat jonkin RAM-osoitteen sisältävän esim. pelaajan jäljelläolevien elämien määrän, etsi lähdekoodista paikka, jossa osoitteen arvoa vähennetään pelaajan kuollessa. Sitten voit estää vähentämisen Game Genie -koodilla.


Etusivulle | Tätä sivua on päivitetty viimeksi 14.2.2010 eli 25 päivää sitten.