Skip to content

linofex/GBpp-Emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GB-Emulator

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.

Useful links

  • 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 debugging tools

  • Useful tool to evaluate the correctness of the emulator - link
  • Test roms for instructions debugging. (Already present in /roms/individual directory) - link.

Controls

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

Working games

  • tetris
  • battle city
  • shangay
  • Dr.Mario (only some sprites move too fast, but fully playable)
  • harmony
  • serpent
  • Q Billion

Not fully working games

  • space invaders is too fast
  • pop up is a bit slow

TO DO

  • Implement ROM and RAM banking to support ROMs larger than 32kB
  • Implement sound emulation
  • Try new games
  • Find new bugs

SDL 2

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 and sudo make install

Build

run make gameboy from both Linux and Windows inside the main directory

Usage

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

Screenshots

Contributors

Fabio Condomitti - @fcondo

Alessandro Noferi - @linofex

About

A GameBoy emulator written in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published