A GameBoy emulator written in C++. This project was developed for the "Emulation and virtualization" course at University of Pisa.
It works on Linux and Windows platforms.
-
Pandocs specification. Everything You Always Wanted To Know About GAMEBOY - link
-
Very useful video about the gameboy - link
-
Table for correct instruction opcodes and CPU cycles - link
-
GameBoy manual - link
-
Useful developing control flow of the emulator - link
- Useful tool to evaluate the correctness of the emulator - link
- Test roms for instructions debugging. (Already present in /roms/individual directory) - link.
Gameboy | Emulator |
---|---|
A | a |
B | s |
UP | up key |
DOWN | down key |
LEFT | left key |
RIGHT | right key |
START | space bar |
SELECT | b |
SHUTDOWN | q |
- tetris
- battle city
- shangay
- Dr.Mario (only some sprites move too fast, but fully playable)
- harmony
- serpent
- Q Billion
- space invaders is too fast
- pop up is a bit slow
- Implement ROM and RAM banking to support ROMs larger than 32kB
- Implement sound emulation
- Try new games
- Find new bugs
It requires SDL_2 library for graphic, timing, and inputs from keyboard - link
For Windows users this library is already present in the ./SDL2 folder of this project
For Linux users:
- Using apt-get
sudo apt-get install libsdl2-dev
- From source. Then
./configure
,make all
andsudo make install
run make gameboy
from both Linux and Windows inside the main directory
Put the rom in the roms
folder.
Move to the GBpp-Emulator
folder, then ./gameboy gameboy_rom.gb
for Linux or .\gameboy.exe gameboy_rom.gb
for Windows
Fabio Condomitti - @fcondo
Alessandro Noferi - @linofex