Game Boy -emulaattori
Hirvonen, Aleksanteri (2019)
Hirvonen, Aleksanteri
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201905088417
https://urn.fi/URN:NBN:fi:amk-201905088417
Tiivistelmä
Insinöörityön tarkoituksena oli toteuttaa Game Boy -emulaattori ja tuoda esille toteutuksen aikana hyväksi havaittuja emulaattoriohjelmoinnin tekniikoita.
Työssä toteutettiin Game Boy -emulaattori C++-ohjelmointikielellä noudattaen suositeltuja ohjelmointitapoja, kuten abstrahointia, alustariippumattomuutta ja RAII-periaatetta. Toteutuksessa käytettiin apuna POSIX- ja Windows-rajapintaa tiedostonkäsittelyyn sekä SDL-kehityskirjastoa ikkunointiin, tapahtumienkäsittelyyn ja grafiikan esittämiseen. Lopuksi emulaattorista käännettiin ohjelmatiedoston lisäksi vielä selainpohjainen WebAssembly-versio Emscripten-työkalun avulla.
Game Boyn pelikasetin, muistin, suorittimen, keskeytysten ja pikselinkäsittely-yksikön emulointi dokumentoitiin. Emuloinnista esitettiin myös koodiesimerkkejä.
Työn tuloksena aikaansaatu Game Boy -emulaattori täyttää sille asetetut tavoitteet. Emulaattorilla voi pelata monia Game Boy -pelejä ongelmitta, ja sen toimivuutta testattiin testi-ROMeja käyttäen.
Työtä voidaan käyttää emulaattoriohjelmoinnin opiskeluun.
Työssä toteutettiin Game Boy -emulaattori C++-ohjelmointikielellä noudattaen suositeltuja ohjelmointitapoja, kuten abstrahointia, alustariippumattomuutta ja RAII-periaatetta. Toteutuksessa käytettiin apuna POSIX- ja Windows-rajapintaa tiedostonkäsittelyyn sekä SDL-kehityskirjastoa ikkunointiin, tapahtumienkäsittelyyn ja grafiikan esittämiseen. Lopuksi emulaattorista käännettiin ohjelmatiedoston lisäksi vielä selainpohjainen WebAssembly-versio Emscripten-työkalun avulla.
Game Boyn pelikasetin, muistin, suorittimen, keskeytysten ja pikselinkäsittely-yksikön emulointi dokumentoitiin. Emuloinnista esitettiin myös koodiesimerkkejä.
Työn tuloksena aikaansaatu Game Boy -emulaattori täyttää sille asetetut tavoitteet. Emulaattorilla voi pelata monia Game Boy -pelejä ongelmitta, ja sen toimivuutta testattiin testi-ROMeja käyttäen.
Työtä voidaan käyttää emulaattoriohjelmoinnin opiskeluun.