Skip to content

Nintendo Game Boy emulator written in Go to be used in workshops about emulator programming

License

Notifications You must be signed in to change notification settings

drhelius/demo-emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

demo-emulator Build Status

Copyright © 2016 by Ignacio Sanchez

Nintendo Game Boy emulator written in Go to be used in workshops about emulator programming.

Follow me on Twitter for updates: http://twitter.com/drhelius

Screenshot Screenshot

Presentation

https://speakerdeck.com/drhelius/8-bit-emulator-programming-with-go

Requirements

Before you start, make sure you have Go installed and ready to build applications: https://golang.org/doc/install

Once you have a working Go environment you'll need to install the following dependecies:

Windows

Linux

  • Ubuntu: sudo apt-get install build-essential libgl1-mesa-dev xorg-dev
  • Fedora: sudo dnf install @development-tools libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-devel

Mac OS X

  • You need Xcode or Command Line Tools for Xcode (xcode-select --install) for required headers and libraries.

Building

Run this command to let Go download and build the sources. You don't even need to clone this repo, Go will do it for you:

go get -u github.com/drhelius/demo-emulator

Running

Once built you can find the emulator binary in $GOPATH/bin. Use it with the -rom argument in order to load a Game Boy ROM file:

$GOPATH/bin/demo-emulator -rom path/to/your_rom.gb

Controls

START = Enter
SELECT = Space
A = S
B = A
Pad = Cursors

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages