Näytä suppeat kuvailutiedot

Nintendo Entertainment System emulointiympäristön kehittäminen

Broms, Patrik (2020)

dc.contributor.authorBroms, Patrik
dc.date.accessioned2020-12-03T09:07:28Z
dc.date.available2020-12-03T09:07:28Z
dc.date.issued2020-
dc.identifier.urihttp://www.theseus.fi/handle/10024/352172
dc.description.abstractTyön tavoitteena oli kehittää Nintendo Entertainment System -emulaattori. Tavoitteena oli tarjota alusta, jota voidaan käyttää NES-kasettien kehityksessä apuna. Työssä käytettiin apuna julkisesti saatavilla olevia alustan ja sen komponenttien dokumentaatioita. Lisäksi emulaattoria kehitettiin julkisesti saatavilla olevien avoimen lähdekoodin NES-kasettien avulla. Työn edellytyksenä oli tukea Windows- ja Linux-käyttöjärjestelmiä. Työ toteutettiin C-ohjelmointikielen C99 versiolla ja työssä käytettiin alustasta riippumattomia ohjelmistokirjastoja. Opinnäytetyö toteutettiin yksi komponentti kerrallaan. Komponentit vastaavat isoja kokonaisuuksia alkuperäisen alustan toiminnasta, kuten prosessoria ja kasettia. Jokaisen komponentin toimintaa pyrittiin visualisoimaan työssä kehitetyssä käyttöliittymässä. Visualisoitavia kohteita olivat alustan eri muistit ja ajettavan koodin tila. Työssä toteutettuja komponentteja olivat prosessorin osoiteväylä, kasetti, prosessori ja kuvankäsittely-yksikkö. Prosessorin osoiteväylän vastuulla on yhdistää alustan komponentit yhteen liikuttamalla tietoa näiden välillä. Osoiteväylä pystyy kerrallaan kuljettamaan 8-bittisen luvun, ja se kattaa 16-bittisen muistiavaruuden. Tätä osoiteväylää emulaattorissa ajettava koodi pystyy käsittelemään suoraan. Kasetissa sijaitsee emulaattorissa ajettava koodi, kuvat ja äänet. NES-alustalla on monia erilaisia kasetti tyyppejä, joiden avulla alustan toimintaa on voitu muokata. Tätä varten kasettikomponentti sisältää muistikartoittajia, jotka valitaan kasetin tyypin mukaan. Kasetit ovat alkuperäisessä alustassa erillisiä liitettäviä komponentteja ja emulaattorissa ne ovat digitaalisia tiedostoja. Prosessori hakee kasetista operaatioita ja suorittaa ne. Operaatioiden avulla voidaan muokata joko prosessorin omaa tilaa, muisteja tai muiden komponenttien tilaa. Prosessorin operaatiot perustuvat 6502-ohjelmointikielen ohjeisiin. Työhön toteutettiin ajettavan koodin visualisointi. Kuvankäsittely-yksikkö tuottaa alustan kuvan. Kuvan tuottaminen koostuu taustakuvista ja edessä olevista spritekuvista. NES-alusta ei pysty piirtämään yksittäisiä pikseleitä, vaan piirtämiseen käytetään kasetista saatuja kuvia. Kuvankäsittely-yksikkö sisältää myös oman osoiteväylän. Tämän avulla kuvankäsittely-yksikkö yhdistää sen sisäiset muistit ja kasetissa sijaitsevat kuvat. Kun työhön vaaditut komponentit oli toteutettu, emulaattoria testattiin NES-kasettien avulla. Testauksen avulla pystyttiin parantamaan emulaatio tarkkuutta ja korjaamaan komponenteissa olevia virheitä. Testauksen apuna oli työhön kehitetty käyttöliittymä. Käyttöliittymästä pystyy katsomaan mitä muutoksia prosessorin suorittamat operaatiot tekevät, ja miltä kasetissa sijaitsevat kuvamuistit näyttävät.-
dc.language.isofin-
dc.rightsfi=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.|sv=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.|en=All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.|-
dc.titleNintendo Entertainment System emulointiympäristön kehittäminen-
dc.type.ontasotfi=AMK-opinnäytetyö|sv=YH-examensarbete|en=Bachelor's thesis|-
dc.identifier.urnURN:NBN:fi:amk-2020120325826-
dc.subject.specializationPeliteknologia-
dc.subject.degreeprogramfi=Tieto- ja viestintätekniikka|sv=Informations- och kommunikationsteknik|en=Information and Communications Technology|-
dc.subject.ysotietokoneet-
dc.subject.ysoemulointi-
dc.subject.ysomikroprosessorit-
dc.subject.ysoprosessorit-
dc.subject.disciplineInsinööri (AMK), tieto- ja viestintätekniikka-
annif.suggestions.linkshttp://www.yso.fi/onto/yso/p724|http://www.yso.fi/onto/yso/p1576|http://www.yso.fi/onto/yso/p6787|http://www.yso.fi/onto/yso/p22143|http://www.yso.fi/onto/yso/p13435|http://www.yso.fi/onto/yso/p10874|http://www.yso.fi/onto/yso/p9343|http://www.yso.fi/onto/yso/p3056|http://www.yso.fi/onto/yso/p20042|http://www.yso.fi/onto/yso/p13579fi


Tiedostot

Thumbnail

Viite kuuluu kokoelmiin:

Näytä suppeat kuvailutiedot